【问题标题】:readint nasm linux assemblyreadint nasm linux 程序集
【发布时间】:2011-12-15 15:53:44
【问题描述】:

有没有一种方法/系统调用/一个函数可以让我将标准输入中的数字读入寄存器?

目前我可以读取一串,比如说,9 个字符。

不幸的是,这不是我想要的,因为我的号码可能是可变长度的(只要它可以在汇编中表示)

例如我希望能够输入“5”和“66785949”以及“-1123534”等负数,并将其正确表示为程序集中的实际数字,而不是字符串。

我到处找,所以我决定在这里问。

如果没有简单的方法,是否可以在我的 linux nasm 汇编代码中使用 C 的输入/输出函数库?我将如何做到这一点以及如何调用这些函数之一从标准输入获取数字?

谢谢

【问题讨论】:

  • 你总是可以自己做。请记住 66785949 = ((((((6 * 10 + 6) * 10 + 7) * 10 + 8) * 10 + 5) * 10 + 9) * 10 + 4) * 10 + 9。

标签: linux assembly int nasm


【解决方案1】:

不,没有系统调用可以做到这一点。是的,如果您不想自己实现它,您可以轻松调用 atoi()。您只需要链接到 C 库 (-lc) 并声明外部符号 (extern atoi)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    • 1970-01-01
    • 2012-01-21
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多