x64汇编中的十六进制大小

时间:2018-11-13 07:10:16

标签: assembly gdb

我正在尝试在汇编中尝试x命令的所有变体。我输入了

(gdb) x /x $rsp
0x7fffffffdf90: 0x01

根据我的书,x / x命令从rsp中选择前8个字节,并将它们写为十六进制。但是,在寻找汇编文档(gdb帮助)时,我找不到/ x的大小显式为8字节的任何地方。那么我怎么知道它是否真的是8个字节?

1 个答案:

答案 0 :(得分:1)

  

那么我怎么知道它是否真的是8个字节?

不是。这是“您上次使用的大小”。 Documentation

例如:

(gdb) x/bx $rsp
0x7fffffffcbc8: 0x1c

后续x/x命令将使用大小1(单个字符):

(gdb) x/x $rsp
0x7fffffffcbc8: 0x1c

您可以显式覆盖大小:

(gdb) x/gx $rsp
0x7fffffffcbc8: 0x00007ffff7ddc61c

随后的x/x命令现在默认为8号:

(gdb) x/x $rsp
0x7fffffffcbc8: 0x00007ffff7ddc61c