Assembly 如何在Assmbler(气体)中输出数值

Assembly 如何在Assmbler(气体)中输出数值,assembly,output,gnu-assembler,Assembly,Output,Gnu Assembler,我是ASM的新手,如果这个问题太傻,请原谅。我使用的是GAS+ubuntu12.04 我已经做了以下工作: .data x: .ascii "15" .text .global _start _start: movl $4, %eax movl $1, %ebx movl $x, %ecx movl $2, %edx int $0x80 EndProg: movl $1, %eax movl $0, %ebx in

我是ASM的新手,如果这个问题太傻,请原谅。我使用的是GAS+ubuntu12.04

我已经做了以下工作:

.data
    x:  .ascii "15"

.text

.global _start

_start:
    movl $4, %eax
    movl $1, %ebx
    movl $x, %ecx
    movl $2, %edx
    int $0x80

EndProg:
    movl $1, %eax
    movl $0, %ebx
    int $0x80
上述工作正常并输出15。但是,当我尝试将其作为long输出时,它没有显示任何内容。也没有错误

以下是我的非工作代码:

.data
    x:  .long 15

.text

.global _start

_start:
    movl $4, %eax
    movl $1, %ebx
    movl $x, %ecx
    movl $4, %edx # I'm assuming 4 bytes for long.
    int $0x80

EndProg:
    movl $1, %eax
    movl $0, %ebx
    int $0x80

为了打印一个数字,您需要将其组合成组成数字的各个字符。您可以决定是否需要十进制、十六进制或任何其他格式

或者,打电话给
printf
为您做这件事。

不情愿(因为代码太大),但我决定使用printf。