DJ5 指令类型_第1页
DJ5 指令类型_第2页
DJ5 指令类型_第3页
DJ5 指令类型_第4页
DJ5 指令类型_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2.3 指令类型指令类型2.3.1 传送指令传送指令源地址源地址 目的地址目的地址数据数据传送指令的指令特点传送指令的指令特点:功能功能1. 规定传送范围规定传送范围用户编程能够指定的用户编程能够指定的源端源端和和目的端目的端:寄存器寄存器 (R) 存储器存储器(M) RRRMMM范围、单位、寻址方式范围、单位、寻址方式例例. Intel 80X86: R M, R RIBM370:R M, R R, M MR MDJS-100系列系列:传送范围的指定涉及多方面因素传送范围的指定涉及多方面因素:复杂性、速度、价格等复杂性、速度、价格等R MR R尽可能让数据在尽可能让数据在R之间传送之间传送,

2、速度快速度快, 复杂性增加复杂性增加M M速度慢速度慢, 利于编程利于编程介于前两者之间介于前两者之间例例. 80X86的串传送指令的串传送指令: REP MOVSWMOV AX, BX (16位位)MOV AL, BL (8位位)MOV EAX, EBX (32位位)(字传送字传送, SI DI, 传送次数由计数器传送次数由计数器CX控制控制)2. 指明传送单位指明传送单位例例. VAX-11(用操作码说明用操作码说明):MOVB8位位MOVL32位位MOVW16位位Intel 80X86:(用地址量说明用地址量说明)3. 设置寻址方式设置寻址方式 不同机器各不相同不同机器各不相同, 但一般

3、都具有基本的但一般都具有基本的寻址方式寻址方式 寻址方式越多寻址方式越多, 编程越方便,但机器的实编程越方便,但机器的实现越复杂现越复杂针对数据传送指令设置的寻址方式针对数据传送指令设置的寻址方式:2.3.2 输入输入/输出指令输出指令1. I/O指令的功能扩展指令的功能扩展如何用通用如何用通用I/O指令实现对各种不同设备的控制指令实现对各种不同设备的控制? (1) I/O指令中留有扩展余地指令中留有扩展余地指令中某些字段编码事先不定义指令中某些字段编码事先不定义, 需要时再约需要时再约定其含义。定其含义。 各种信息各种信息主机主机 外设外设 比如比如: 设置设置I/O指令时需考虑指令时需考虑

4、:操作码操作码 操作数操作数1 操作数操作数2三位空闲三位空闲, 接口设计时定义接口设计时定义 译码器译码器三位编码三位编码, 定义定义8种功能种功能应用范围应用范围: 用于外设种类、数量不多的场合。用于外设种类、数量不多的场合。(2) I/O接口中设置接口中设置控制控制/状态寄存器状态寄存器 主机用输出指令或传送指令将具体设备的控主机用输出指令或传送指令将具体设备的控 制命令按约定的代码格式送往接口中的制命令按约定的代码格式送往接口中的控制控制寄存器寄存器, 向外设发出命令。向外设发出命令。 外设的状态信息也以某种格式放在接口的状外设的状态信息也以某种格式放在接口的状态寄存器中态寄存器中,

5、主机用输入指令或传送指令从主机用输入指令或传送指令从状态寄存器状态寄存器中取出有关信息进行查询中取出有关信息进行查询、分析。分析。如何设置控制如何设置控制/ /状态寄存器是接口设计的关键状态寄存器是接口设计的关键。例例:处理器处理器 I/O 设备设备 总线总线可编程接可编程接口芯片口芯片 控制寄存器控制寄存器 状态寄存器状态寄存器控制寄存器控制寄存器 .C7 C6 C5 .C0 状态寄存器状态寄存器 .D7 D6 D5 .D0 OUT n1, ALIN AL, n22. 主机对外设的寻址方式主机对外设的寻址方式I/O端口端口寻找寻找外设外设或或I/O接口中的寄存器接口中的寄存器的方式。的方式。

6、如何为如何为I/O端口分配地址?端口分配地址? I/O设备设备 I/O接口逻辑接口逻辑 寄存器寄存器 译译码码器器端口地址端口地址数据数据端口地址与存储器地址的关系?端口地址与存储器地址的关系?(1) 单独编址单独编址 编址到设备编址到设备: 编址到寄存器编址到寄存器(端口独立编址端口独立编址) : 端口地址的位数一般远少于存储单元地址的位数端口地址的位数一般远少于存储单元地址的位数 I/O地址空间不占主存空间地址空间不占主存空间 因此因此I/O地址可与内存地址重叠地址可与内存地址重叠每个设备有各自的设备编码每个设备有各自的设备编码; I/O指令给出设指令给出设备码备码, 并指明访问该设备的哪

