- 1、本文档共115页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.基址加变址寻址 基址加变址寻址是指操作数的偏移地址是一个基址寄存器BX、BP的值和一个变址寄存器SI、DI的值之和。 (1)当以BX作为基址寄存器时,操作数物理地址由DS中的段地址与SI或DI中的偏移地址构成。 (2)当以BP作为基址寄存器时,操作数物理地址由SS中的段地址与SI或DI中的偏移地址构成。 第六十二页,共一百一十五页。 例如:MOV AX, [BX+SI] 假设该指令执行之前,DS=2000H,AX=6528H,BX=0500H,SI=0300H,存储单元20800H的内容是7B46H。问执行指令后,相关寄存器及存储单元的值是什么? 由于指令中的源操作数是基址加变址寻址,故源操作数的地址为: EA=(BX)+(SI) = 0500H+0300H=0800H PA=(DS)*16+EA=2000H*16+0800H =20800H。 第六十三页,共一百一十五页。 指令的执行过程如图2-5所示。 7 B 4 6 H A X ┇ 操作码 代码段 ┇ 46H 数据段 7BH ┇ 图2-5 基址加变址寻址示意图 0 3 0 0 2 0 0 0 0 5 0 0 D S + 2 0 8 0 0 B X S I 第六十四页,共一百一十五页。 5.相对基址加变址寻址 相对基址加变址寻址是指操作数的偏移地址是一个基址寄存器BX、BP的值加上一个变址寄存器SI、DI的值,再加上指令中的一个8位、16位偏移量之和。 指令中给出的8位或16位偏移量用补码表示。在计算有效地址时,如果偏移量是8位,则进行符号扩展成16位。 (1)当以BX作为基址寄存器时,操作数物理地址由DS中的段地址与SI或DI中的偏移地址构成。 (2)当以BP作为基址寄存器时,操作数物理地址由SS中的段地址与SI或DI中的偏移地址构成。 第六十五页,共一百一十五页。 例如:MOV AX, [BX+SI+1000 H] 假设该指令执行之前,DS=2000H,AX=6528H,BX=0500H,SI=0300H,存储单元21800H的内容是0B874H。问执行指令后,相关寄存器及存储单元的值是什么? 源操作数的地址为: EA= (BX)+(SI)+1000 H = 0500H+0300H+1000 H =1800H PA=(DS)*16+EA=2000H*16+1800H =21800H。 第六十六页,共一百一十五页。 指令的执行过程如图2-6所示。 B 8 7 4 H A X ┇ 操作码 代码段 00H 10H ┇ 74H 数据段 B8H ┇ 图2-6 相对基址加变址寻址示意图 D S + 2 1 8 0 0 0 3 0 0 2 0 0 0 0 5 0 0 B X S I 1 0 0 0 第六十七页,共一百一十五页。 例2-3 将内存缓冲区中以BUFA开始的一组字数据传送到BUFB开始的内存区。 第六十八页,共一百一十五页。 DATA SEGMENT BUFA DW 367BH,2845H,0A78H, 9DE3H,0F6BH,6532H COUNT EQU ($-BUFA)/2 BUFB DW COUNT DUP (?) DATA ENDS STACK SEGMENT STACK DB 200 DUP(?) STACK ENDS CODE SEGMENT ASSUME DS:DATA,SS:STACK, CS:CODE START: MOV AX,DATA MOV DS,AX 第六十九页,共一百一十五页。 MOV SI,0 MOV DI,0 MOV CX,COUNT LOP: MOV AX,BUFA[SI] MOV BUFB[DI],AX INC SI INC SI INC DI INC DI DEC CX JNZ LOP MOV AH,4CH INT 21H CODE ENDS END START 第七十页,共一百一十五页。 关于寻址方式的几点说明: ① 对于单操作数指令,操作数可以使用除立即寻址方式之外的各种寻址方式。对于双操作数指令,源操作数可以使用各种寻址方式,目的操作数可以使用除立即寻址方式之外的各种寻址方式
文档评论(0)