操作数类型和操作种类

操作数类型和操作种类

    • 操作数类型
    • 数据在存储器中的存放方式
      • 存储器中的数据存放(存储字长为 32 位)
    • 操作类型
      • 数据传送
      • 算术逻辑操作
      • 移位操作
      • 转移
      • 输入输出
      • 其他指令

操作数类型

地址 无符号整数
数字 定点数、浮点数、十进制数
字符 ASCII
逻辑数 逻辑运算

数据在存储器中的存放方式

操作数类型和操作种类_第1张图片
这样便于硬件实现,同时提高机器运行速度, 通常要求多字节数据在存储器中满足“边界 对准”,即:字节数据可以任意存放;半字存放在偶数地址处;字地址是4的整数倍; 双字地址是8的整数倍。

存储器中的数据存放(存储字长为 32 位)

操作数类型和操作种类_第2张图片
操作数类型和操作种类_第3张图片

操作类型

数据传送

包括寄存器与寄存器寄存器与存储单元存储单元之间的传送。
操作数类型和操作种类_第4张图片
操作数类型和操作种类_第5张图片

算术逻辑操作

加、减、乘、除、增 1、减 1、求补、浮点运算、十进制运算
与、或、非、异或、位操作、位测试、位清除、位求反
操作数类型和操作种类_第6张图片
操作数类型和操作种类_第7张图片

移位操作

操作数类型和操作种类_第8张图片

转移

转移指令按其转移特征可分为:无条件转移、条件转移、跳转、过程调用与返回、 陷阱等几种。
(1) 无条件转移 JMP
如:JMP LOOP
(2)条件转移
根据当前指令的执行结果来决定是否需要转移。
操作数类型和操作种类_第9张图片
(3) 调用和返回
1️⃣ 调用与返回指令:类似C程序中的函数调用 及函数返回。如CALL PROG、RETURN
2️⃣ 程序调用需要注意以下几点:
– 程序可以在多处被调用
– 程序调用可以嵌套
– CALL与RETURN指令配对使用
– CPU必须记住子程序的返回地址
3️⃣ 返回地址可存放在以下3处:
– 寄存器内
– 子程序的入口地址内
– 栈顶内
操作数类型和操作种类_第10张图片
(4) 陷阱(Trap)与陷阱指令
意外事故的中断
1️⃣ 一般不提供给用户直接使用
在出现事故时,由 CPU 自动产生并执行(隐指令)
2️⃣设置供用户使用的陷阱指令
如 8086 INT TYPE 软中断
提供给用户使用的陷阱指令,完成系统调用

输入输出

操作数类型和操作种类_第11张图片

其他指令

操作数类型和操作种类_第12张图片

你可能感兴趣的:(计算机组成原理)