- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理与接口技术;主要内容:;3.1 概述;指令按功能分为六大类(92种);3.1.1 指令的基本构成;指令举例:;部分8088/8086常用指令;8088/8086的操作数分为4类;2、寄存器操作数;只能存放字操作数;3、存储器操作数;存储单元的物理地址 = 段基地址×16 + 偏移地址; 存储器操作数的偏移地址(也称有效地址EA)要用“[EA]”方括号括起来, 它可以通过不同的寻址方式由指令给出;
存储器操作数的段基地址(也称段头地址)一般省去,按隐含规则确定它们,也可直接给出进行段超越。
例如 若(BX)=2000H, (SI)=0A00H, (DI)=2A00H,
则以下指令的结果是一样的:
MOV AL, [2A00H] ;隐含段头为DS,直接寻址
MOV AL, [BX+0A00H] ;隐含段头为DS ,寄存器相对寻址
MOV AL, [BX][SI] ;隐含段头为DS,基址-变址寻址
MOV AL, [DI] ;隐含段头为DS,寄存器间接寻址
但 MOV AL, ES:[2A00H] ; 段超越,段头为ES,与前4条不同;4、I/O接口操作数;一条指令的执行时间=∑;寻址方式——寻找操作数的方法
寻找操作数的地址(一般指源操作数)
寻找要执行的下一条指令的地址
在8086指令系统中,操作数所在地址的寻址方式可分为8种:
①立即寻址 ⑤ 寄存器相对寻址
②直接寻址 ⑥基址-变址寻址
③寄存器寻址 ⑦相对的基址-变址寻址
④寄存器间接寻址 ⑧隐含寻址; 操作数(为一常数)直接由指令给出
(此操作数称为立即数)
立即寻址只能用于源操作数
例:
MOV AX, 1C8FH
MOV BYTE PTR[2A00H], 8FH
错误例:
× MOV 2A00H, AX ; 错误!
;立即数;3.2.3 寄存器寻址;;3.2.2 直接寻址;例:MOV AX,[3102H] ;AL (3102H) , AH (3103H);3.2.4 寄存器间接寻址;指令操作例:MOV AX,[SI]
若 (DS)=6000H, (SI)=1200H, (61200H)=44H, (61201H)=33H
则指令执行后,(AX)=3344H。;3.2.5 寄存器相对寻址; 例: MOV AX, [BX+8]
MOV CX, TABLE[SI]
MOV AX, [BP+1000H] ; 默认段寄存器为SS
指令操作例:MOV AX,DATA[BX]
若(DS)=6000H, (BX)=1000H, DATA=2A00H,
(63A00H)=66H, (63A01H)=55H
则物理地址 = 60000H + 1000H + 2A00H = 63A00H
指令执行后:(AX)=5566H
(见下页图示) ;操作码;3.2.6 基址-变址寻址;例:
MOV AX, [BX] [SI]
MOV AX, [BX+SI]
MOV AX, DS: [BP] [DI]
错误例:
× MOV AX, [BX] [BP]
× MOV AX, [DI] [SI]
; 83000;3.2.7 相对的基址-变址寻址;指令操作例:MOV AX,DATA[DI][BX]
若(DS)=8000H, (BX)=2000H, (DI)=1000H, DATA=200H
则指令执行后(AH)=[83021H], (AL)=[83020H];使用相对的基址-变址寻址方式可以很方便地访问二维数组。; 这种寻址方式为386以上处理器采用:
将第二个寄存器与比例因子相乘,比例因子可以是1、2、4、8。分别对应字节、字、双字、四字数组。
例如:
MOV [EAX+2*EDI+100H],CX
MOV AL,[EBP+2*EDI-2]
MOV EAX,ARRAY[4*ECX];3.2.9 隐含寻址;如何寻找指令的地址呢?;第四章 80X86的寻址方式和指令系
文档评论(0)