我对ASM很新,所以如果问题太愚蠢,请原谅。我正在使用GAS + Ubuntu 12.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.但是当我尝试将输出为长时,它什么也没显示。也没有错误。
这是我的非工作代码:
.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
答案 0 :(得分:0)
要打印数字,您需要将其组成单个字符组成数字。您可以使用十进制,十六进制或任何其他格式来决定是否需要它。
或者,请致电printf
为您执行此操作。