kb432 Posted September 26, 2016 Posted September 26, 2016 what is moving something to cl or ax or dl ? what does it mean ? i know it's 16 bit register. Can anyone give me an example so i understand better ? Thanks
Loki Posted September 26, 2016 Posted September 26, 2016 EAX is a 32bit register, but you can still access the last 16 bits (compatibility etc) EAX is the full 32-bit value AX is the lower 16-bits AL is the lower 8 bits AH is the bits 8 through 15 (zero-based) e.g. EAX BADC0DE5 AX 0DE5 AH 0D AL E5
Jasi2169 Posted September 26, 2016 Posted September 26, 2016 (edited) PS as loki stated above just a addition if its RAX its 64bit AX - x means extended H means higher and L means lower Edited September 26, 2016 by Jasi2169
mrexodia Posted September 26, 2016 Posted September 26, 2016 Watch out with RAX, it doesn't work in the same way as subregisters for EAX. If you do "mov eax,12345678" in x64, you will get "RAX = 12345678 & 0xFFFFFFFF", effectively clearing the upper part of RAX.
kb432 Posted September 26, 2016 Author Posted September 26, 2016 On 9/24/2016 at 7:45 PM, CodeCracker said: what is i want to access "BADC" ?
CodeExplorer Posted September 26, 2016 Posted September 26, 2016 (edited) CodeCracker never said that! SHR r/m8 = Unsigned divide r/m8 by 2, 1 time. If EAX = BADC0DE5 and you want BADC you divide EAX to 2^16 = 65536 ( SHR is divide by power of two). Edited September 26, 2016 by CodeCracker
mrexodia Posted September 26, 2016 Posted September 26, 2016 If you want BACD use the instruction shr eax, 0x10 or 0xBADC0DE5 >> 16
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now