我underdstand,这是愚蠢至极quiestion,但我找不出答案一段时间
如何正确地声明和定义气体“变量” AT & T汇编语言?
例如,我想缓冲液中5个字节,2个1字节变量(最初为0的值),与10
此代码0和2字节的变量的2字节变量不正确地工作,至少调试器说,(在程序的第一线,这些声明,只是nop
指令后),其b
和c
是大数字,而不是零。汇编语言定义“变量”
.bss
.lcomm r, 5
.data
a: .byte 0
b: .byte 0
c: .word 0
d: .word 10
对我来说这似乎很好。也许你的调试器读取'b'和'c'作为'dwords',在这种情况下'b'和'c'可能是'0x0a0000'和'0x0a00',或者更大。 – user35443
或者也许调试器显示的地址不是值。你没有显示你在调试器中做了什么,以及你使用了哪一个,但是要打印'a',你可以在'gdb'中执行'x/b&a'。 – Jester
这就是你如何在GAS程序集中定义变量。你的调试器可能不知道'b'和'c'应该是8位和16位数字。汇编器生成的调试信息不如编译器生成的调试信息。 –