gpt4 book ai didi

assembly - JA和JG在 assembly 上的区别

转载 作者:行者123 更新时间:2023-12-03 10:39:44 31 4
gpt4 key购买 nike

你能告诉我之间的区别吗?跳到上面 如果更大则跳转 用汇编语言?我什么时候使用它们?他们会给我不同的结果吗?

最佳答案

Intel's manual explains , JG 将标志解释为好像比较是有符号的,而 JA 将标志解释为好像比较是无符号的(当然,如果设置标志的操作不是比较或减法,那可能没有意义)。所以是的,它们是不同的。准确地说,

  • ja如果 CF = 0 则跳转和 ZF = 0 (无符号以上:无进位且不等于)
  • jg如果 SF = OF 则跳转和 ZF = 0 (签名较大,不包括相等)

  • 例如,
    cmp eax, edx
    ja somewhere ; will go "somewhere" if eax >u edx
    ; where >u is "unsigned greater than"

    cmp eax, edx
    jg somewhere ; will go "somewhere" if eax >s edx
    ; where >s is "signed greater than"
    >u>s同意最高位为零的值,但最高位设置的值被 >s 视为负数和一样大 >u (当然,如果两个操作数都设置了最高位, >u>s 再次同意)。

    关于assembly - JA和JG在 assembly 上的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20906639/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com