C++之汇编内存访问
来源:互联网 发布:linux命令配置ip地址 编辑:程序博客网 时间:2024/05/22 00:29
先看图
2000:0000这个意思是前面2000表示的是段地址,后面的0000就是偏移地址也就是IP指针寄存器,这里都是16进制表示的,每两个数字表示一个字节,也就是8个位,这里所有用到的都是16进制,所以注意看看是多少个位;cs表示的是代码寄存器,也就是说我们汇编所写的指令都是在代码段下进行的,来看看测试;
上面可以分析出,cpu在代码段2000,ip等于0的时候ax的值没有变,是因为我们在写汇编指令的时候写在了0770:0这个内存上面,所以现在我们在内存地址是2000:0的地址写上汇编指令看看情况:
说明什么啊,说明1000这个数没有内存,现在再来看看,我对1000这个段加上偏移值,构成物理地址也就构成了内存;
内存已经写进去了,现在再来执行机械指令2000:0这个地方内存的指令:
实验证明,不管改不改内存偏移跟他每关系,其实是指针寄存器ip出了问题:
宗上可得,机器指令在执行汇编指令的时候是要知道代码段在哪里,代码段下面的汇编指令,段地址,指针ip地址;
从分析可得:mov ax,1000,这句意思是定义ax段的开始位置也就是段值,1000这个段的偏移值是多少自己定义的,此时的1000:0表示的就是在该段的物理地址啦,也就是内存了,还有就是用[]表示的时候他默认是执行ds数据段寄存器里面的数据,好难讲清楚画幅图片吧:
阅读全文
0 0
- C++之汇编内存访问
- as汇编基础程序设计--调用C库和内存访问
- C优化篇之优化内存访问
- C优化篇之优化内存访问
- 汇编学习笔记:寄存器(内存访问)
- [Intel汇编-MASM]内存单元访问扩展
- 汇编学习笔记---3内存访问
- 汇编第三节-寄存器(内存访问)
- C语言之访问固定的内存位置
- linux c之使用mprotect检测内存访问
- 从汇编的眼光看C++(之delete内存泄露) .(之指针拷贝) .
- 从汇编的眼光看C++(之delete内存泄露)
- 从汇编的眼光看C++(之delete内存泄露)
- 从汇编的眼光看C++(之delete内存泄露)
- 关于C&C++内存访问
- 汇编学习-寄存器(内存访问)&栈机制
- arm 汇编指令:内存访问方式 、STR 、LDR 指令
- 汇编学习笔记--寄存器(内存访问 1)
- 配置路由器子接口
- ICPC2017网络赛(青岛)1003 HDU 6208 字符串匹配KMP
- The container 'Maven Dependencies' references non existing library
- Hive四种数据导入方式
- Eclipse如何设置编码格式?(3种方式)
- C++之汇编内存访问
- Delphi 自制Office风格按键
- RGB-D SLAM——匹配篇(一)
- hdu 6216 A Cubic number and A Cubic Number
- Nginx优化图解
- solr(一)安装与基本使用
- HDU 6215 Brute Force Sorting
- YII框架第三方微博登录
- 将两个有序链表融合成一个有序链表