整数寄存器
来源:互联网 发布:讨鬼传极优化 编辑:程序博客网 时间:2024/06/05 05:00
今天学习了一下汇编语言的基础知识,自己将整数寄存器的内容简单整理了一下。
一个32位CPU中,包含了8个存储32位值的寄存器,分别表示为:%eax、%ecx、%edx、%ebx、%esi、%edi、%esp、%ebp 。可见名字都是以%e开头。
%eax,可存放一般数据,而且可作为累加器使用;
%ebx,可存放一般数据,而且可用来存放数据的指针(偏移地址);
%ecx,可存放一般数据,而且可用来做计数器,常常将循环次数用它来存放;
%edx,可存放一般数据,而且可用来存放乘法运算产生的部分积,或用来存放输入输出的端口地址(指针);
%esi,可存放一般数据,还可用于串操作中,存放源地址,对一串数据访问;
%edi,可存放一般数据,还可用于串操作中,存放目的地址,对一串数据访问;
%esp,用于寻址一个称为堆栈的存储区,通过它来访问堆栈数据;
%ebp,可存放一般数据,用来存放访问堆栈段的一个数据区,作为基地址;
在大多数情况下,%eax、%ecx、%edx、%ebx、%esi、%edi等6个寄存器可以看做通用寄存器,对它们的使用没有限制;%esp、%ebp两个寄存器保存着指向程序栈中重要位置的指针,只有根据栈管理的标准惯例才能修改这两个寄存器中的值。
刚刚提到的8个寄存器都可以作为16位或32位来访问。字节操作指令可以独立访问%eax、%ecx、%edx、%ebx等4个寄存器的两个低位字节,因为%ax、%cx、%dx、%bx这4个16位寄存器又可分别分成ah,al ;bh,bl;ch,cl;dh,dl的8位寄存器。
0 0
- 整数寄存器
- (一)IA32整数寄存器
- 寄存器
- 寄存器
- 寄存器
- 寄存器
- 寄存器
- 寄存器
- 寄存器
- 寄存器
- 寄存器
- 寄存器
- 寄存器
- 寄存器
- 寄存器
- 寄存器
- 寄存器
- 寄存器
- 互联网公司的一点经验
- ASP.NET MVC 4 中的JSON数据交互总结
- 数据挖掘笔记:分类和预测bayes,svm等
- 二维数组查找
- 欢迎使用CSDN-markdown编辑器
- 整数寄存器
- MongoDB框架Jongo的使用介绍
- Android Camera 通过V4L2与kernel driver的完整交互过程
- 浅谈从测试技术到测试管理
- Android自定义ViewGroup详解
- CloudFoundry AWS China Region安装
- 经验教训:
- 什么是Pb free, 什么是RoHS6,你认为你真的理解了吗?
- 基于openssl的RSA 编码和解码例子吗,非常详细