Chapter 4. 指令系统
公式与性质
-
Instruction Set Architercture, ISA
(指令集体系结构)规定的内容主要包括:- 指令格式,指令寻址方式,操作类型,以及每种操作对应的操作数的相应规定。
- 操作数的类型,操作数寻址方式,以及是按大端方式还是按小端方式存放。
- 程序可访问的寄存器编号、个数和位数,存储空间的大小和编址方式。
- 指令执行过程的控制方式等,包括程序计数器、条件码定义等。
-
x86
处理器中的主要寄存器16bit 32bit ( Extended, E
)说明 AX
EAX
累加器 Accuulator
BX
EBX
基地址寄存器 Base Register
CX
ECX
计数寄存器 Count Register
DX
EDX
数据寄存器 Data Register
ESI
变址寄存器 Source Index Register
EDI
变址寄存器 Destination Index Regiser
EBP
堆栈基指针 Base Pointer
ESP
堆栈顶指针 Stack Pointer
Intel
指令格式的特征- 大小写不敏感。
- 第一个为目的操作数,第二个为源操作数。
- 寄存器和立即数不需要前缀。
- 使用
[
和]
进行内存寻址。 - 指明操作数的大小使用
byte ptr
,word ptr
,dword ptr
,word
表示 16 位;未指明长度默认为 32 位。
-
CISC
与RISC
的对比Complex Instruction Set Computer, CISC
Reduced Instruction Set Computer, RISC
指令系统 复杂,庞大 简单,精简 指令数目 一般大于 200 条 一般小于 100 条 指令字长 不固定 定长 寻址方式 较多 较少 可访存指令 不加限制 只有 LOAD/STORE
指令各种指令执行时间 相差较大 绝大多数在一个周期内完成 各种指令使用频度 相差很大 都比较常用 通用寄存器数量 较少 较多 目标代码 难以优化编译生成高效的目标代码程序 优化编译程序生成代码较为高效 控制方式 绝大多数使用微程序控制 绝大多数使用组合逻辑控制 指令流水线 可以实现 必须实现
概念
-
某机器采用 16 位单字长指令,采用定长操作码,地址码为 5 位,现已定义 60 条二地址指令,那么单地址指令最多有 4 条。
注意是定长,而不是变长。2^6-60=4 。
-
程序控制指令包括:
- 转移指令
- 循环控制指令
- 过程调用指令
- 中断控制指令
-
循环结构语句的机器级代码一定至少包含一条条件转移指令。
就算是死循环(循环体首尾均无条件转移)也至少需要一条条件转移指令在循环内判断何时跳出。
考点
-
某指令系统指令长为 8 位,每一地址码长 3 位,用扩展操作码技术。若指令系统具有 2 条二地址指令、20 条零地址指令,则最多有 13 条一地址指令。
[(2^2-2)\times 2^3 -x]\times 2^3 \ge 20, \ x \le 13.5 。
-
寄存器
R1
,R2
均为 16 位,指令MOV R1,[R2]
的功能是把内存数据传送至寄存器R1
,寻址方式为寄存器间接寻址。R2
的值为 1234H,内存单元1234H
存放数据 56H ,内存单元1235H
存放数据 78H ,采用小端方式存储,则执行指令后R1
的值为 7856H 。"
R1
的值"指真实值,需要把小端存储改回自然顺序。 -
若采用大端存储的操作数
1234 FF00H
的地址为EFFF FF12
,则其最低有效字节(Least Sigificant Byte, LSB)
所在的地址为EFFF FF15H
。该操作数占 4 个字节,最低有效字节在首地址上 +3 即可。