如何仅循环此Hello World汇编程序N次?

时间:2018-05-18 20:05:55

标签: linux assembly nasm intel

如何有限次地循环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似乎没有停止?如何控制迭代次数?

0 个答案:

没有答案