所以我正在研究这个需要我在gdb中查看汇编代码的调试项目。有一行读取movzbl (%ebx),%eax
。我知道这会将(%ebx)
的最低有效字节复制到%eax
,并将零附加到所有更重要的位。我正在尝试使用gdb来查找(%ebx)
的值。
info registers
告诉我,%ebx
的值为0x804a6ac
。据我了解,要获得(%ebx)
的值,我希望值位于地址0x804a6ac
。我如何获得这个价值?我知道,在movzbl (%ebx),%eax
运行后,%eax
的值为0x41
,所以我猜41
是(%ebx)
中最不重要的字节,但我怎么能看到它的全部价值?
我尝试p/x $0x804a6ac
,但我得$13 = Value can't be converted to integer.
。我尝试了p/x %ebx
,但我得到“表达式中的语法错误,靠近'%ebx'。”
答案 0 :(得分:1)
"标准"对此的命令是x/cx $ebx
。
这比p/x *0x804a6ac
要好,因为您不必剪切/粘贴$ebx
的值。