7、个寄存器。并指明访问该设备的哪个寄存器。为每个寄存器为每个寄存器(I/O端口端口)分配独立的端口地分配独立的端口地 址址, I/O指令中给出端口地址。指令中给出端口地址。单独编址的特点单独编址的特点:例例: 端口独立编址端口独立编址 (地址重叠地址重叠)存储空间存储空间: 容量容量64K, 编址编址0000H FFFFH端口编址端口编址: 00H FFH (假设都已分配给不同端口假设都已分配给不同端口)处理器处理器 地址总线地址总线外设端口外设端口寄存器寄存器存储器存储器数据总线数据总线RD 读存储单元读存储单元FF30H, 处理器输出地址处理器输出地址 ,存储器从存储器从16位地址总线上接收

8、位地址总线上接收FF30H, 并接收读命令并接收读命令RD 由于采用总线结构由于采用总线结构, 外设端口也将从地址总线外设端口也将从地址总线的低的低8位收到处理器发出地址的低位收到处理器发出地址的低8位位(30H), 并并收到读命令收到读命令 。RD 如果不加控制如果不加控制, 存储单元存储单元FF30H和地址为和地址为30H的的端口的数据被同时读出到数据总线端口的数据被同时读出到数据总线, 导致会乱。导致会乱。处理器处理器 地址总线地址总线外设端口外设端口寄存器寄存器存储器存储器数据总线数据总线RD关键原因关键原因: 地址码本身不能区分地址码本身不能区分存储单元存储单元或或端口端口。(2)

9、统一编址统一编址I/O端口占据部分处理器提供的全部寻址空端口占据部分处理器提供的全部寻址空间的一部分。可将存储空间的低端分配给主间的一部分。可将存储空间的低端分配给主存单元存单元, 高端分配给高端分配给I/O端口端口, 以示区分以示区分。 编址到寄存器编址到寄存器:为每个寄存器为每个寄存器(I/O端口端口)分配总线地址分配总线地址;访问外设时访问外设时, 指令中给出总线地址。指令中给出总线地址。 (即即 与存储器单元统一编址与存储器单元统一编址)因此因此, 地址本身能够区分出地址本身能够区分出存储单元地址存储单元地址还是还是I/O端口地址端口地址, 无需其它控制无需其它控制, 不会出现存储单不

10、会出现存储单元和端口的读写发生会乱。元和端口的读写发生会乱。 端口独立编址端口独立编址: 用专门的用专门的/输入输出指令来完成输入输出指令来完成端口的读写操作端口的读写操作 统一编址统一编址:无需专门输入无需专门输入/输出指令输出指令, 采用一般数采用一般数据传送指令即可端口的读写操作据传送指令即可端口的读写操作比如比如: 输入指令输入指令 IN Ri , n 输出指令输出指令 OUT n , Ri比如比如: 某外设接口有某外设接口有3各寄存器各寄存器, 分别为分别为: 数据寄存器数据寄存器 分配地址分配地址 FF00 命令字寄存器命令字寄存器 分配地址分配地址 FF01 状态寄存器状态寄存器

11、 分配地址分配地址 FF02 CPU内部有寄存器内部有寄存器R0 、R1 、R2 、 R3数据寄存器数据寄存器 分配地址分配地址 FF00命令字寄存器命令字寄存器 分配地址分配地址 FF01状态字寄存器状态字寄存器 分配地址分配地址 FF02则指令则指令: MOV FF01 , R0 R0的内容输出到命令字寄存器的内容输出到命令字寄存器MOV R1 , FF02 状态字输入状态字输入CPU内内R1MOV R2 , FF00 数据寄存器内容输入数据寄存器内容输入CPU内内R2MOV FF00 , R3 R3的内容输出到数据寄存器的内容输出到数据寄存器CPU设置标志来区分访问对象设置标志来区分访问

12、对象, 如如Intel80 86= 0 访问访问I/O端口端口M/IO 对于端口独立编址:对于端口独立编址:= 1 访问存储器访问存储器电路如何实现电路如何实现(体现体现) 两种不同的编址方式?两种不同的编址方式? 对于统一编址:对于统一编址:译码电路对地址码的译码区分出需要读写译码电路对地址码的译码区分出需要读写的单元或端口。的单元或端口。当执行当执行I/O所指令时所指令时, 该引脚为该引脚为0 ;(引脚引脚)当访问存储器时当访问存储器时(执行任何需访存的指令、执行任何需访存的指令、取指令等取指令等), 该引脚为该引脚为1 ;(引脚引脚 的利用的利用):M/IO电路原理电路原理存储存储芯片芯

