汇编:使用Ja比较寄存器

时间:2014-10-22 00:30:24

标签: if-statement assembly x86 compare

  1. 哪些选项包含以下伪代码的正确实现? (假设所有值都是无符号的):
  2. if(eax> ebx)     mov dl,5; 其他     mov dl,6;

    a.
        cmp eax,ebx
        ja  L1
        mov dl,6
        jmp L2
    L1: mov dl,5
    L2:
    b.
        cmp eax,ebx
        ja  L1
        mov dl,5
        jmp L2
    L1: mov dl,6
    L2:
    c.
        cmp eax,ebx
        jbe L2
        mov dl,5
        jmp L2
    L1: mov dl,6
    L2:
    d.
        cmp eax,ebx
        jna L2
        mov dl,5
        jmp L1
    L1: mov dl,6
    L2
    

    : 我很困惑cmp eax, ebx做eax> ebx或ebx> EAX。谢谢你的时间。

1 个答案:

答案 0 :(得分:0)

cmp eax, ebx比较两个值,并根据结果设置各种flags

如果清除进位和零标志,则

ja跳转。也就是说,如果先前的比较没有评估为等于或低于。