In assembly language, what does the second line of code do? What happened when this code was executed?
x DWORD 1, 2, 3, 4, 5, 6, 7, 8
mov edx, [x 4]
CodePudding user response:
mov is an instruction which copies data between registers, or to/from a specified memory location.
TLDR: mov edx, [x 4] loads a dword (4 bytes) starting from the fourth byte of x (which has value = 2), into the edx register.
In the memory the x array can be seen as:
0x00000001,
0x00000002,
0x00000003,
0x00000004,
0x00000005,
0x00000006,
0x00000007,
0x00000008
The address of x corresponds to the first byte of 0x00000001. The fourth byte after x is the first byte of 0x00000002. After this byte 32 bits are loaded into edx. So in the end the value 0x00000002 is inside edx.
