网站大量收购闲置独家精品文档,联系QQ:2885784924

微机原理-大连理工李卓涵--第3章.ppt

  1. 1、本文档共62页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
指令系统 第三章 指令系统 指令系统基本概念 第3.1节 8086寻址方式 指令是使计算机执行某种特定操作的二进制编码 指令系统是所有指令的集合 一条指令通常包括两部分 操作码:规定所要执行的操作类型 操作数:所需要处理的数据或者数据的地址信息 获得数据或者数据地址信息的方式称为寻址方式 例:MOV AX, 1234H 指令中有两个操作数,将前者称为目的操作数,后者称为源操作数,该指令将1234H传送到寄存器AX中。 CPU内部操作数寻址 一. 数据寻址方式 1. 立即数寻址 指令中直接给出操作数,指令执行时可以立即得到,此时把操作数又称作“立即数” 例:MOV AL,5 ;AL?5 2. 寄存器寻址 操作数放在CPU内部的寄存器中,在指令中直接指出寄存器的名字 例:INC CX ;将CX的内容加1 3. 隐含寻址 指令已经默认是对CPU中的某个寄存器操作 例:DAA ;默认对AL进行十进制加法调整 以上三种方式均直接从CPU内部获得数据,操作速度快 存储器操作数寻址 4. 直接寻址 操作数放在存储器中,存储单元的有效地址直接由指令给出 例:MOV SI, [2000H] ;SI?(2000H,2001H) CPU执行单元EU根据指令的寻址方式计算出16位的偏移量,称为有效地址(EA),一般用 [有效地址] 表示。 5. 寄存器间接寻址 操作数一定在存储器中,存储单元的有效地址由寄存器指出, 寄存器可以为BX、BP、SI、DI, 例:MOV AX, [BX] 存储器操作数寻址 若需要对其它段寻址,则必须用前缀指出段寄存器名,又称“段超越” 例: MOV BL, ES:[SI] ;BL ? 扩展段1000H单元的内容 注:IP只能在代码段寻址,SP只能在堆栈段寻址,不能进行段超越 6. 寄存器相对寻址 操作数的有效地址由寄存器内容加上一个8位或16位的偏移量得到 例:MOV AX, [BX+1000H] ;AX ? BX+1000H 所指向的存储单元内容 若BX = 2000H,则将数据段(3000H, 3001H)的内容传送给AX 指令也可书写为: MOV AX, 1000H[BX] 7. 基址变址寻址 操作数的有效地址由基址寄存器和变址寄存器的内容相加产生 例:MOV AX, [BP+SI] ;AX?(BP+SI) 8. 相对基址变址寻址 操作数的有效地址由基址寄存器、变址寄存器和偏移量三者相加产生 例:MOV AX, [BX+SI+1000H] ;AX?(BX+SI+1000H) 相对基址变址寻址应用 相对基址变址在数组访问中的应用 例:若访问堆栈段中的数组A[100]时,可以用BP存放栈顶地址,用偏移量表示数组中第一个元素到栈顶的距离,用变址寄存器SI(或DI)指向具体数组元素 第4~8种寻址方式,操作数一定在存储器中,由于计算EA、总线操作需要时间,因此比1~3方式慢 I/O端口寻址 二. I/O端口寻址 操作数在I/O端口中时,必须通过累加器(AX或AL)实现对端口的访问 1. 直接端口寻址 — 指令直接提供8位端口的地址 例:IN AL, 63H ;AL?(63H) 端口寻址时,地址不加[ ],当端口地址可用一个字节来表示时,可使用直接端口寻址 2. 间接端口寻址 — 由DX寄存器给出16位端口地址 例:MOV DX, 162H IN AX, DX 从端口162H读取一个字的数据传送到AX中,DX间接表示端口地址 比较:MOV AX, DX ;AX?DX IN AX, DX ;AX?(DX) 8086指令格式 第3.2节 8086指令格式 指令格式 指令一般由1~6个字节组成,具体格式如下: 指令格式 字节2,寻址方式 MOD:寻址方式字段 00=存储器方式,指令中无偏移量 01=存储器方式,指令中有8位偏移量 10=存储器方式,指令中有16位偏移量 11=寄存器方式,指令中无偏移量 Reg:寄存器编码字段 000=AL/AX 100=AH/SP 001=CL/CX 101=CH/BP 010=DL/DX 110=DH/SI 011=BL/BX 111=BH/DI

文档评论(0)

junjun37473 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档