我对 x86 程序集 (AT&T) 有疑问。
因为我需要在汇编程序中实现数组查找,所以我在寄存器 %ebx 中有数组的第一项(比如 arr[0]),为了指向 arr[1],例如我写道:
mov -4(%ebx), %eax
问题是,当我尝试获取 ebx 的地址时出现分段错误,这很奇怪,因为我可以毫无问题地获取 ebx 的值(arr[0] 的值)。一些建议?
编辑:好的,我想我理解了这个错误。当我声明数组时,我必须将第一个元素的地址放在变量 arr 上:
mov -4(%ecx), %eax
但是有了这个指令,我把值而不是地址。那么如何填写地址呢?