代码之家  ›  专栏  ›  技术社区  ›  Mask

内存大于4G的机器上的反汇编是什么样子的?

  •  1
  • Mask  · 技术社区  · 16 年前

    这就是我的笔记本电脑在4G以下的样子:

    0x004012f1 <main+0>:    push   %ebp
    0x004012f2 <main+1>:    mov    %esp,%ebp
    0x004012f4 <main+3>:    sub    $0x18,%esp
    0x004012f7 <main+6>:    and    $0xfffffff0,%esp
    

    有人能用大于4g的内存粘贴一个转储文件吗?

    我觉得不应该再像 0x004012f7 因为它的容量只有2^32=4g

    2 回复  |  直到 16 年前
        1
  •  1
  •   Nick Craver    16 年前

    这是我64位操作系统的一个示例,地址的长度是您预期的两倍…是地址长度的两倍 2^2*n 字节:

    000000007729EE15  ldmxcsr     dword ptr [rcx+34h]  
    000000007729EE19  fldcw       word ptr [rcx+100h]  
    000000007729EE1F  mov         rsp,qword ptr [rcx+98h]  
    000000007729EE26  mov         rcx,qword ptr [rcx+0F8h]  
    
        2
  •  0
  •   Oded    16 年前

    在32位操作系统上,可寻址空间实际上只有2^32=4GB。

    在64位操作系统(假设是64位应用程序)上,它将是2^64,这要大得多。