在汇编程序中初始化数组

发布于 2024-11-24 10:12:14 字数 88 浏览 4 评论 0原文

我刚开始学习ASM,我有C经验但我想这并不重要。 无论如何,如何将 DT 的 12 元素数组初始化为 0,以及如何不初始化它?

我用的是FASM。

I just started learning ASM, I have C experience but I guess it doesn't matter.
Anyway how can I initialize a 12 elements array of DT to 0s, and how not to initialize it?

I use FASM.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

め可乐爱微笑 2024-12-01 10:12:14

由于数组只是一块连续的内存块,其中的元素一个接一个,您可以在 NASM 中执行类似的操作(不确定 FASM 是否支持 times 指令,但您可以尝试)

my_array:
    times 12 dt 0.0

:当您的源代码被组装为:

my_array:
    dt 0.0
    dt 0.0
    dt 0.0
    dt 0.0
    dt 0.0
    dt 0.0
    dt 0.0
    dt 0.0
    dt 0.0
    dt 0.0
    dt 0.0
    dt 0.0

Since arrays are just a contiguous chunk of memory with elements one after the other, you can do something like this in NASM (not sure if FASM supports the times directive, but you could try):

my_array:
    times 12 dt 0.0

That is expanded out when your source is assembled to:

my_array:
    dt 0.0
    dt 0.0
    dt 0.0
    dt 0.0
    dt 0.0
    dt 0.0
    dt 0.0
    dt 0.0
    dt 0.0
    dt 0.0
    dt 0.0
    dt 0.0
枕梦 2024-12-01 10:12:14

只需使用 reserve data 指令并保留 12 tbytes:

array:          rt 12

Just use the reserve data directive and reserve 12 tbytes:

array:          rt 12
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文