为什么我的寄存器自己打印一个值(不使用任何系统调用)?

时间:2018-05-25 20:17:48

标签: assembly nasm

我想说明我刚刚开始组装,所以我真的有0经验。此外,我只是一个好奇心,而不是因为程序不起作用或任何问题。我的程序只是一些简单的循环,但我不明白的是,当我运行它时,它返回一个值。这个值本身很好,这是正确的,但问题是我没有使用任何系统调用来打印任何东西。

代码如下:

global _start

section .text

_start:
    mov ebx,1 
    mov ecx,4 

label:
    add ebx,ebx 
    dec ecx 
    cmp ecx,0 
    jg label 
    mov eax,1 
    int 0x80 

正如您所看到的,我只是添加了ebx并减少了ecx,最后调用了sys_exit和中断。这一切都很好,但就像我说的那样,当我运行可执行文件时,它会从ebx打印出值。这应该是怎么回事?如果是,为什么?从我到目前为止所学到的,我需要执行一个系统调用来打印一个值,但这不是这样的。

0 个答案:

没有答案