gpt4 book ai didi

GDB:打印二进制值会省略前导零吗?

转载 作者:行者123 更新时间:2023-12-05 07:27:23 31 4
gpt4 key购买 nike

我正在使用 y 汇编程序编写一些简单的汇编程序。但是,我注意到虽然我可以很好地检查内存中的二进制值,但打印它们(在寄存器中)会省略前导零。这让我措手不及,所以我想知道是否有原因。


程序

    segment .data

f dd 2.25 ; 32-bit floating point.

segment .text
global main

main:
mov eax, [f]
xor rax, rax
ret

GDB

mov eax, [f] 对应的行上设置断点后,我使用 examine 命令得到以下二进制值:

(gdb) x/1tw &f
0x601030: 01000000000100000000000000000000

我已经手动验证了这一点。但是,打印命令一旦加载到 eax 寄存器中就会产生不同的结果:

(gdb) p/t $eax
$2 = 1000000000100000000000000000000

前者为32位,后者为31位,前导零被省略。我在显示这些值时做错了什么吗?

最佳答案

Am I doing something wrong in displaying these values?

没有。 GDB 在处理 xp 命令之间的前导零时不一致,仅此而已。

如果您希望 print 打印前导零,请使用 p/tz $eax ( documentation )。

关于GDB:打印二进制值会省略前导零吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53982708/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com