1、第三节 指令类型CISC化RISC化:从增强指令系统功能出发,指令功能复杂。:从提高指令执行效率出发,指令功能简单。3.3.1 传送指令源地址 目的地址数设置时需考虑:1.规定传送范围例.DJS-100系列:80X86:IBM370:R MR M,R RR M,R R,M M2.指明传送单位例.VAX-11(用操作码说明):80X86(用地址量说明):传送次数由计数器控制MOVB 8MOV AX,BX(16)MOVW 16MOVL 32MOV AL,BL(8)MOV EAX,EBX(32)例.80X86的串传送指令:REP MOVSW3.设置寻址方式在寻址方式的设置上几乎不受限制,能比较集中地
2、反映指令系统各种寻址方式的实现。3.3.2 输入/输出指令各种信息主机 外设设置时需考虑:1.I/O指令的功能扩展如何用通用I/O指令实现对各种具体设备的控制?(1)I/O指令中留有扩展余地指令中某些字段编码事先不定义,需要时再约定其含义。(2)I/O接口中设置控制/状态寄存器用于外设种类、数量不多的场合。(2)I/O接口中设置控制/状态寄存器2.主机对外设的寻址方式如何设置控制/状态寄存器是接口设计的关键。寻找I/O接口中的寄存器的方式。主机用输出指令或传送指令将具体设备的控制命令按约定的代码格式送往接口中的控制寄存器,向外设发出命令。外设的状态信息也以某种格式放在接口的状态寄存器中,主机用
3、输入指令或传送指令从状态寄存器中取出有关信息进行查询、分析。I/O端口寻找I/O接口中的寄存器的方式。如何为I/O端口分配地址?(1)单独编址I/O地址空间不占主存空间,可与主存空间重叠。编址到设备:每个设备有各自的设备编码;I/O指令中给出设备码,并指明访问该设备的哪个寄存器。=1 访问存储器=0 访问I/O端口需设置标志区分访问对象,如编址到寄存器:为每个寄存器(I/O端口)分配独立的端口地址;I/O指令中给出端口地址。M/IO(2)统一编址(2)统一编址I/O端口占据部分主存空间。常将存储空间的低端分配给主存单元,高端分配给I/O端口,以示区分。编址到寄存器(1)设置专用I/O指令针对单
4、独编址,用I/O指令访问I/O端口。指令中说明输入/输出操作,并给出设备码或端口地址。:为每个寄存器(I/O端口)分配总线地址;访问外设时,指令中给出总线地址。3.I/O指令设置方式显式I/O指令例1.DJS-100系列I/O指令设置3 2 3 2 6 输入:DIB C 2,设备码;(B)AC2标志 累加器号 操作码 控制功能 设备码 并清除B接口中主机内 输出:DOA 3,设备码;(AC3)A例2.80X86I/O指令设置 输入:IN AL,n;端口地址(n)AL(直接端口寻址)IN AL,DX;间接端口地址(DX)AL(间接端口寻址)输出:OUT n,AL;(AL)n(直接端口寻址)OUT
5、 DX,AL;(AL)(DX)(间接端口寻址)主机调用输入机:(2)用传送指令实现I/O操作针对统一编址,用传送指令访问I/O端口。不设专用I/O指令。例.某机I/O接口中设置控制/状态寄存器CSR,其总线地址为177550(8进制)数据缓冲寄存器DBR,其总线地址为177552隐式I/O指令控制/状态字格式:出错 故障 忙 完成 允许中断 维护 校验 启动15 14 12 7 6 2 1 0启动:测试:取数:主机 177550控制字(启动位为1)传送指令主机 177550 状态字传送指令主机 177552 数据传送指令(3)通过I/O处理机进行I/O操作CPU执行简单I/O指令 (启动、停止
6、、查询、清除)设置时需考虑操作数类型、符号、进制等;运算结束后设置相应状态标志。两级I/O指令1.算术运算指令I/O处理机执行I/O操作指令 (输入、输出)3.3.3 算术逻辑运算指令2.逻辑运算指令实现对代码位的设置、测试、清除、修改等。与或异或控制程序流程。1.转移指令3.3.4 程序控制指令2.转子指令与返回指令转子:操作码 子程序入口无条件转移条件转移循环:操作码 转移地址:操作码 转移地址 转移条件:转移条件为循环计数值返回:操作码 返回地址同一条返回指令应能提供多个不同的返回地址。返回地址的存取:用堆栈存放返回地址。SP主程序子程序A子程序BD1D2.D1SPD2主程序子程序A子程序BD1D2子程序AD3SPSPD3多重转子递归调用子程序不复杂,支持多重转子和递归调用。SP3.软中断指令程序自陷指令 第三章复习提纲1.I/O指令的功能扩展(目的、方法),外设编址方式和指令设置方式。2.基本概念:扩展操作码(扩展方法)、地址结构(简化方法)、隐地址、显地址、基本寻址方式(立即、直接、间址、变址)的含义与应用场合。表示不同的功能调用调试程序早期主要用于程序的调试。现在常常用于系统功能调用。以 INT n 的形式出现在程序中。