我很好奇GDB是如何确定值是有符号还是无符号的。我创建了一个小程序,将有符号负值存储到eax中。我已经通过调试器运行了它,并且我注意到它将eax中的值解释为负值。这是怎么回事?我也尝试过,而不生成调试信息。这里是我的短节目:GDB如何知道一个值是否被签名?
section .text
global _start
_start:
nop
mov eax, [doubleWord]
mov ebx, 0
mov eax, 1
int 0x80
section .data
doubleWord dd -52
取决于您打印的方式。 'd'(十进制)和'f'(浮点)是有符号的,其余的,包括'u'和'x'都是无符号的。 – Jester
你告诉它如何解释这个值(没有办法从这些位本身告诉)。 – Ped7g
愚蠢的运气,当你使用一个无符号或浮点数时会发生什么,它猜对了还是使它成为一个十进制有符号数? (我的猜测是后者) –