Muten Roshi
Muten Roshi

Reputation: 513

Trying to understand assembly code

I'm a beginner with assembly and I'm trying to understand this lines:

mov $0x80484e0,%ebx  // what the hell means this value: 0x80484e0?
mov $0x1b,%eax   // writing 27 in %eax
mov %edx,%edi    // ? %edx is not used until not, why reading from there?
mov %ebx,%esi    // why not like this: mov $0x80484e0,%esi
mov %eax,%ecx    // writing 27 in counter-register, but same questen like one line before
rep movsl %ds:(%esi),%es:(%edi) // repeat 27 times: copy 32 bit word from %ds:(%esi) to %es:(%edi)

but what is the meaning of %ds:(%esi),%es:(%edi)? I just know that this line have to copy anything. But the most important question is the meaning of the value 0x80484e0.

Upvotes: 1

Views: 1110

Answers (1)

wallyk
wallyk

Reputation: 57784

$0x80484e0 means the literal value 0x80484e0 which is a hexadecimal representation of a number. It is most likely the address of something. Without more code it is hard to help you with its meaning.

The second question ask why not move directly to esi? There are several possibilities: one is that the code later uses the value in ebx, so it is better to make a copy of it. The movsl instruction changes esi and edi.

Upvotes: 1

Related Questions