我试图在 NASM 中编写一个简单的汇编程序,它将打印 Hello World 5 次。但是在打印hello world的无限循环中执行失败。我尝试调试代码,发现ecx
没有正确执行并eax
显示其他值。我的代码如下:
section .data
msg: db "Hello World",10,0
section .text
global main
extern printf
main: push ebp
mov ebp,esp
mov ecx,0
mov DWORD[esp-4],0x5
mov eax,DWORD[esp-4]
jmp .loop
.loop:
push eax
push ecx
add esp,8
pop ecx
pop eax
cmp ecx,eax
jne .task
jmp .done
.task:
push DWORD msg
call printf
add esp,4
add ecx,1
jmp .loop
.done:
mov esp,ebp
pop ebp
ret
你能通过展示我的错误来帮助我吗?