I'm studying assembly language and can't resolve the following exercise myself.
Assume the following values are stored at the indicated memory addresses and registers:

Now, we have an instruction:
addl %ecx , (%eax)
For me it means - storing the result of addition of values stored in %ecx and in memory address (%eax), in a memory address (%eax).
Correct answer for that exercise is : Value 0x100 and destination address 0x100.
I understand that right operand is destination address, but how did we get value of 0x100 by the calculation %ecx + (%eax)?
First, I hate AT&T syntax, which is what you have here... that aside.
EAX contains 0x100. 0x100 has the value 0xFF in it.
ECX contains 0x1.
0x1 + 0xFF = 0x100. So far so good.
The final result is then placed into the address pointed to by EAX. Therefore, (0X100) == 0x100
I think you were most of the way there.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With