Reputation: 513
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
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