首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

指令的功能分类

一、数据传送类指令

1、功能:数据传送指令用于寄存器、存储单元或输入输出端口之间的数据或地址传送。数据传送时,把源地址的数据传送到目的地址,而源地址中的数据保持不变。数据的传送指令包括读操作(取数)和写操作(存数)。

2、分类:

(1)传送类指令:包括传送指令(MOV)、交换指令(XCHG)、入栈指令(PUSH)、出栈指令(POP)等。

传送指令,用来实现数据传送,需要指出的是数据从源地址传送到目的地址时,源地址的数据保持不变。也就是说传送指令并非是移动而复制。传送指令需要两个操作数地址,即源操作数地址和目的操作数地址。

数据交换指令,即双向数据传送。

入栈指令/出栈指令,是专门用于堆栈操作的指令。这两个指令只需要指明一个操作数地址,另一个隐含的是是堆栈的栈顶数据。

(2)输入/输出(I/O)类指令:这类指令完成主机与外围设备之间的信息传送,包括输入/输出数据,主机向外设发控制命令或了解外设的工作状态等。因此,从功能上讲I/O指令应当属于传送类指令。实际上有的机器的I/O操作就是由传送类指令实现的。通常输入/输出指令有三种设置方式。

在双总线或多总线结构中,设置专用的I/O指令,计算机系统将内存与输入输出设备接口寄存器单独编址,即将两者分为两具独立的地址空间:内存空间和I/O空间。为了区分是对内存操作还是对外设接口中的寄存器操作,用IN表示输入操作,用OUT表示输出操作,以区别于对内存空间的MOV操作指令。

在单总线结构中,用传送类指令实现I/O操作,将外围设备接口寄存器与主存单元统一编址,同样对待,任何访问主存单元的指令均可以访问外设的寄存器,这样就可以用传送类指令去访问I/O接口中的寄存器,而不必专门设置I/O指令。

在IOP工作方式中,I/O操作相应地被分为二级,CPU只有几条简单的I/O指令,负责根据这些I/O指令生成I/O程序。IOP执行I/O程序,控制外设的I/O操作。

二、数据处理类指令

1、算术运算指令

(1)定点运算指令

ADD(加)SUB(减)NEG(求补)INC(加1)

DEC(减1)CMP(比较)

(2)浮点运算指令

(3)十进制数运算指令

(4)向量运算指令

(5)通过编程实现其他运算。

2、逻辑运算指令

(1)类型:逻辑非(求反)、逻辑与(逻辑乘)、异或(按位加)等操作。

(2)功能:

利用“逻辑乘”作按位测试;

利用“逻辑乘”作按位清除;

利用“逻辑加”作按位设置;

利用“异或”判断、修改某些位、产生随机数。

3、移动运算指令

(1)算术移位运算

(2)逻辑移位运算

(3)循环移位运算

4、串操作指令

(1)串:是指主存中连续存放的一序列字或字节。

(2)串可以由数值数据构成,也可以由非数值数据构成。

(3)串操作指令包括:串传送指令、串比较指令、串查找指令等。

三、程序控制类指令

1、功能:通过修改程序计数器中的内容,以控制程序执行的顺序和方向。

2、类型:

(1)转移指令:包括条件转移指令和无条件转移指令。

(2)循环控制指令

(3)子程序调用和返回指令

(4)程序自中断指令

四、处理机控制类指令

1、功能:用以直接控制CPU实现特定的功能。

2、类型:

(1)停机指令(HALT)

(2)空操作指令(NOP)

(3)开中断指令(EI)和关中断指令(DI)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200612A0REDH00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券