访问结构的成员并将其与常量进行比较

时间:2017-01-29 03:31:48

标签: assembly nasm

我有一个未初始化的结构:

    struc my_struct1
        .a resd
        .b resb
        .c resd
        .d resb
     endstruc

然后它充满了数据:

    mov rax, 123
    ;.........

    mov rdi, [my_struct1]
    ;.........

    syscall

然后我如何比较其中一个字段的值?在C中我是这样做的:

if (my_struct1.c == SOME_CONSTANT) {
  //......
}

1 个答案:

答案 0 :(得分:-1)

你可以这样做,就像在c中那样做,不是吗?只需在mystruct中找到该字段的地址,然后使用常量执行cmp并检查您需要的任何标记。

cmp [mystruct1+4], YOUR_CONSTANT
jz  .jump_somewhere_if_fields_are_equal

您可以在此处阅读有关如何正确使用结构的完整说明,http://mcs.uwsuper.edu/sb/224/Intro/struct_nasm.html