汇编系列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指令移动数据时,要保持两边数据宽度一致。

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

实验--执行前:

 

 

 

 执行后:

 

posted @ 2020-11-01 08:33  KeepMoving2018  阅读(195)  评论(0编辑  收藏  举报