- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 寻址方式和指令系统;3.1 寻 址 方 式; 每个存储单元在存储器中所具有的地址称为存储单元的物理地址,段基地址(简称段地址)是指每一段的起始地址,单元与段基地址的距离称为段内偏移地址,也叫偏移量。物理地址是由存储单元所在段的基地址和段内偏移地址这两个部分组成。以MOV指令为例,若有:
MOV DS∶BUFFER,AL
这里,DS∶BUFFER表示内存的某一单元地址,称为逻辑地址。DS对于实地址方式就是段基址,对于保护方式则可通过段管理部件形成段基址。BUFFER为段内偏移地址,段内偏移地址有16位和32位两种。段基址和段内偏移地址相加,形成线性地址,对实地址方式而言,该线性地址就是物理地址。对保护方式而言,线性地址经管理部件再变换成32位物理地址。; 段内偏移地址可以由基址寄存器内容、变址寄存器内容、比例因子和位移量这4个基本部分组合而成。由4个基本部分组合而成的偏移地址称为有效地址EA(Effective Address),比例因子可取1、2、4、8中的任一个,基址寄存器内容、变址寄存器内容和位移量可为正数也可为负数。有效地址EA的组合及计算方法是:
有效地址EA=基址+(变址×比例因子)+位移量; 可用作基址、变址的寄存器和比例因子、位移量的取值规定是:
● 工作于实地址方式下的16位寻址:基址寄存器可以是BX或BP寄存器,变址寄存器可以是SI或DI寄存器,比例因子或者没有或者为1。位移量可以是0、8位或16位。
● 工作于保护方式下的32位寻址:基址寄存器可以是任何32位通用寄存器中的一个,变址寄存器可以是除ESP外的任何32位通用寄存器中的一个,比例因子可以是1、2或4或8,位移量可以是0、8位或32位。;3.1.2 数据寻址方式
1.立即数寻址
直接出现在指令中的操作数称为立即数,它紧跟在操作码的后面,其本身就是代码的一部分,这种寻址方式叫做立即数寻址。立即数可以是8位、16位或32位。
例3-1
MOV AL, 20
MOV BX, 2568H
MOV ECX
这3条指令中的立即数依次是8位、16位和32位,对应的寄存器也分别是8位的AL、16位的BX和32位的ECX。执行指令MOV BX,2568H的结果是(BX)=2568H ,执行过程见图3-1。; 说明:
① 立即数???能作源操作数,不能作为目的操作数,一般用于给寄存器赋初值;
② 立即数既可以是二进制数、十进制数,也可以是十六进制数;
③ 低位字节数存放在存储单元的低地址字节,高位字节数存放在存储单元的高地址字节,如:MOV AX,im中的立即数im,其低8位字节iml存储在低地址字节单元中,高8位字节imh存储在高地址字节单元中,指令的存储与执行过程如图3-2所示。 ;图3-1 例3-1立即数寻址示意图; 图3-2 立即数寻址及数据存储示意图; 2.寄存器寻址
寄存器寻址又称寄存器直接寻址。操作数直接存放在寄存器中,由指令指定的寄存器进行寻址,即操作数包含在指令规定的8位、16位或32位寄存器中。如:
INC DL
MOV DS,AX
MOV EBX,ECX
三条指令表明操作数分别存于8位DL、16位的AX和32位的ECX中。; 例3-2 设(CX)=1234H,(AX)=5678H,执行指令
MOV CX,AX
其结果是:(CX)=5678H,(AX)不变,仍为5678H,执行过程见图3-3。
说明:虽然操作数可使用CPU内部通用寄存器中的任意一个,且它们都能参与算术/逻辑运算和存放运算结果。由于AX和EAX是累加器,若结果是存放在AX或EAX中,通常指令执行的时间要短一些。;图3-3 例3-2寄存器寻址执行情况; 3.直接寻址
指令中的操作数部分直接给出的是操作数的有效地址EA的寻址方式称为存储器直接寻址,简称直接寻址。有效地址EA是和操作码一起放在存储器代码段中,它可以是16位或32位整数。但操作数一般在数据段DS中。
设要访问的数据存放在DS所指向的数据段中,实地址模式下物理地址的计算方法是:
物理地址=10H(DS)+有效地址;图3-4 例3-3直接寻址执行情况; 例3-3 设操作数存放在DS所指向的数据段中,(DS)=2000H,(21000H)=34H ,(21001H)=12H ,(BX)=5678H,执行指令MOV BX,[1000H]后的结果为:(BX)=1234H,指令中的16位地址偏移量是低位字节在低地址存储单元中,高位字节在高地
原创力文档


文档评论(0)