32位汇编基础_内存_每个应用进程都会有自己独立的4GB内存空间
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内存空间相关推荐
- 汇编——32位汇编基础框架
代码 .586 .model flat,stdcall option casemap:noneincludelib ucrt.lib includelib legacy_stdio_definitio ...
- 计算机做减法运算的过程,32位汇编基础_计算机做加减乘除
4+5=?的运算过程 0000 0100 0000 0101 加----------------------- 0000 1001 (1)第一步,异或运算(不一样的时候为1) 0000 0100 ...
- 32位汇编第六讲,OllyDbg逆向植物大战僵尸,快速定位阳光基址
32位汇编第六讲,OllyDbg逆向植物大战僵尸,快速定位阳光基址 一丶基址,随机基址的理解 首先,全局变量的地址,我们都知道是固定的,是在PE文件中有保存的 但是高版本有了随机基址,那么要怎么解决这 ...
- 【汇编语言】32位汇编总结
x86汇编语言 学习操作系统前对汇编语言进行快速学习,转载自x86汇编语言进行总结. 汇编程序的布局 清单A-1显示了一个简单的C程序,清单A-2显示了由GCC v5.4.0对应生成的汇编程序,第1章 ...
- 32位汇编第七讲,混合编程,内联汇编
32位汇编第七讲,混合编程 博客园IBinary原创 QQ:2510908331 博客连接:http://www.cnblogs.com/iBinary/ 转载请注明出处,谢谢 混合编程的概念,有时 ...
- 32位汇编ebp、ebp-4、ebp+4、ebp+8等含义
我们知道,当调用了一个函数后,底层汇编大多数会使用ebp寻址的方式去查找参数,关于ebp与esp寻址可以看我这篇文章<ebp寻址>. 下面简单说总结一下ebp几个偏移的含义: ebp: ...
- 32 位的有符号整数_「js基础」JavaScript逻辑和位运算符归纳
上一篇文章呢,我们讲述了JavaScript运算符中的关系运算符和逻辑运算符,那么紧接上一篇的文章我们今天来说说逻辑运算符. 引言 逻辑运算符不是很难,也不是很多,我们只要记住三个就可以啦!分别是: ...
- windows环境下32位汇编语言程序设计 90盘_程序设计作业题汇总
C语言程序的基本单位是函数 程序设计语言经历了"机器语言"-"汇编语言"-"高级语言"的发展过程. 编写C语言代码文件的拓展名为.c/编写C ...
- 32位系统是指地址_不起眼却很重要丨32位操作系统与64位操作系统详解(含查询教程)...
大家好,我是小诸葛,一个喜欢捣鼓电脑的小机灵鬼儿,如果关注电脑 手机信息,可以关注小诸葛! 小诸葛 在下载软件的时候,可能会遇到需要选择32位或64位操作系统的选项,对小白来说,32跟64是什么都不知 ...
最新文章
- dede列表分页php,dede列表页分页英文调用方法
- 定义__asm块作为C宏
- oracle存储过程拼',【求助】关于oracle存储过程'字符串拼接'
- php websocket 是否在线_看完让你彻底理解WebSocket原理,附实战代码(包含前端和后端)...
- 【Codeforces - 378C】Maze(dfs,思维)
- 招商银行网站在chrome中 布局出现大问题,如图
- bzoj 4561: [JLoi2016]圆的异或并(扫描线+set)
- Windows上的Spark环境搭建后,运行时报错的问题
- 计算机房设计规范2008,电子信息系统机房设计规范(GB50174-2008)(下)
- MEMS传感器工作原理总结
- APP登录界面UI设计欣赏
- 计算机报名503,503 service temporarily unavailable是什么意思【解决方法】
- win7 变wifi热点
- 基于STM32L432KC,通过RT-Thread Studio打造一个迷你时钟
- 开发岗校招求职攻略——面试准备(7.2胸有成竹-技术面技巧)
- 【论文翻译】Learning from Few Samples: A Survey 小样本学习综述
- 临时表与SELECT INTO、INSERT INTO SELECT
- 范数(机器学习中的使用)
- 呆萌程序猿的恋爱奇葩说
- 一篇文章玩转 RNN 网络 原理
热门文章
- java集合类学习笔记之LinkedHashMap
- 认识less和webstrom的less配置
- (转)Django ==== 实战学习篇五 模板系统说明
- list_for_each引起的问题
- 利用Canny边缘检测算子进行边缘检测的原理及OpenCV代码实现
- Ubuntu 11.10更新源地址列表更改方法及下载
- 我在北京工作这几年 – 一个软件工程师的反省
- 北工大计算机学院教授,北工大计算机学院计算机科学与技术导师介绍:周艺华...
- Shell 数组中 @ 跟 * 的区别
- leetcode算法题--n个骰子的点数