假设 C 声明类似于:
char array[] = { 1, 2, 3, 4, 5 };
您可以像这样在您的程序集文件中使用它:
.globl _array
lea _array(%rip), %rbx
movb (%rbx), %al
该lea
指令将 的基地址array
放入rbx
,然后该movb
指令将第一个字节取出。你可以使用1(%rbx)
getarray[1]
等等。
注意 - 我的示例来自我刚刚制作的 Mac OS X 测试应用程序。如果你在不同的系统上,你可能需要做一些不同的事情。