13、片 I/O端口端口M地址地址译码器译码器I/O地址地址译码器译码器M/IOENEN地址总线地址总线CSCS 端口的类型以及选中的方式端口的类型以及选中的方式:端口的常见类型有端口的常见类型有: 寄存器寄存器(常作输出端口常作输出端口) 带三态输出的寄存器带三态输出的寄存器 (常作输入端口常作输入端口) 触发器触发器输出端口输出端口端口选中方式端口选中方式: 接口电路接口电路 寄存器寄存器数据总线数据总线 译码器译码器地址总线地址总线CLK(端口地址端口地址)到外设到外设打入脉冲打入脉冲 接口电路接口电路 数据总线的某一位数据总线的某一位 译码器译码器地址总线地址总线CLK(端口地址端口地址)D

14、CQQ触发器触发器输入端口输入端口 接口电路接口电路 三态输出寄存器三态输出寄存器数据总线数据总线 译码器译码器地址总线地址总线EN(端口地址端口地址)自外设自外设开门信号开门信号3. I/O指令设置方式指令设置方式(1)(1)设置专用设置专用I/O指令指令 显式显式I/O指令指令针对端口独立编址针对端口独立编址, 用用I/O指令访问指令访问I/O端口。指端口。指令中说明输入令中说明输入/输出操作输出操作, 给出给出设备码或端口地址。设备码或端口地址。例例1. DJS-100系列系列I/O指令设置指令设置 输入输入: DIB C 2, 设备码设备码; 接口内寄存器接口内寄存器主机内寄存器主机内

15、寄存器AC2并清除并清除B (C表示清除表示清除) 3 2 3 2 6 特征位特征位 累加器号累加器号 操作码操作码 控制功能控制功能 设备码设备码 完成完成:(B)例例2. Intel 80X86 I/O指令设置指令设置端口地址端口地址 输入输入: IN AL, n ;(n) AL(端口直接寻址端口直接寻址)间接端口地址间接端口地址IN AL, DX ;OUT n, AL ; (AL) n(端口直接寻址端口直接寻址)OUT DX, AL ; (AL) (DX)(端口间接寻址端口间接寻址) 输出输出: (端口间接寻址端口间接寻址)(DX)AL 输出:输出:DOA 3, 设备码设备码;(AC3)

16、 A接口内寄存器接口内寄存器主机内寄存器主机内寄存器(2) 用用传送指令传送指令实现实现I/O操作操作 隐式隐式I/O指令指令 例例. 某机某机I/O接口中设置接口中设置 控制控制/状态寄存器状态寄存器CSR, 其总线地址为其总线地址为177550 (8进制进制) 数据缓冲寄存器数据缓冲寄存器DBR, 其总线地址为其总线地址为177552 (8进制进制)针对统一编址针对统一编址, 用传送指令访问用传送指令访问I/O端口。端口。不设专用不设专用I/O指令。指令。主机调用输入机主机调用输入机:控制控制/状态字格式状态字格式:出错出错 故障故障 忙忙 完成完成 允许中断允许中断 维护维护 校验校验

17、启动启动15 14 12 7 6 2 1 0启动启动:177550传送指令传送指令控制字控制字(启动位为启动位为1)主机主机测试测试: 主机主机传送指令传送指令状态字状态字177550取数取数:177552传送指令传送指令数据数据主机主机(3) 通过通过I/O处理机进行处理机进行I/O操作操作两级两级I/O指令指令 CPU执行简单执行简单I/O指令指令(启动、停止、查询、清除启动、停止、查询、清除) I/O处理机执行处理机执行I/O操作指令操作指令(输入、输出输入、输出)主机主机 I/O 设备设备 I/O处理机处理机 I/O 设备设备.设置时需考虑设置时需考虑操作数类型操作数类型、符号符号、进

18、位制进位制等等;运算结束后设置相应运算结束后设置相应状态标志状态标志。1. 算术运算指令算术运算指令2.3.3 算术逻辑运算指令算术逻辑运算指令2. 逻辑运算指令逻辑运算指令实现对数据的实现对数据的设置、测试、清除、修改设置、测试、清除、修改等等与与或或异或异或 OR AL, 60H将将AL的的D6、D5位置位置1 TEST AL, 83H测试测试AL的的D7、D1、D0位是否为位是否为0XOR AL, 0AH将将AL的的D3、D1位变反位变反用于控制程序指令的流程。用于控制程序指令的流程。1. 转移指令转移指令2.3.4 程序控制指令程序控制指令2. 转子指令与返回指令转子指令与返回指令转子转子指令指令: 操作码操作码 子程序入口

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论