【问题标题】:How do I output a numeric value in Assmbler (GAS) [duplicate]如何在 Assmbler (GAS) 中输出数值 [重复]
【发布时间】:2014-03-24 02:21:32
【问题描述】:

我对 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。但是当我尝试将其输出为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

【问题讨论】:

    标签: assembly output gnu-assembler


    【解决方案1】:

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

    或者,致电printf 为您完成。

    【讨论】:

    • 不情愿(由于代码大小),但我决定使用 printf。
    猜你喜欢
    • 1970-01-01
    • 2021-10-17
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    • 2014-12-10
    相关资源
    最近更新 更多