0x00000000 48b841000000. movabs rax, 0x41
我知道0x48是mov(0xB8)的REX前缀,立即操作数是0x41。如果0x41消耗了64位,则它将为0x0000000000000041(8个字节)。
指令的总长度应为10个字节(0xA),这很有意义,因为我的下一条指令从0xA开始(因为第一个指令从0x0开始消耗10个字节)到0x9)
上面的反汇编中的点是什么意思?有人可以指出我有关反汇编格式的文档吗?
#1 楼
由于指令中的字节数可以不同,并且它们必须对列宽设置一定的限制,因此这表明在指令中有更多的字节显示在屏幕上。一种 '。'表示还有更多,并不意味着它总是为零-可以是任何东西。如果这让您感到困扰,则有控制行为的标志。
:> e asm.nbytes = 6
控制有多少会显示字节,如果将该值设置为相对较小的数字,几乎所有的值都将以
'.'
结尾。您可以在此处放置
10
来查看完整的指令,但是当然,这会将操作码更向右推。您还可以关闭字节以节省空间::> e asm.bytes = false
评论
得到它了!感谢你的回答
– R4444
20年7月28日在14:10
谢谢@Pawel。我以为是这样的
– markovuksanovic
20年7月28日在14:16
评论
它只表示00,我不知道他们为什么放。代替@ R4444不必为00。请参阅我的答案。