微型计算机原理与接口技术第3章2范例.ppt

微型计算机原理与接口技术第3章2范例.ppt

  1. 1、本文档共91页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 段间直接转移 段内直接转移 转移的目标地址由指令直接给出 格式: JMP FAR Label 远地址标号 * 段间直接转移示图 JMP Label ┇ ┇ ┇ 代码段1 Label与JMP之间的位移量 代码段2 XXH XXH XXH XXH IP CS * 段间间接转移 段内间接寻址 转移的目标地址由指令中的32位操作数给出 例: JMP DWORD PTR[BX] XXH XXH XXH XXH BX IP CS JMP ┇ ┇ ┇ ┇ 指令码 代码段1 代码段2 数据段 * 无条件转移指令例 (1) 2000:0100 MOV AX,1200H (2) 2000:0103 JMP NEXT ┅ (3) 2000:0120 NEXT: MOV BX,1200H (4) JMP BX ┅ (5) 2000:1200 * 无条件转移指令例 MOV SI,1122H MOV WORD PTR[SI],0120H ADD SI,2 MOV WORD PTR[SI],0122H JMP DWORD PTR[SI-2] JMP WORD PTR[SI] JMP 1122H ┇ ┇ ┇ 代码段 数据段 01H 22H 20H 01H IP CS IP * 2. 条件转移指令 在满足一定条件下,程序转移到目标地址继续执行 条件转移指令均为段内短转移,即转移 范围为: -128------+127 p132 * 条件转移指令的应用 几种条件转移指令的应用 JC/JNC 判断CF的状态。常用于比大小 JZ/JNZ 判断ZF的状态。常用于循环体的结束判断 JO/JNO 判断OF的状态。常用于有符号数溢出的判断 JP/JPE 判断PF的状态。用于判断运算结果低8位中1的个数是否为偶数 JA/JAE/JB/JBE 判断CF或CF+ZF的状态。常用于无符号数的大小比较 * 转移指令例 统计内存数据段中以TABLE为首地址的100个8位符号数中正数、负数和零元数的个数。 * 转移指令例(流程图) 将存放各元素个数的单元清零 取首地址 设串长度 取一个字节数 正数个数加1 零元素加1 为负? 为零? 负数个数加1 N Y N Y * 二、循环控制指令 循环范围: 以当前IP为中心的-128~+127范围内循环。 循环次数由CX寄存器指定。 循环指令: LOOP *LOOPZ *LOOPNZ 无条件循环指令 条件循环指令 * 无条件循环指令 格式: LOOP LABEL 循环条件: CX ≠ 0 操作: DEC CX JNZ 符号地址 * 三、过程调用和返回 用于调用一个子过程; 子过程由程序员预先设计 并装入内存 子过程执行结束后要返回 原调用处 调用程序 断点 入口地址 子程序 * 调用指令的执行过程 保护断点; 将调用指令的下一条指令的地址(断点)压入堆栈 获取子过程的入口地址; 子过程第1条指令的偏移地址 执行子过程,含相应参数的保存及恢复; 恢复断点,返回原程序。 将断点偏移地址由堆栈弹出 * 过程调用 段内调用 段间调用 段内直接调用 段内间接调用 段间直接调用 段间间接调用 * 1. 段内调用 被调用程序与调用程序在同一代码段 调用前只需保护断点的偏移地址 格式: CALL NEAR PROC 执行过程: 近过程名 代码段1 调用程序 被调用程序 代码段1 将断点的偏移地址压入堆栈 根据过程名找子程序入口 * 段内调用例 (1)CALL TIMRE (2)CALL WORD PTR[SI] 直接调用 间接调用 44H 33H CALL 代码段 数据段 ┇ 设:SI=1200H CS=6000H 1200H 执行第(2)条指令后: 6000H CS = 3344H IP = * 2. 段间调用

文档评论(0)

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

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

1亿VIP精品文档

相关文档