如何在Assmbler(GAS)中输出数值

时间:2014-03-24 02:21:33

标签: assembly output gas

我对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

1 个答案:

答案 0 :(得分:0)

要打印数字,您需要将其组成单个字符组成数字。您可以使用十进制,十六进制或任何其他格式来决定是否需要它。

或者,请致电printf为您执行此操作。