You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The book says 'The writes into 32-bit parts, however, fill the upper 32 bits of the full register with sign bits. For example, zeroing eax will zero the entire rax, storing -1 into eax will fill the upper 32 bits with ones.'.
However Intel manual says in section 3.4.1.1:
32-bit operands generate a 32-bit result, zero-extended to a 64-bit result in the destination general-purpose register
I checked this in Visual Studio using a simple program:
.code
SomeFunction proc
mov eax, -1
ret
SomeFunction endp
end
The RAX register was zero extended as described in Intel manual.
Is this an error in the book?
Thanks and Regards
Dibyendu
The text was updated successfully, but these errors were encountered:
Hello,
it is indeed an error. A similar error for another section is already present in errata, but not this specific one.
I will add it to the errata.
Thank you very much for reporting and helping to get rid of errors for a better experience!
Hi,
The book says 'The writes into 32-bit parts, however, fill the upper 32 bits of the full register with sign bits. For example, zeroing eax will zero the entire rax, storing -1 into eax will fill the upper 32 bits with ones.'.
However Intel manual says in section 3.4.1.1:
32-bit operands generate a 32-bit result, zero-extended to a 64-bit result in the destination general-purpose register
I checked this in Visual Studio using a simple program:
The RAX register was zero extended as described in Intel manual.
Is this an error in the book?
Thanks and Regards
Dibyendu
The text was updated successfully, but these errors were encountered: