装配程序正在打印换行符

时间:2010-12-24 02:52:38

标签: macos assembly

所以我写了这个简单的汇编程序。我为练习打了个招呼和世界。

    .cstring
hello:
    .ascii "hello "
    .text
world:
    .ascii "world\0"
    .text
.globl _main
_main:
    pushl %ebp
    movl %esp, %ebp
    subl $8, %esp
    movl $hello, (%esp)
    call _puts
    movl $world, (%esp)
    call _puts
    xorl %eax, %eax
    leave
    ret
    .subsections_via_symbols

我正在使用英特尔处理器运行Mac OS X.每次调用puts时,该程序都会打印换行符。有人可以向我解释为什么会这样做吗?

1 个答案:

答案 0 :(得分:3)

因为那是what puts(3) does

  

函数 puts()将字符串 s 和终止换行符写入流标准输出。