我正在学习汇编语言而且不能自己解决练习。
假设以下值存储在指定的存储器地址和寄存器中:
现在,我们有一条指示:
addl %ecx
,(%eax)
。
对于我来说,存储在%ecx中的附加值的平均值存储结果,其值存储在内存地址(%eax)中,位于内存地址(%eax)
中。
该练习的正确答案是: 值0x100和目标地址0x100。
据我所知,右操作数是目标地址,但我们是如何通过计算%ecx
+ (%eax)
得到0x100的值?
答案 0 :(得分:2)
首先,我讨厌AT& T语法,这就是你在这里......除此之外。
EAX
包含0x100
。 0x100
中包含0xFF
个值。
ECX
包含0x1
。
0x1 + 0xFF = 0x100
。到目前为止一切都很好。
然后将最终结果放入EAX
指向的地址。因此,(0X100) == 0x100
我认为你大部分都在那里。