What Does Mov Esi, Function.0042Foc1C Does?

What Does Mov Esi, Function.0042Foc1C Does?

as you can see in the title my question what the following assembly does:

MOV ESI, function.0042FOC1C

The only thing I know is that ESI is target operand and function.0042FOC1C is the source operand and that you "move" something with the MOV operation from the source to the right.

So, but in that case: What is moving ? The address of function.0042FOC1C ? The return-value function.0042FOC1C when i assume that it is a function at the memory address 0042FOC1C ? Or what else ?

I hope someone can explain it to me...

1 Answer

MOV in Intel syntax assembly means “copy”.

ESI is a processor register. The 8086 had a 16-bit SI register, where “SI” was short for “source index”, IIRC (used in combination with a destination index register and a counter register for automatically repeated copy operations). With the 80386 the 8086 registers were extended to 32 bits and the name of each full extended register was E + original register name.

Summary so far: the instruction copies 32 bits to register ESI.

The source, function.0042FOC1C, sounds like a function address, but it really depends on the context.

Note that there’s also an AT&T syntax for Intel x86 processor assembly. It has lots of percentage signs, switches the source and destination operand order (IIRC), and is generally unreadable. It’s used by default by the g++ compiler, but you can order it to use the more readable Intel syntax.

2

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Marcus Vance
Author

Marcus Vance

Marcus Vance is a cybersecurity auditor and technology writer dedicated to educating the public about online safety, data privacy regulations, enterprise security, and emerging cyber threats.