第七章-指令系统01-指令的格式教案分析.ppt
文本预览下载声明
例如:求 X = A*B-C*D = 5*3-4*7 逆波兰表达式:53*47*-(数据结构) 采用零地址和单地址指令从左到右的顺序编程: PUSH A; 单地址指令 压入A PUSH B; 单地址指令 压入B MUL; 零地址指令 乘 PUSH C; 单地址指令 压入C PUSH D; 单地址指令 压入D MUL; 零地址指令 乘 SUB; 零地址指令 减 POP E; 单地址指令 弹出结果 5 PUSH A …… 5 PUSH B …… 3 15 MUL …… PUSH C 15 …… 4 15 …… 4 PUSH D 7 MUL 15 …… 28 -13 SUB …… POP E …… 利用栈作算术运算示意如下图: A 0000 0101 0000 0011 0000 0100 0000 0111 1000 1101 B C D E 7.2.1、地址码结构 主存 栈中参加 运算的数 永远是当 前指针所 指单元和 次位单元。 第七章 指令系统 7.1、指令系统概述 7.2、指令的格式 7.2.1、地址码结构 7.2.2、操作码结构 7.3、指令的寻址方式 7.4、指令的类型与功能 操作码 地址码 MOV r,m ADD r1,r2 1、统一编码 统一编码:把指令系统的操作用N位二进制编码,可编 2N 种不同操作。 早期计算机硬件成本高,多采用固定指令长度的统一编码方式。 (即定长数目的操作码字段和地址字段) 0000 MOV 0001 ADD 0010 SUB … (一共16种操作) OP (4位) 地址码 7.2.2、操作码结构 缺点:操作码较少而译码线路复杂。为了在控制上得到某种简化, 可以通过适当的逐位定义。 实际中两种方式(操作码定长与不定长)混合使用。 2、逐位定义 将操作码分成几部分,分别表示几种不同的操作, 通过他们的组合,可拼成一个复杂的操作含义。 例如:DJS-100系列计算机的逻辑指令格式 其中,用三位基本操作码表示8种逻辑操作,如ADD,SUB,COM,… 用另外的指令码表示移位、进位、结果回送、跳步等操作。 这种采用以基本操作为主,加相应的辅助性操作的方法,可使基本指令条数不多的指令系统具有相当多的实际组合。 1 源地址 目的地址 操作码 移位 进位 回送 跳步 0 1 2 3 4 5 7 8 9 10 11 12 13 15 7.2.2、操作码结构 3、扩展操作码技术 当采用统一操作码,指令长度与各类指令的地址长度发生矛盾时, 通常采用“扩展操作码”技术加以解决。 扩展操作码是一种指令优化技术,即让操作码的长度随地址数的减 少而增加(即扩展)。 根据不同的地址指令格式,如三地址、二地址、单地址指令等, 操作码的位数可以有不同的选择,从而在满足需要的前提下,有效 地缩短了指令长度。 例:设某指令系统,指令字长为16位,地址码长度为4位,试提出一种 分配方案,使该指令系统有15条三地址指令,14条两地址指令, 31条单地址指令,并留有表示零地址指令的可能。 OP D1 D2 D3 4位 4位 4位 4位 7.2.2、操作码结构 OP D1 D2 D3 4位 4位 4位 4位 0000 0001 … 1110 1111 扩展后 OP 8 位 1111 0000 1111 0010 …. 1111 1101 1111 1110 扩展后 OP 12 位 1111 1110 0000 1111 1110 0001 … 1111 1110 1111 三地址指令15条 OP 4 位 二地址指令14条 单地址指令16条 7.2.2、操作码结构 1111 1111 扩展后 OP 12 位 1111 1111 0000 1111 1111 0001 … 1111 1111 1110 1111 1111 1111 0000 … 1111 1111 1111 1111 单地址指令15条 零地址指令 7.2、指令格式(小结) 操作码 地址码 指令格式小结: 固定长度 (IBM/PC) 扩展长度 (PDP-11) 交叉安排 (NOVA) 四地址 三地址 二地址 单地址 零地址 三种方案 按操
显示全部