- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IBM—PC汇编语言
程序设计(第2版);第03讲:80×86寻址方式;§3.1、指令系统的基本概念;操作码?说明计算机要执行哪种操作,如传送、运算、移位、跳转等操作,它是指令中不可缺少的组成部分。 ;指令的功能——该指令能够实现何种操作。通常指令助记符就是指令功能的英文单词或其缩写形式。
指令支持的寻址方式——该指令中的操作数可以采用何种寻址方式。
指令对标志的影响——该指令执行后是否对各个标志位(OV、ZF、CF、PF等)有影响,以及如何影响。;3.2.1 寻址、寻址方式的概念
寻址就是寻找操作数的地址。
寻址方式就是寻找操作数的方法。
操作数可以跟随在指令操作码之后,称为立即数.
操作数也可以存放在CPU内部的寄存器中,称为寄存器操作数.
绝大多数的操作数存放在内存储器中,称为存储器操作数.
指令指定操作数的位置,即给出地址信息,在执行时需要根据这个地址信息找到需要的操作数.; 指令助记符体现该指令的功能,它对应一条二进制编码的机器指令。
指令的操作数个数由该指令确定,可以没有操作数,也可以有一个、二个或三个操作数。
80X86寻址方式分类:
寻址的中心问题如何确定“偏移地址”的值;
第一类:与数据有关的十种方式?①立即寻址、②寄存器寻址、③直接寻址、④寄存器间接寻址、⑤寄存器相对寻址、⑥基址变址寻址、⑦相对基址变址寻址、⑧比例变址寻址、⑨基址比例变址寻址、⑩相对基址比例变址寻址;
第二类:与转移地址有关的四种寻址方式?①段内直接寻址、②段内间接寻址、③段间直接寻址、④段间间接寻址;
说明:同一指令的多个操作数可各自采用不同的寻址方式。 ;3.2.3 与数据有关的寻址方式
与寻址方式有关的基础知识简介:
(1)、有效地址(EA)?指令直接或间接指明的存放操作数的内存单元的偏移地址: EA = 基址+(变址*比例因子)+位移量
注意:上述公式中四种成分的不同组合形成八种寻址方式
①基址(base)?存放在“基址寄存器”中;可正可负;主要用于存放数组或字符串首址;
16位基址寄存器:BX、BP.
32位基址寄存器:EAX、EBX、ECX、EDX、ESP、EBP、ESI、EDI.
②变址(index)?存放在“变址寄存器”中;可正可负;主要用于访问数组中某元素或字符串中某一元素.
16位变址寄存器:SI、DI.
32位变址寄存器:除ESP以外的七个32位通用寄存器.
③比例因子(scale factor)?只与变址寄存器联用;只能为1、2、4或8;
注意:只能是32位寻址,没有16位寻址;
④位移量(displacement)?存放在指令中的一个8位、16位、32位地址偏移部分;可正可负;;(2)、段超越前缀?形成物理地址时,段寄存器与访存类型之间有默认匹配关系,但有时可以使用段超越前缀来改变默认关系(参见P39表3.2);
格式:MOV AX,ES:[2000H]
特别注意:但以下三种情况不允许使用段超越前缀
①串处理指令的目的串?ES段;
②取指指令?CS段;
③PUSH的目的和POP的源?SS段;;以 MOV 指令为例:
立即寻址 MOV AX , 3069H
寄存器寻址 MOV AL , BH
直接寻址 MOV AX , [2000H]
寄存器间接寻址 MOV AX , [BX]
寄存器相对寻址 MOV AX , COUNT[SI]
基址变址寻址 MOV AX , [BP][DI]
相对基址变址寻址 MOV AX , MASK[BX][SI]
基址比例变址寻址 MOV EBX,[EAX][EDX*8]
相对基址比例变址寻址 MOV EAX,TABLE[EBP][EDI*4] ;1)立即寻址方式→没有EA;【例3.1】 MOV AX, 4576H 执行后(AX)=? ; 2)寄存器寻址方式→没有EA;指令中可以引用的寄存器及其符号名称如下:
8位寄存器:AH、AL、BH、BL、CH、CL、DH、DL;
16位寄存器:AX、BX、CX、DX、SI、DI、SP、BP和段寄存器等;
32位寄存器:EAX、EBX、ECX、EDX、ESI、EDI、ESP、EBP。;【例3.2】下列程序执行后,(AX)=?,(BX)=?
MOV AX,1234H
MOV BX,5678H
ADD AX,BX;3)直接寻址方式→EA=位移量;【例3.3】 执行指令:MOV B
文档评论(0)