如何有限次地循环x86 Linux汇编程序?这就是我到目前为止所做的:
section .text
global main
main:
bla:
mov eax,4
mov ebx,1
mov edx,len
mov ecx,msg
int 0x80
loop bla
mov eax,1
int 0x80
section .data
msg db 'Hello, world!',0xa
len equ $ - msg
我这样组装和链接(警告似乎无害):
$ nasm -f elf -o hello.o hello.asm && ld -melf_i386 -o hello hello.o
ld: warning: cannot find entry symbol _start; defaulting to 0000000008048080
目前,它无数次打印“Hello world”:
$ ./hello
Hello, world!
Hello, world!
Hello, world!
Hello, world!
Hello, world!
(etc)
但是,我想将其限制为例如3次迭代:
$ ./hello
Hello, world!
Hello, world!
Hello, world!
$
为什么loop
似乎没有停止?如何控制迭代次数?