如何在汇编中编写这样的if语句?

if ((a == b AND a > c) OR c == b) { ...


平台:Intel 32位计算机,NASM语法。

更新资料

对于变量类型和值,请使用更易于理解的内容。我想整数对我来说很好。

最佳答案

在通用汇编中,基本上是这样的(a中的axb中的bxc中的cx):

    cmp  bx, cx
    jeq  istrue
    cmp  ax, cx
    jle  isfalse
    cmp  ax, bx
    jeq  istrue
isfalse:
    ; do false bit
    jmp  nextinstr
istrue:
    ; do true bit

nextinstr:
    ; carry on


如果没有错误,可以简化为:

    cmp  bx, cx
    jeq  istrue
    cmp  ax, bx
    jne  nextinstr
    cmp  ax, cx
    jle  nextinstr
istrue:
    ; do true bit

nextinstr:
    ; carry on

关于assembly - 汇编中的复杂IF语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14292903/

10-11 15:28