我在理解ja和jg汇编语言之间的区别时遇到了麻烦。我有一段代码:

cmp  dh, dl
j--  hit

并询问将使用DX = 0680的十六进制值进行命中的条件跳转(代替j_hit)。

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

最佳答案

  • 如果dx为0x0680,则dh为0x06,而dl为0x80。
  • 0x80在无符号模式下解释为128,在有符号模式下解释为-128。
  • 因此,您必须使用jg,因为6> -128,但是6 <128。 jg进行无符号比较。
  • 关于loops - 汇编语言:ja和jg之间的区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7510381/

    10-10 22:42