我很好奇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
愚蠢的運氣,當你使用一個無符號或浮點數時會發生什麼,它猜對了還是使它成爲一個十進制有符號數? (我的猜測是後者) –