
汇编语言,跳转指令问题:
test%eax,%eaxjg,还有cmp%eax,%eax,jg应该怎么判断,既然都是一样的操作数,怎么判断跳不跳转,因为jg的意思是jumpifgreater....
test %eax, %eax jg , 还有 cmp %eax, %eax, jg 应该怎么判断,既然都是一样的操作数,怎么判断跳不跳转, 因为jg 的意思是 jump if greater.
展开
3个回答
展开全部
追问
其实我不太懂的是jg , 它的意思是大于,本来是用来比较 两个操作数大小的, 现在一下把两个操作数一样的放在一起, 那这个大于是大于零的意思吗
追答
你要理解汇编,必须搞懂机器是怎样执行指令的。jg在机器内部的实现其实是对几个位进行一个整体的判断(SF=OF且ZF=0)。可以这样记忆:cmp + jg 时,就是你说的比较大小。test + jg时就是按位与,然后和0比较大小。 要是还不懂,可以参考两本书:王爽的《汇编语言》和《深入理解计算机系统》的第三章。里面对SF,ZF等几个位有非常详细的讲解。

2023-06-12 广告
单片机,即单片微控制器,也称为单片微型计算机,是将中央处理器(CPU)、存储器(ROM,RAM)、输入/输出接口和其他功能部件集成在一块 在一个小块的集成电路上,从而实现对整个电路或系统的数字式控制。单片机不是完成某一个逻辑功能的芯片,而是...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
条件跳转是根据标志位跳转,影响相应标志位的指令就可以影响条件跳转。
A&A=A
test %eax, %eax就是根据EAX设置标志位,他一定不会进位、溢出,OF=0,
JG在以下情况下跳转
SF=OF且ZF=0
所以,如果若EAX为零,则不跳转,若为负,则不跳转,只有大于零(greater)才跳转,
A&A=A
test %eax, %eax就是根据EAX设置标志位,他一定不会进位、溢出,OF=0,
JG在以下情况下跳转
SF=OF且ZF=0
所以,如果若EAX为零,则不跳转,若为负,则不跳转,只有大于零(greater)才跳转,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
s0:那一行,若short条件满足,测跳到s:那一行,若不满足则向下执行s1:那一行。s2:那一行若条件short满足,则跳到s1:那一行,若不满足则顺序执行下面的nop空操作!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询