【发布时间】:2015-06-15 05:50:57
【问题描述】:
我正在学习组装,我需要制作一个大数组。我查看了如何声明数组,并且遇到了这个问题。
array db 10 dup(?)
声明了 10 个未初始化字节的数组。我试过这个并试图组装它并得到“错误:操作数1之后的逗号”。我意识到'? x86 不支持,所以我将其设为常量并得到相同的错误。我最终这样做了。
array db 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
这行得通!但问题是,我需要大型数组(约 100-400 个整数),而且它们的值并不总是已知的。我可以写出 400 个 0,但我想一定有更简单的方法。那么有没有更好的方式来声明大数组呢?
我正在使用 AT&T 语法的基于 Intel 的 Macbook Pro 上使用 x86_64 程序集。
【问题讨论】:
-
根据为您工作的
array TIMES...答案,我假设您使用的是nasm(英特尔语法)而不是AT&T 语法? -
如果你使用的是 NASM 汇编器,那么 "array db 10 dup(?)" 应该可以正常工作,因为它是完全合法的。
-
@考斯塔夫。不,不是,也许您正在考虑 MASM。 This errors on NASM.
标签: arrays assembly x86 nasm att