我有一个未初始化的结构:
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) {
//......
}
答案 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