什么是MOV ESI,功能0.0042FOC1C呢?

时间:2014-05-15 22:29:39

标签: assembly

正如您在标题中看到的那样,我的问题是以下程序集的作用:

MOV ESI, function.0042FOC1C

我唯一知道的是ESI是目标操作数,而function.0042FOC1C是源操作数,你可以从源到右移动MOV操作。

所以,但在那种情况下:什么在移动? function.0042FOC1C的地址?当我假设它是存储器地址0042FOC1C的函数时,返回值函数0.0042FOC1C?还有什么?

我希望有人可以向我解释......

1 个答案:

答案 0 :(得分:1)

英特尔语法汇编中的

MOV表示“复制”。

ESI是处理器寄存器。 8086有一个16位SI寄存器,其中“SI”是“源索引”的缩写,IIRC(与目标索引寄存器和计数器寄存器结合使用,用于自动重复复制操作)。使用80386,8086寄存器扩展为32位,每个完整扩展寄存器的名称为E +原始寄存器名称。

到目前为止的摘要:指令将32位复制到寄存器ESI

function.0042FOC1C听起来像一个函数地址,但它实际上取决于上下文。

请注意,还有适用于Intel x86处理器程序集的AT& T语法。它有很多百分号,切换源和目标操作数顺序(IIRC),通常是不可读的。它默认由g ++编译器使用,但您可以命令它使用更易读的Intel语法。