sub edx, 16
This instruction subtracts 16 from edx, and it seems the value in rdx would also be subtracted by 16. Why?
Also, when I use gdb and try to print out the value inside edx, it always shows "void". Is there a way to see the content inside edx register on 64-bit machine? Any comments or answers are highly appreciated. Thank you in advance!
}; // eax and rax share same register, eax is low part of that register
some operations on eax bung up padd (as intended)
This mapping is like
al is to ax, al is to eax, al is to rax
ax is to eax, ax is to rax
eax is to rax
with rax though there are some rules as to what happens to upper bits of 64-bit register