我正在学习汇编语言,我自己不能解决下面的练习。
假设以下值存储在指定的存储器地址和寄存器中:
现在,我们有一条指令:
addl %ecx , (%eax)
对我来说,这意味着-将存储在%ecx和内存地址(%eax)中的值相加的结果存储在内存地址(%eax)
中。
该练习的正确答案是:值0x100,目的地址0x100。
发布于 2015-08-11 19:09:29
首先,我讨厌AT&T语法,这就是你在这里...抛开这个不谈。
EAX
包含0x100
。0x100
中包含值0xFF
。
ECX
包含0x1
。
0x1 + 0xFF = 0x100
。到目前一切尚好。
然后将最终结果放入EAX
指向的地址中。因此,(0X100) == 0x100
我想你已经走了很远了。
https://stackoverflow.com/questions/31916614
复制相似问题