1、每个应用进程都会有自己独立的4GB内存空间

这句话很多人听起来可能会很矛盾很不解。

例如,我的电脑只有2GB的内存,打开个软件机会占用4GB内存,而我的电脑内存只有2GB,显然不够用,但是为什么程序还能在我的电脑上流畅运行呢?因为程序占用的这4GB内存是一个空头支票,知识口头上说给你4GB内存,其实没有全部给你,而是你用到多少就会从物理内存中给你多少。

2、内存地址

内存地址不像寄存器那样只有几个,内存地址有非常多所以起名字的时候都是用编号,每块内存地址都有其唯一的编号,就像寄信的地址一样,我们灭此用到这块内存时都会根据它的地址去寻找这块内存。

每个编号(内存地址)对应的内存块的容量最少是8位,一个字节。

一个内存地址有32位。像0x00000000,是由8个16进制的数组成,1个16进制的数对应着4个2进制的位,所以4x8=32,一个内存地址有32位。

我们来算一下32位的内存空间有多大:

内存地址一共有多少个(包括0x00000000)  FFFFFFFF+1=100000000

16进制内存空间:              800000000

换算成十进制 Bit:                34359738368

Byte:                    4294967296

KB:                    4194304

MB:                    4096

GB:                    4

现在你可以知道,32位的程序最大就是寻址空间就是4GB,所以每个程序占用4GB的内存空间。

向内存中存放数据

MOV  指令

mov指令移动数据时要保证左右两边的数据宽度是一样的。

绝大部分指令是不能把数据从内存移动到内存的。

(1)、立即数到内存

    mov byte ptr ds:[0146FCF4],1

   将立即数1,写入内存地址为0146FCF4 的地方

  mov :指令

  byte:写入数字的大小(1个字节)   word:2个字节  dword:4个字节

  ptr ds:[] :写入内存的哪个地址

  1    :要写入的数据

(2)、寄存器到内存

   mov dword ptr ds:[0146FCFC],esp

  将esp寄存器里面的值写入内存地址为014FCFC的内存空间

(3)内存到寄存器

  mov esp,dword ptr ds:[0x0146FCF8]

  将内存中的值存入寄存器。

转载于:https://www.cnblogs.com/chuijingjing/p/9266959.html

32位汇编基础_内存_每个应用进程都会有自己独立的4GB内存空间相关推荐

  1. 汇编——32位汇编基础框架

    代码 .586 .model flat,stdcall option casemap:noneincludelib ucrt.lib includelib legacy_stdio_definitio ...

  2. 计算机做减法运算的过程,32位汇编基础_计算机做加减乘除

    4+5=?的运算过程 0000  0100 0000  0101 加----------------------- 0000 1001 (1)第一步,异或运算(不一样的时候为1) 0000  0100 ...

  3. 32位汇编第六讲,OllyDbg逆向植物大战僵尸,快速定位阳光基址

    32位汇编第六讲,OllyDbg逆向植物大战僵尸,快速定位阳光基址 一丶基址,随机基址的理解 首先,全局变量的地址,我们都知道是固定的,是在PE文件中有保存的 但是高版本有了随机基址,那么要怎么解决这 ...

  4. 【汇编语言】32位汇编总结

    x86汇编语言 学习操作系统前对汇编语言进行快速学习,转载自x86汇编语言进行总结. 汇编程序的布局 清单A-1显示了一个简单的C程序,清单A-2显示了由GCC v5.4.0对应生成的汇编程序,第1章 ...

  5. 32位汇编第七讲,混合编程,内联汇编

    32位汇编第七讲,混合编程 博客园IBinary原创 QQ:2510908331  博客连接:http://www.cnblogs.com/iBinary/ 转载请注明出处,谢谢 混合编程的概念,有时 ...

  6. 32位汇编ebp、ebp-4、ebp+4、ebp+8等含义

    我们知道,当调用了一个函数后,底层汇编大多数会使用ebp寻址的方式去查找参数,关于ebp与esp寻址可以看我这篇文章<ebp寻址>. 下面简单说总结一下ebp几个偏移的含义: ebp:  ...

  7. 32 位的有符号整数_「js基础」JavaScript逻辑和位运算符归纳

    上一篇文章呢,我们讲述了JavaScript运算符中的关系运算符和逻辑运算符,那么紧接上一篇的文章我们今天来说说逻辑运算符. 引言 逻辑运算符不是很难,也不是很多,我们只要记住三个就可以啦!分别是: ...

  8. windows环境下32位汇编语言程序设计 90盘_程序设计作业题汇总

    C语言程序的基本单位是函数 程序设计语言经历了"机器语言"-"汇编语言"-"高级语言"的发展过程. 编写C语言代码文件的拓展名为.c/编写C ...

  9. 32位系统是指地址_不起眼却很重要丨32位操作系统与64位操作系统详解(含查询教程)...

    大家好,我是小诸葛,一个喜欢捣鼓电脑的小机灵鬼儿,如果关注电脑 手机信息,可以关注小诸葛! 小诸葛 在下载软件的时候,可能会遇到需要选择32位或64位操作系统的选项,对小白来说,32跟64是什么都不知 ...

最新文章

  1. dede列表分页php,dede列表页分页英文调用方法
  2. 定义__asm块作为C宏
  3. oracle存储过程拼',【求助】关于oracle存储过程'字符串拼接'
  4. php websocket 是否在线_看完让你彻底理解WebSocket原理,附实战代码(包含前端和后端)...
  5. 【Codeforces - 378C】Maze(dfs,思维)
  6. 招商银行网站在chrome中 布局出现大问题,如图
  7. bzoj 4561: [JLoi2016]圆的异或并(扫描线+set)
  8. Windows上的Spark环境搭建后,运行时报错的问题
  9. 计算机房设计规范2008,电子信息系统机房设计规范(GB50174-2008)(下)
  10. MEMS传感器工作原理总结
  11. APP登录界面UI设计欣赏
  12. 计算机报名503,503 service temporarily unavailable是什么意思【解决方法】
  13. win7 变wifi热点
  14. 基于STM32L432KC,通过RT-Thread Studio打造一个迷你时钟
  15. 开发岗校招求职攻略——面试准备(7.2胸有成竹-技术面技巧)
  16. 【论文翻译】Learning from Few Samples: A Survey 小样本学习综述
  17. 临时表与SELECT INTO、INSERT INTO SELECT
  18. 范数(机器学习中的使用)
  19. 呆萌程序猿的恋爱奇葩说
  20. 一篇文章玩转 RNN 网络 原理

热门文章

  1. java集合类学习笔记之LinkedHashMap
  2. 认识less和webstrom的less配置
  3. (转)Django ==== 实战学习篇五 模板系统说明
  4. list_for_each引起的问题
  5. 利用Canny边缘检测算子进行边缘检测的原理及OpenCV代码实现
  6. Ubuntu 11.10更新源地址列表更改方法及下载
  7. 我在北京工作这几年 – 一个软件工程师的反省
  8. 北工大计算机学院教授,北工大计算机学院计算机科学与技术导师介绍:周艺华...
  9. Shell 数组中 @ 跟 * 的区别
  10. leetcode算法题--n个骰子的点数