ADDL指令,86

你必须原谅我,我是全新到x86汇编,并装配一般。

所以我的问题是,我有这样的:

addl %edx,(%eax)

%EAX是其中包含一个指向某个整数寄存器。 让XP叫它

这是否意味着它在说*xp = *xp + %edx %edx是整数)

我只是感到困惑的地方ADDL将存储的结果。 如果%eax是一个指向一个int,然后(%eax)应该是INT的实际值。 因此,将addl存储的结果%edx+(%eax)*xp 我真的有人解释这样对我的爱!

我真的很感激任何帮助!

--------------解决方案-------------

是的,这个指令做的正是你觉得它在做什么。

大多数x86运算指令有两个操作数:源和目标。 在AT&T语法(这里使用),目的地是永远正确的操作。 因此,与类似的指令:

addl %edx, %eax

中的值edxeax被加在一起,并将结果存储在eax 。 然而,在你的榜样,内存间接寻址时(这表示由括号中)。 这意味着eax被视为一个指针,所以右操作数是从地址所指向eax ,并将其结果存储到相同的地址。

分类:部件 时间:2015-03-15 人气:0
本文关键词: 86,装配,寻址模式
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.545 (s). 10 q(s)