试图理解汇编代码

时间:2013-06-10 03:01:39

标签: assembly disassembly

我是装配的初学者,我正在努力理解这一点:

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)

但是%ds :(%esi),%es:(%edi)是什么意思?我只知道这条线必须复制任何东西。但最重要的问题是值0x80484e0的含义。

1 个答案:

答案 0 :(得分:1)

$0x80484e0表示文字值0x80484e0,它是数字的十六进制表示。它很可能是某些东西的地址。没有更多的代码,很难帮助你理解它。

第二个问题为什么不直接转到esi?有几种可能性:一种是代码稍后使用ebx中的值,因此最好复制它。 movsl指令更改了esi和edi。