chap3 寻址方式和指令系统.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
chap3 寻址方式和指令系统

3.1.8 比例变址寻址方式 操作数的有效地址由位移量,变址乘比例因子组成 MOV EAX,COUNT[ESI*4] 另外386之后还增加了基址比例变址寻址方式 有效地址由基址和变址乘比例因子组成 相对基址比例变址寻址方式 有效地址由位移量、基址和变址乘比例因子组成 3.1.9 跨段问题 按前述规定:若选用BP作间址基址寄存器、变址寄存器或基址寄存器,则操作数在堆栈段,操作数的物理地址PA由堆栈段寄存器SS的内容左移4位与偏移地址EA相加后形成;否则,操作数在数据段,操作数的物理地址PA由数据段寄存器DS的内容左移4位与偏移EA相加后形成。该规定为系统默认状态。当要否定默认状态,到非约定段寻找操作数时,必须用跨段前缀指明操作数的段寄存器名。 汇编格式:段寄存器名:操作数地址。 功能:段寄存器名指明操作数属哪个段。 【例】跨段前缀示例。 MOV AX,DS:[BP] MOV CX,SS:[SI] 该例中,DS:,SS:均为跨段前缀,此时默认状态无效,操作数的物理地址PA由段寄存器内容左移4位加偏移EA形成。上述2条指令的源操作数物理地址分别为: PA1 =(DS)左移4位+[BP] PA2 =(SS)左移4位+[SI] 返回本节 与转移有关的寻址方式 段内直接寻址 段内间接寻址 段间直接寻址 段间间接寻址 这些寻址方式用来确定转移指令及CALL指令的转向地址 段内直接寻址 转向的有效地址是当前的IP寄存器的内容和指令中给定的8位或16位位移量之和 用于条件转移指令时位移量只能是8位 用于无条件转移指令中,可以是8位位移量,称为短跳转;JMP SHORT LL1 16位位移量时,称为近跳转 JMP NEAR PTR L1 在使用时,用户只要给出一个标号就可以了 计算机在得到这样的指令后,在汇编的时候将这个标号替换为一个位移量,这个位移量就是转向的有效地址与当前IP值之差。 这样当程序段在不同区域运行时,转移指令本身不变,符合程序的再定位要求。图示如下: 位移量 IP寄存器 + EA 段内间接寻址 转向的有效地址是一个寄存器或是一个存储单元的内容。这个内容可以用除立即数寻址以外的任何一种寻址方式取得。所得的内容覆盖当前IP的内容。 数据寻址 方式 找出存放地址的 有效地址EA 转向有效地址 转向EA 存储单元 找到转向地址 JMP BX 执行后:IP= BX=1256H 【例】DS=2000H,BX=1256H,SI=528FH, IP=0101H ,位移量=20A1H,(232F7H)=3280H, (264E5H)=2450H JMP WORD PTR TAB[BX] 执行后:IP=(DS*10H+BX+位移量)=(232F7H) = 3 2 8 0 H WORD PTR是操作符,用以指出是段内转移 段间直接寻址 转向的指令地址与当前的指令不在同一个段中,指令中要给出转向的指令的段地址和偏移地址,用给出的段地址代替当前CS的内容,用给出的偏移地址代替当前IP的内容。 JMP FAR PTR NEXT 用户只要给出转向的标号即可! 段间间接寻址 用存储器中的两个相继字的内容来取代IP和CS寄存器的原内容。存储单元的地址由除立即数方式和寄存器方式外的任何一种寻址方式 JMP DWORD PTR [BX] √ JMP DWORD PTR LAB[SI] √ JMP DWORD PTR [BX][SI] √ JMP DWORD PTR ABC[BP][DI] √ JMP DWORD PTR BX DWORD PTR操作符,以指出是段间转移,取相连的四个字节的内容。 与数据有关寻址方式的图示 MOV AX,1234H MOV BX,AX MOV CX,AX JMP [BX] 1F 12 34 56 CPU BX CX DX BP SP SI DI SS ES CS DS 处理 单元 MEMORY 代码段 数据段 MOV AX,1234H AX MOV BX,AX AX 与数据有关寻址方式的图示 MOV AX,[0200H] MOV CX,[BX] 1F 12 34 56 CPU AX BX CX DX BP SP SI DI SS ES CS DS 处理 单元 MEMORY 代码段 数据段 MOV AX,[0200] MOV cX,[BX] ︰ ︰ 2000H PA=DS*10H+0200H ︰ 20200H 5634H 20000H 121FH PA=DS*10H+BX 与数据有关寻址方式的图示 MOV AX,200[SI] MOV CX,[BP][SI] 1F AB 6C 8A 3D 1F CPU AX BX CX DX BP SP SI

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档