Chapter 4. 指令系统
公式与性质
- 
Instruction Set Architercture, ISA(指令集体系结构)规定的内容主要包括:- 指令格式,指令寻址方式,操作类型,以及每种操作对应的操作数的相应规定。
- 操作数的类型,操作数寻址方式,以及是按大端方式还是按小端方式存放。
- 程序可访问的寄存器编号、个数和位数,存储空间的大小和编址方式。
- 指令执行过程的控制方式等,包括程序计数器、条件码定义等。
 
- 
x86处理器中的主要寄存器16bit 32bit ( Extended, E)说明 AXEAX累加器 AccuulatorBXEBX基地址寄存器 Base RegisterCXECX计数寄存器 Count RegisterDXEDX数据寄存器 Data RegisterESI变址寄存器 Source Index RegisterEDI变址寄存器 Destination Index RegiserEBP堆栈基指针 Base PointerESP堆栈顶指针 Stack Pointer- Intel指令格式的特征- 大小写不敏感。
- 第一个为目的操作数,第二个为源操作数。
- 寄存器和立即数不需要前缀。
- 使用 [和]进行内存寻址。
- 指明操作数的大小使用 byte ptr,word ptr,dword ptr,word表示 16 位;未指明长度默认为 32 位。
 
 
- 
CISC与RISC的对比Complex Instruction Set Computer, CISCReduced 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 即可。 
 
          
        