zoukankan      html  css  js  c++  java
  • 汇编系列10-内存

     前面我们学了寄存器,它本身就是用来存储数据的。寄存器是位于CPU当中的,无论是16位,32位还是64位,他的寄存器数量都是非常有限的。 如果要存储较多数据,仅靠CPU里面的寄存器是不够的。 我们可以把数据存放在内存当中。

    我们编程时提到的内存,指的是每个进程的虚拟的4GB内存。映射到实际的物理内存。物理内存到内存条还有一层映射。

    所谓4GB,由内存地址数据宽度决定的(寻址能力,寻址宽度),(2^32 +1)/1024/1024/1024= 4GB  1byte = 8 bit; 1kb= 1024b;1Mb= 1024kb;1Gb=1024Mb。

     

     内存格式写法:  mov  内存数据宽度(byte  word dword) ptr ds:[内存编号],要移入内存的东西(立即数,寄存器)

    注意:内存编号,不可以随便乱写,虽然说是每个进程有4G虚拟内存空间,但是不能随便乱用(可能应用程序禁止你使用这块地址)。使用之前要先申请才可以。

    如何知道是否申请了?---使用堆栈区出现的内存地址。

    使用move指令移动数据时,要保持两边数据宽度一致。

    汇编中绝大部分的指令,是不允许从内存到内存的。

    实验--执行前:

     执行后:

  • 相关阅读:
    mysql只会使用到一个索引的原因
    SQL优化-三
    SQL优化-二
    SQL优化-一
    关于调和级数的证明
    SA 复习笔记
    点分治学习笔记
    FFT/NTT复习笔记&多项式&生成函数学习笔记Ⅰ
    python3+selenium webdriver实战应用篇-打造爱奇艺直播间机器人
    Photoshop如何修改(半)透明像素的RGB值
  • 原文地址:https://www.cnblogs.com/RevelationTruth/p/13908543.html
Copyright © 2011-2022 走看看