mov eax如何在内存中存储数据?

时间:2017-05-26 08:43:42

标签: assembly memory-management nasm masm cpu-registers

我有以下汇编命令:

mov eax, 10001
mov [eax], DEADCODEh

我所知道的是

  • 我说的是X86
  • eax有32位
  • 我必须记住小端,

那么内存怎么样? 整个十六进制数是存储在10001还是仅存储在其中的一部分? 取决于10002,10003和10004的地址是什么样的?

1 个答案:

答案 0 :(得分:3)

代码执行以下操作:

  1. 使用值10001(十进制)加载eax。这是十六进制的0x2711。 eax的值现在为0x00002711。注意,作为eax的前导零是32位寄存器。
  2. 将值0xdeadc0de(请注意0,您错误地复制/粘贴)存储到eax中包含的地址的内存中。由于字节顺序是小端,因此10001左右的内存将具有以下内容:

    10001: 0xde
    10002: 0xc0
    10003: 0xad
    10004: 0xde