cmp DWORD PTR [ebp-0x4], 0x9
Why is DWORD PTR needed and what does it mean?
cmp DWORD PTR [ebp-0x4], 0x9
|
|
|
mov eax, [ebp + 8] ; must be 32-bit because of EAX mov ax, [ebp + 8] ; must be 16-bit mov al, [ebp + 8] ; 8-bit BUT: mov [ebp + 8], 3 ; How is 3? One byte, two bytes, four bytes? Must have: mov DWORD [ebp + 8], 3 ; represent 3 as 0x0000003 mov WORD [ebp + 8], 3 ; represent 3 as 0x0003 mov BYTE [ebp + 8], 3 ; represent 3 as 0x03
unsigned short a = 3; unsigned long b = (unsigned long)a;The typecast code would look something like:
movzx eax, DWORD [ebp - 12] mov [ebp - 16], eaxassuming that a is at ebp-12 and b is at ebp-16. If the numbers were signed then the code would use movsx.
Edited by dargueta, 08 October 2010 - 04:29 PM.
Formatting
0 members, 1 guests, 0 anonymous users