第九章:转移指令的原理03

让编程改变世界

Change the world by program


jcxz指令

jcxz指令为有条件转移指令,所有的有条件转移指令都是短转移,在对应的机器码中包含转移的位移,而不是目的地址。对IP的修改范围都为-128~127。

指令格式:jcxz 标号

jcxz 标号 指令操作: 当(cx)=0时,(IP)=(IP)+8位位移)

8位位移=“标号”处的地址-jcxz指令后的第一个字节的地址;

8位位移的范围为-128~127,用补码表示;

8位位移由编译程序在编译时算出。

当(cx)!=0时,什么也不做(程序向下执行)。   我们从 jcxz的功能中可以看出,指令“jcxz 标号”的功能相当于: if((cx)==0) {

jmp short 标号;

} 这种用C语言和汇编语言进行的综合描述,或许能使你对有条件指令理解得更加清楚。

检测点9.2

loop指令

loop指令为循环指令,所有的循环指令都是短转移,在对应的机器码中包含转移的位移,而不是目的地址。 对IP的修改范围都为-128~127。

指令格式:loop 标号

((cx))=(cx)-1,如果(cx)≠0,转移到标号处执行。

loop 标号 指令操作:

(1)(cx)=(cx)-1;

(2)如果(cx)≠0,(IP)=(IP)+8位位移。

8位位移=“标号”处的地址-loop指令后的第一个字节的地址; 8位位移的范围为-128~127,用补码表示; 8位位移由编译程序在编译时算出。 当(cx)=0,什么也不做(程序向下执行)。   我们从loop的功能中可以看出,指令“loop 标号”的功能相当于: (cx)--; if((cx)≠0) {

jmp short 标号

}

检测点9.3

[buy] 获得所有教学视频、课件、源代码等资源打包 [/buy] [Downlink href='http://kuai.xunlei.com/d/LFOUWFJTOUPR']视频下载[/Downlink]

转载于:https://www.cnblogs.com/LoveFishC/archive/2011/01/11/3847011.html

转移指令的原理03 - 零基础入门学习汇编语言45相关推荐

  1. 转移指令的原理01 - 零基础入门学习汇编语言43

    第九章:转移指令的原理01 让编程改变世界 Change the world by program 引言 8086CPU的转移指令分为以下几类: 无条件转移指令 (如:jmp) 条件转移指令 循环指令 ...

  2. 外中断03 - 零基础入门学习汇编语言71

    第十五章:外中断03 让编程改变世界 Change the world by program 继续编写int 9中断例程 第三步:如果是Esc键的扫描码,改变显示的颜色后返回...... 那么,下一个 ...

  3. 第一个程序03 - 零基础入门学习汇编语言22

    第四章:第一个程序03 让编程改变世界 Change the world by program 可执行文件中的程序装入内存并运行的原理 在DOS中,可执行文件中的程序P1若要运行,必须有一个正在运行的 ...

  4. 直接定址表03 - 零基础入门学习汇编语言74

    第十六章:直接定址表03 让编程改变世界 Change the world by program 程序入口地址的直接定址表 我们看下面的问题: 实现一个子程序setscreen ,为显示输出提供如下功 ...

  5. [BX]和loop指令03 - 零基础入门学习汇编语言25

    第五章:[BX]和loop指令03 让编程改变世界 Change the world by program 从上边的课程中,我们可以总结出用cx和loop 指令相配合实现循环功能的三个要点: (1)在 ...

  6. 外中断02 - 零基础入门学习汇编语言70

    第十五章:外中断02 让编程改变世界 Change the world by program 小甲鱼和大家谈谈心 一个帖子引发小甲鱼的反省! 猫姐曾经说过,步子别迈太大,容易扯着蛋! 结果还真蛋疼了- ...

  7. 寄存器(CPU工作原理)04 - 零基础入门学习汇编语言09

    第二章:寄存器(CPU工作原理)04 让编程改变世界 Change the world by program 段的概念 错误认识: 内存被划分成了一个一个的段,每一个段有一个段地址. 其实是: 内存并 ...

  8. 函数03 - 零基础入门学习C语言34

    第七章:函数03 让编程改变世界 Change the world by program 函数的调用 函数调用的一般形式 函数调用的一般形式为: 函数名(实参表列)   如果是调用无参函数,则&quo ...

  9. 数据类型,运算符和表达式03 - 零基础入门学习C语言04

    第二章:数据类型,运算符和表达式03 让编程改变世界 Change the world by program 字符型数据 字符型数据包括字符常量和字符变量 字符常量: 是用单引号括起来的一个字符. 例 ...

最新文章

  1. k3应付系统初始化应付票据_在家工作时应付无尽干扰的真实感觉
  2. element upload预览_vue+element上传图片并显示预览图
  3. node-sass安装失败解决方法
  4. DNN中多任务学习概述
  5. mongodb 如何删除 字段值为 json对象中的某个字段值
  6. android中拖拽浮动按钮,Android自定义view实现拖拽选择按钮
  7. Python代码详解:入门时间序列分类
  8. MySQL数据库安装Version5.7
  9. 95-140-130-源码-transform-算子coGroup
  10. 配置 springboot 的 run dashboard
  11. Keepalived 配置实例
  12. java zinterstore_Java架构之Redis系列:通过文章点赞排名案例学习Sortedset命令
  13. 鸿蒙谁法力最强,上古神话中,鸿蒙初开时有九大古神,鸿钧勉强上榜,烛龙位列前三...
  14. 测试技术总监需要具备哪些能力
  15. 搞定各种IE兼容问题,IE6,IE7,IE8,IE9,IE10 -
  16. 租用稳定的网通服务器,网通租用服务器
  17. 老虎棒子鸡”试水有米iOS推荐墙,10天收入近5千元
  18. “知乎女神”诈骗被人肉,一场个人隐私权与网络监督权的博弈
  19. 数字签名(1) 证书下载
  20. 【PHP】随机生成名字

热门文章

  1. Gamma阶段第九次scrum meeting
  2. 静态布局、自适应布局、流式布局、响应式布局、弹性布局简析、BFC
  3. kibana6.2.2安装
  4. 【bzoj1444】[Jsoi2009]有趣的游戏 AC自动机+矩阵乘法
  5. JVM调优总结(一)- 一些概念
  6. BZOJ 1208 宠物饲养所 Splay
  7. iframe引用页面中的js操作父窗口标签
  8. memcached failed to listen问题解决以及 结束daemon的方法
  9. Could not find com.android.support.constraint:constraint-layout的问题解决
  10. ldd -r xxx.so命令的重要作用------见招拆招地解决缺库问题(undefined symbol)