首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试和cmp一样吗?

问测试和cmp一样吗?
EN

Stack Overflow用户
提问于 2014-03-04 17:11:07
回答 1查看 1.2K关注 0票数 1

我想知道测试指令是否可以和cmp一样使用。让我们说:

代码语言:javascript
复制
cmp %eax,%ebx
jg some_random_place

如果%ebx大于%eax,则跳到some_random_place,如果我这样做的话:

代码语言:javascript
复制
test %eax, %ebx
jg some_random_place

在什么条件下跳?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-04 21:02:19

不是的!

cmp %eax,%ebx实例类似于sub %eax,%ebx指令,但是对于cmp指令,除了标志寄存器之外,执行后寄存器保持不变。

test %eax,%ebx实例类似于and %eax,%ebx指令,但是对于test指令,除了标志寄存器之外,执行后寄存器保持不变。受影响的标志是进位= 0,零= x,Overflow=0和符号=x。

jg指令应该执行跳转,如果零标志=0,符号标志=溢出

所以万一..。

代码语言:javascript
复制
test %eax, %ebx
jg some_random_place

如果...the跳转的结果为正,而不是0,则应执行and %eax,%ebx跳转。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22178457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档