首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >汇编语言: ja和jg的区别?

汇编语言: ja和jg的区别?
EN

Stack Overflow用户
提问于 2011-09-22 14:20:02
回答 2查看 15.5K关注 0票数 2

我很难理解ja和jg在汇编语言方面的区别。我有一段代码:

代码语言:javascript
运行
复制
cmp  dh, dl
j--  hit

并且我被问到要命中哪个条件跳转(替换j- hit)将采用十六进制值DX = 0680。

这将使dl = 06和dh = 80,因此当比较时,80 > 06。我知道jg符合这一点,因为我们可以直接比较结果,但是如果ja符合(或者在这种情况下,不符合)这个代码,我应该如何解决?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-22 14:27:02

  1. 如果dx为0x0680,则dh为0x06,dl为0x80。
  2. 0x80在无符号模式下被解释为128,在有符号模式下为-128。
  3. 因此,您必须使用jg,因为6> - 128,但6<128。
票数 8
EN

Stack Overflow用户

发布于 2011-09-22 14:25:57

jajg之间的区别在于,对于ja,比较是无符号的;对于jg,比较是有符号的(将寄存器视为有符号整数与无符号整数)。

如果数字被保证为正(即符号位为0),那么您应该没问题。否则你就得小心了。

如果ja可用,你真的不能根据比较指令本身进行直觉判断。你必须看一下上下文,并决定符号是否会成为一个问题。

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

https://stackoverflow.com/questions/7510381

复制
相关文章

相似问题

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