QQ登录

只需一步,快速开始

登录 | 立即注册 | 找回密码

主题

帖子

荣誉

VIP至尊会员

Rank: 15Rank: 15Rank: 15

积分
1676
查看: 1735|回复: 2

[技术交流] 汇编语言里jc指令是啥意思

[复制链接]
最佳答案
0 
累计签到:564 天
连续签到:1 天
catch 发表于 2013-12-3 16:41:08 17352 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 catch 于 2013-12-3 16:44 编辑

JC=Jump if Carry
当运算产生进位标志时,即CF=1时,跳转到目标程序处。
例如:
add al,bl
jc carrybit
inc al;如果al+bl产生了进位,这一句就不执行了。
carrybit:
neg al
这段程序没有任何意义,仅仅作为示例哈。。。


相同的指令还有:
JNC,当CF=0时跳转;
JZ,当ZF=1时跳转,JNZ,当ZF=0时跳转;
JO,当OF=1时跳转,JNO,当OF=0时跳转
JP,当PF=1时跳转……
依此类推,标志寄存器的各个位基本上都可以用来做“条件跳转”的条件。
当然,条件跳转不仅仅是标志寄存器位,还可以是CX
如:
a_loop:
;do  something
dec cx
jcxz //
JCXZ是条件转移指令,EX1是标号,代表位置。 JCXZ EX1:若计数寄存器CX=0,跳转到标号EX1处继续执行。 JCXZ EX1:若计数寄存器CX=0,跳转到标号
jmp a_loop
可以看出,这一段相当于一个loop指令。。。


还有,用于大小判断型的:
cmp op1,op2
JXX XXXX
其中JXX有以下几种:
JA表示op1>op2,JNA表示op1<=op2;
JB表示op1<op2,JNB表示op1>=op2;
JE表示op1=op2,JNE表示op1<>op2;
还有JAE、JNAE、JBE、JNBE等等功能重复不再赘述。
以上是无符号数的比较。
有符号数的比较将A换成G,将B换成L即可。
A=above B=below G=greater L=less

楼层
跳转到指定楼层
最佳答案
0 
累计签到:179 天
连续签到:1 天
yinyuepingguo 发表于 2013-12-3 17:45:17 | 显示全部楼层
学习了{:1_1:}
最佳答案
1 
累计签到:3 天
连续签到:1 天
casanava 发表于 2018-4-15 15:00:04 | 显示全部楼层
说明的浅显易懂

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐 上一条 /1 下一条

    移动客户端下载(未启用)
    微信公众号

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备11014136号

Copyright 2018 鱼C论坛 版权所有 All Rights Reserved.

Powered by Discuz! X3.1 Copyright
© 2001-2018 Comsenz Inc.    All Rights Reserved.

小黑屋|手机版|Archiver|鱼C工作室 ( 粤公网安备 44051102000370号 | 粤ICP备11014136号

GMT+8, 2018-4-24 00:57

快速回复 返回顶部 返回列表