Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly mov eax如何在内存中存储数据?_Assembly_Memory Management_Nasm_Masm_Cpu Registers - Fatal编程技术网

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

Assembly mov eax如何在内存中存储数据?,assembly,memory-management,nasm,masm,cpu-registers,Assembly,Memory Management,Nasm,Masm,Cpu Registers,我有以下汇编命令: mov eax, 10001 mov [eax], DEADCODEh 我知道的是 我说的是X86 eax有32位 我必须记住小恩迪安 那么记忆是什么样子的呢? 整个十六进制数是存储在10001还是仅存储其一部分? 根据地址10002、10003和10004的样子,代码执行以下操作: 加载值为10001(十进制)的eax。这是十六进制的0x2711。eax的值现在是0x00002711。注意前导零,因为eax是一个32位寄存器 在eax中包含的地址处,将值0xdeadc

我有以下汇编命令:

mov eax, 10001
mov [eax], DEADCODEh
我知道的是

  • 我说的是X86
  • eax有32位
  • 我必须记住小恩迪安
那么记忆是什么样子的呢? 整个十六进制数是存储在10001还是仅存储其一部分?
根据地址10002、10003和10004的样子,代码执行以下操作:

  • 加载值为10001(十进制)的eax
    。这是十六进制的0x2711。
    eax
    的值现在是0x00002711。注意前导零,因为eax是一个32位寄存器
  • eax
    中包含的地址处,将值0xdeadc0de(注意错误复制/粘贴的0)存储到内存中。由于字节顺序是little endian,10001左右的内存将包含以下内容:

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

  • 你为什么不试试看呢?非常感谢。现在我很困惑。我以为little endian意味着高地址值分配给低数字值?@isecstud Nope。那将是大端的。Little endian表示最低有效字节排在第一位。有关详细信息,请参阅。一旦你的问题解决了,别忘了将答案标记为已接受。