网站大量收购闲置独家精品文档,联系QQ:2885784924

第九章 转移指令的原理.ppt

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

寻址方式: 立即数寻址 直接寻址 寄存器间接寻址 寄存器相对寻址 基址变址寻址 相对基址变址寻址 第九章 转移指令的原理 转移指令 可以修改IP,或同时修改CS和IP的指令统称为转移指令。 转移指令就是可以控制CPU执行内存中某处代码的指令。 转移指令 段内转移:只修改IP,例如 jmp ax 短转移:修改IP的范围为 -128~127 近转移:修改IP的范围为 -32768~32767 段间转移:同时修改CS和IP,例如jmp 1000:0 转移指令 无条件转移指令 条件转移指令 循环指令 过程 中断 9.1 操作符 offset offset 在汇编语言中是由编译器处理的符号,它的功能是取得标号的偏移地址。 问题9.1 9.2 jmp指令 无条件转移指令 它指出两种信息: 转移的目的地址 转移的距离 9.3 依据位移进行转移的jmp指令 jmp short 标号 段内短转移,它对IP的修改范围是-128~127。 也就是说,它向前转移时可以最多越过128个字节,向后转移时最多越过127个字节。 标号:指代码段中的标号,指明了指令要转移的目的地,转移指令执行后,CS:IP指向标号处的指令 理解 jmp short 标号 的机器码 jmp short 标号 的功能是: (IP) = (IP) + 8位位移 (1)8位位移 = “标号”处的地址 - jmp指令后的第一个字节的地址 (2)short 指明此处的位移为8位位移 (3)8位位移的范围为-128~127,用补码表示 (4)8位位移由编译程序在编译时算出。 依据位移进行转移的jmp指令 jmp near ptr 标号 jmp near ptr 标号 的功能是: (IP) = (IP) + 16位位移 (1)16位位移 = “标号”处的地址 - jmp指令后的第一个字节的地址 (2)near 指明此处的位移为16位位移 (3)16位位移的范围为-32768~32767,用补码表示 (4)16位位移由编译程序在编译时算出。 依据位移进行转移的jmp指令 jmp short 标号 段内短转移 jmp near ptr 标号 段内近转移 9.4 转移的目的地址在指令中的jmp指令 jmp far ptr 标号 在该类指令的机器码中包含了标号所在段的段地址和标号在段中的偏移地址 9.5 转移地址在寄存器中的jmp指令 jmp 16位寄存器 功能: (IP) = (16位寄存器) 9.6 转移地址在内存中的jmp指令 jmp word ptr 内存单元地址 段内近转移 jmp dword ptr 内存单元地址 段间转移 从内存单元地址处开始存放两个字,高地址处的字是转移的目的段地址,低地址处是转移的目的偏移地址。 检测点9.1 (1) assume cs;code data segment ? data ends code segment start: mov ax, data mov ds, ax mov bx, 0 jmp word ptr [bx+1] code ends end start 检测点9.1 (2) assume cs:code data segment dd data ends code segment start: mov ax, data mov ds, ax mov bx, 0 mov [bx], ____ mov [bx+2], ____ jmp dword ptr ds:[0] code ends end start 检测点9.1 (3) 2000:1000 BE 00 06 00 00 00 00 … mov ax, 2000h mov es, ax jmp dword ptr es:[1000h] (CS)= ? , (IP)= ? 9.7 jcxz 指令 条件转移指令 所有的条件转移指令都是短转移,在对应的机器码中包含转移的位移,而不是目的地址。 对IP的修改范围为: -128 ~ 127 jcxz 指令 jczx 标号 操作: 当(CX) = 0 时, (IP) = (IP)+8 位位移 当(CX) ≠ 0时,程序执行下一条指令 检测点9.2 assume cs:code code segment start:

文档评论(0)

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

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

1亿VIP精品文档

相关文档