如何在.asm文件中使用已在.h文件中声明和初始化的表

时间:2013-02-06 04:53:57

标签: c assembly x86

我在.h文件中声明了一个表(数组)。

现在我想在.asm中使用该文件,但我无法将.h包含在.asm中

帮帮我

1 个答案:

答案 0 :(得分:0)

假设C声明如下:

char array[] = { 1, 2, 3, 4, 5 };

您可以在汇编文件中使用它,如下所示:

    .globl _array

lea  _array(%rip), %rbx
movb (%rbx), %al

lea指令将array的基址放入rbx,然后movb指令抓取第一个字节。您可以使用1(%rbx)获取array[1],依此类推。

注意 - 我的例子来自我刚刚制作的Mac OS X测试应用程序。如果您使用的是其他系统,则可能需要做一些不同的事情。