- 1、本文档共189页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 寻址方式及指令系统
第4章 寻址方式与指令系统 本章主要内容 1. 数据寻址方式 2. 转移地址寻址方式 3. 8086 指令系统及编程应用举例 4. 指令编码格式 4.1 寻址方式 4.1.1 数据寻址方式 1. 寻址方式概述 寻址方式 定义 :指令中如何提供操作数或操作数地址的方式称为寻址方式。 [规定如何对地址字段作出解释以找到操作数] * 程序转移时需提供转移地址,这跟提供操作数地址在方法上没有本质区别,因此也归入寻址方式的范畴。 一个指令系统能够提供哪些寻址方式,能否为编制程序提供方便,这是指令系统设计的关键。 需要说明的是,在不同的计算机系统中,寻址方式的名称和分类并不统一,但基本可以归结为以下几种方式或它们的变型或组合: 寻址方式的名称和分类 立即寻址(立即数寻址) 寄存器寻址 直接寻址 间接寻址 变址寻址 例如,Z80系统: 立即寻址 ;直接寻址 立即扩展寻址;零页寻址 隐含寻址;相对寻址 寄存器寻址;变址寻址 寄存器间接寻址;位寻址 两类寻址方式 数据寻址方式 转移地址寻址方式 (重点讨论数据的寻址方式) 2. 数据寻址方式 (1) 立即寻址(Immediate addressing) 指令中直接给出操作数,操作数紧跟在操作码之后,作为指令的一部分存放在代码段里,在取出指令的同时也就取出了操作数,立即有操作数可用,所以称之为立即寻址。 目的 源 example MOV AL, 80H ; 低地址 存储器 AX MOV AX, 3064H ; 代 码 ADD AL, 20H ; 段 ADD AX, 1090H; 高地址 立即数可以为8位,也可以为16位。如果是16位数,则“高位字节存放在高地址中,低位字节存放在低地址中。” 立即寻址方式常用于给寄存器赋值,并且只能用于源操作数,而不能用于目的操作数。 下述各条指令源操作数的寻址方式也都是立即寻址,但这些指令都是错误的: MOV AL, 256 ; 256=100H,超过了AL能存放的数的范围 MOV AX, -32769 ; -32769超过了AX能存放的带符号数(补码)范 围 MOV 100H, AL ; 立即数不能作为目的操作数 DEC 20 ; 单操作数指令不能使用立即数 MOV DS, 1234H ; 源操作数是立即数,则目的操作数就不能是 段寄存器 (2)寄存器寻址(Register addressing) 操作数在寄存器中,指令中指明寄存器号,这种寻址方式叫寄存器寻址。 对于8位操作数,寄存器可以是 AH,AL,BH,BL, CH, CL, DH, DL . 对于16位操作数,寄存器可以是AX, BX,CX, DX, SI, DI, SP ,BP,CS,DS,ES,SS (但CS 不能作目的寄存器) EXAMPLE INC AX ; MOV AX, BX ; DEC AX ; ROL AH , 1 ; 将AH中的内容循环左移一位 练习: MOV AX , BX ;正确。指令执行后, AX←BX,但BX不变 MOV AX, BL ;错误。源和目的的位数不相同 MOV CS, AX ;错误。CS不能作为目的操作数 MOV ES, DS ;错误。两个操作数不能都是段
文档评论(0)