Reputation: 6965
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)
?
Upvotes: 3
Views: 22949
Reputation: 16381
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.
Upvotes: 7