试图让它工作的严重麻烦..刚刚开始 NASM 组装很抱歉,如果这是一个问题,但任何帮助都非常感谢谢谢!
试图让两个变量呈现相等,以便 cmp 之后的跳转起作用。这让我非常沮丧,因为直接值(如果 mov eax 和 ebx 为 "5" )它可以工作,所以它是地址问题吗?我不知道。
section .data
str_equal db "Equal!", 0xA
len_equal equ $ - str_equal
str_number_a db "5"
str_number_b db "5"
section .text
global _start
_start:
mov eax, [ str_number_a ]
mov ebx, [ str_number_b ]
cmp eax, ebx
je _Equal
jmp _Exit
ret
_Equal:
mov eax, 4 ; syscall - write()
mov ebx, 1 ; stdout
mov ecx, str_equal
mov edx, len_equal
int 0x80 ; Call dat Kernel
jmp _Exit
ret
_Exit:
mov eax, 1
mov ebx, 0
int 0x80
ret