Assembly 如何在Assmbler(气体)中输出数值
我是ASM的新手,如果这个问题太傻,请原谅。我使用的是GAS+ubuntu12.04 我已经做了以下工作: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
.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。