我想将下面第二个值的地址加载到寄存器中。
这是我的 Unix 语法代码:
.data
Lz7:
.long 24
.long 34
.long 80
.long 108
.long 101
.long 97
.long 115
.long 101
.long 32
.long 105
.long 110
...etc...
我正在尝试使用此代码:
movl Lz7, %eax /* %g14 */
movl $4, %ebx /* %g15 */
addl %ebx /* %g15 */ , %eax /* %g16 */
但是 gcc 在运行时抱怨总线错误。在 GDB 中,我可以看到 GCC 正在将标签Lz7
转换为十六进制值 0x2068,这似乎太小了。我也试过 4(Lz7) 但 GCC 抱怨。如何确定程序中总线错误的位置?如果此代码不正确,我应该改写什么?