- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编教程 第三章 8086的寻址方式
* 使用相对的基址-变址寻址方式可以很方便地访问二维数组。 基址寄存器 数组首地址 变址寄存器 数组元素行址 位移量 数组元素列址 (偏移地址) 二维数组例:内存图示(按行存储) (行位移地址) (行内元素下标) 1 8 3 2 5 2 4 0 9 A = * 3.2.8 隐含寻址 指令操作数是隐含的,在指令中未显式地指明。 例:MUL BL 指令隐含了被乘数AL及乘积AX (AL)×(BL)→AX * 小结 指令由( )和( )构成 如何取得操作数——称为( ) 操作码 操作数 寻址方式 * 寻址方式可分为 立即寻址 直接寻址 寄存器相对寻址 寄存器寻址 基址-变址寻址 基址-变址相对寻址 寄存器间接寻址 * 寄存器间接、寄存器相对、基址变址、相对基址变址四种寻址方式的比较: 寻址方式 指令操作数形式 寄存器间接 只有一个寄存器(BX/BP/SI/DI之一) 寄存器相对 一个寄存器加上位移量 基址—变址 两个不同类别的寄存器 相对基址-变址 两个不同类别的寄存器加上位移量 * ?/WanJun * 汇编语言程序设计 * 第3章 寻址方式与指令系统 mov ax,12h call display Jmp 1234h * 3.1 指令的组成3.1.1 指令的基本构成 说明要执行的是什么操作 操作对象,可以有0个、1个或2个 目的 源 * 指令举例: ADD AX,[SI+6] MOV AX , BX 操作码 操作数 INC [BX] HLT * 3.1.2 8088/8086的操作数分为3类 1、立即数(常数) 取值范围如下表: 8位 16位 无符号数 00H-FFH(0-255) 0000H-FFFFH(0-65535) 带符号数 80H-7FH(-128~127) 8000H-7FFFH(-32768~32767) MOV AX,0FA00H ;正确 MOV 8000H,DX ;错误 * 2、寄存器操作数 放在8个通用寄存器或4个段寄存器中的操作数 * 只能存放字操作数 段寄存器存放当前操作数的段基地址 不允许将立即数传送到段寄存器 SI DI BP SP CS DS ES SS * 3、存储器操作数 存储器操作数 字节 字 双字 1 2 4 类型 存储单元个数 一般不允许两个操作数同时为存储器操作数 错例:ADD [AX],[BX] * 存储单元的物理地址 = 段基地址 + 偏移地址 若指令中没有指明所涉及的段寄存器,CPU就采用默认的段寄存器来确定操作数所在的段。 段寄存器使用的一些基本约定 * 存储器操作数的偏移地址(也称有效地址)可以通过不同的寻址方式由指令给出。 例如,若(BX)=2000H, (SI)=0A00H, (DI)=2A00H,则以下指令的结果是一样的: MOV AL, [2A00H] MOV AL, [BX+0A00H] MOV AL, [BX][SI] MOV AL, [DI] * 指令周期(一条指令的执行时间)=∑ 3.1.3 指令的执行时间 取指令 取操作数 执行指令 传送结果 结论: 1)尽量使用寄存器作为操作数 2)若有可能,用移位代替乘除法 3)尽量使用简单的寻址方式 * 寻址方式——寻找操作数的方法 寻找操作数的地址(一般指源操作数) 寻找要执行的下一条指令的地址 在8086指令系统中,说明操作数所在地址的寻址方式可分为8种: ①立即寻址 ②直接寻址 ③寄存器寻址 ④寄存器间接寻址 ⑤ 寄存器相对寻址 ⑥基址-变址寻址 ⑦相对的基址-变址寻址 ⑧隐含寻址 3.2 8086的寻址方式 * 操作数(为一常数)直接由指令给出 (此操作数称为立即数) 立即寻址只能用于源操作数 例: MOV AX, 1C8FH MOV BYTE PTR[2A00H], 8FH 错误例: × MOV 2A00H, AX ; 错误! 3.2.1 立即寻址 * 立即数 操作码 低8位 高8位 存储器 MOV操作码 02H 31H AH AL 代码段 代码段 立即寻址指令在存储器中的存放形式 AX 指令操作例:
文档评论(0)