【发布时间】:2015-08-29 03:55:51
【问题描述】:
我正在学习 ASM,但遇到了一个小问题。 我不能在“section.data”中“声明”多个字符串。 我正在尝试这样的事情:
section .data
string1 db "test1 ", 0;
string2 db "test2 ", 0;
section .text
global _test
extern _puts
_test:
lea rdi, [rel string1]
call _puts
lea rdi, [rel string2]
call _puts
ret
这个函数应该在 STDOUT 上打印“test1 test2”,但它不起作用。 结果是:
test2
它只适用于存储的最后一个字符串!如果有人知道原因,请告诉我!
【问题讨论】:
-
让我猜猜... Nasm-2.11.08?
-f macho64有一个严重的错误。回到 2.11.06。 2.11.09 应该很快就会出现并且应该修复它......如果一切顺利的话。这些事情发生了...... :( -
@FrankKotler - 这是神秘的知识。 (扩展?)答案可能对其他人有所帮助。
-
我作为开发人员已经有一段时间没有“活跃”了,但我仍然在名单上。在这里向下滚动一点,对出了什么问题有一些解释。 sourceforge.net/p/nasm/mailman/nasm-devel
标签: macos assembly 64-bit nasm