第4章寻址方式和指令系统.ppt

第4章寻址方式和指令系统.ppt

ID:59189606

大小:797.50 KB

页数:190页

时间:2020-09-22

第4章寻址方式和指令系统.ppt_第1页
第4章寻址方式和指令系统.ppt_第2页
第4章寻址方式和指令系统.ppt_第3页
第4章寻址方式和指令系统.ppt_第4页
第4章寻址方式和指令系统.ppt_第5页
资源描述:

《第4章寻址方式和指令系统.ppt》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第4章寻址方式与指令系统本章主要内容数据寻址方式转移地址寻址方式8086指令系统及编程应用举例指令编码格式4.1寻址方式4.1.18086/8088的寻址方式1.寻址方式概述寻址方式定义:指令中如何提供操作数或操作数地址的方式称为寻址方式。[规定如何对地址字段作出解释以找到操作数]*程序转移时需提供转移地址,这跟提供操作数地址在方法上没有本质区别,因此也归入寻址方式的范畴。一个指令系统能够提供哪些寻址方式,能否为编制程序提供方便,这是指令系统设计的关键。需要说明的是,在不同的计算机系统中,寻址方式的名称和分类并不统一,但基本可以归结为以下几种方式或它们的变型或组合:寻址方式的名称

2、和分类立即寻址(立即数寻址)寄存器寻址直接寻址间接寻址变址寻址例如,Z80系统:立即寻址;直接寻址立即扩展寻址;零页寻址隐含寻址;相对寻址寄存器寻址;变址寻址寄存器间接寻址;位寻址两类寻址方式数据寻址方式转移地址寻址方式(重点讨论数据的寻址方式)2.数据寻址方式(1)立即寻址(Immediateaddressing)指令中直接给出操作数,操作数紧跟在操作码之后,作为指令的一部分存放在代码段里,在取出指令的同时也就取出了操作数,立即有操作数可用,所以称之为立即寻址。目的源exampleMOVAL,80H;低地址存储器AXMOVAX,3064H;代码ADDAL,20H;段ADDAX,

3、1090H;高地址OP6430立即数可以为8位,也可以为16位。如果是16位数,则“高位字节存放在高地址中,低位字节存放在低地址中。”立即寻址方式常用于给寄存器赋值,并且只能用于源操作数,而不能用于目的操作数。下述各条指令源操作数的寻址方式也都是立即寻址,但这些指令都是错误的:MOVAL,256;256=100H,超过了AL能存放的数的范围MOVAX,-32769;-32769超过了AX能存放的带符号数(补码)范围MOV100H,AL;立即数不能作为目的操作数DEC20;单操作数指令不能使用立即数MOVDS,1234H;源操作数是立即数,则目的操作数就不能是段寄存器(2)寄存器寻

4、址(Registeraddressing)操作数在寄存器中,指令中指明寄存器号,这种寻址方式叫寄存器寻址。对于8位操作数,寄存器可以是AH,AL,BH,BL,CH,CL,DH,DL.对于16位操作数,寄存器可以是AX,BX,CX,DX,SI,DI,SP,BP,CS,DS,ES,SS(但CS不能作目的寄存器)EXAMPLEINCAX;MOVAX,BX;DECAX;ROLAH,1;将AH中的内容循环左移一位CFD7D0练习:MOVAX,BX;正确。指令执行后,AX←BX,但BX不变MOVAX,BL;错误。源和目的的位数不相同MOVCS,AX;错误。CS不能作为目的操作数MOVES,D

5、S;错误。两个操作数不能都是段寄存器寄存器寻址的特点(1)操作数就在寄存器中,不需要访问存储器来取得操作数(指令执行时,操作就在CPU的内部进行),因而执行速度快。(2)寄存器号比内存地址短*在编程中,如有可能,尽量使用这种寻址方式的指令。*寄存器寻址方式既可用于源操作数,也可用于目的操作数,还可以两者都用于寄存器寻址方式(如MOVBX,AX)除以上两种寻址方式外,下面各种寻址方式的操作数均在存储器中,通过采用不同的寻址方式取得操作数地址,从而取得操作数。(3)直接寻址(DirectAddressing)说明:在讨论寻址方式时,通常把操作数的偏移地址称为有效地址EA(Effect

6、iveAddress),EA可通过不同的寻址方式来得到。在直接寻址方式中,指令中直接给出操作数的有效地址,或者说,有效地址EA就在指令中。它(操作数的有效地址,而不是操作数本身)存放在代码段中指令的操作码之后,但操作数一般存放在数据段中。例1.MOVAX,DS:[2000H];如(DS)=3000H,则指令的执行情况如下图所示:代存储器采用直接寻址方式,如果没码有用“段跨越前缀”标明操作段数在哪一段,就默认段寄存为DS.30000H数AX据段32000H执行结果:(AX)=3050HOP00205030也允许数据存放在数据段以外的其它段(如附加段)。此时应在指令中给出“跨越段前缀

7、”。例2:如数据在附加段中,则应指明“段跨越缀”。MOVAX,ES:[3000H]或ES:MOVAX,[3000H]*为了使指令字不要过长,规定双操作数指令不能两个操作数都用直接寻址方式。如MOVDS:[2000H],DS:[3000H]寄存器间接寻址 (RegisterindirectAddressing)采用寄存器间接寻址方式时,指令中给出寄存器号(寄存器为BX,BP,SI和DI之一),被指定的寄存器中存放着操作数的有效地址,操作数在存储器中(以寄存器的内容为操作数的有效地址

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。