学习assembly language之前理顺一下思路
2008-10-05 19:25
288 查看
“在学习真正的汇编语言之前,必须理解INTEL8086处理器系列的基本机构,否则机器指令讲没有任何意义。”
INTEL系列CPU一般都归为冯.诺依曼式机器。其基本模块是:CPU,储存器和输入输出设备。
CPU与储存器和I/O设备之间的通信方法是向地址总线发送一个数值来选取一个储存单元或者I/O设备,他们都有唯一的二进制地址。因此,CPU,I/O以及储存设备都将通过数据放到数据总线上来传递彼此之间的数据。数据总线则包含用于确定传输的方向的信号。
在CPU当中,寄存器是其最主要的特征。8086寄存器可以分成四大类:通用寄存器、段寄存器、特殊目的的寄存器以及特殊目的的核心模式寄存器。(General-purpose register,segment register, flags register, instruction pointer register)
针对目前大多使用的32位操作系统,着重讨论通用寄存器。
8086系列提供了8个32位通用寄存器。EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP(E代表EXTEND)。每个32位寄存器又包含一个16位寄存器,同时这个16位寄存器有是由两个8位寄存器组成。
第一组,数据寄存器,AX,BX,CX,DX.
其中,X表示一个未知数,那么这些寄存器都可以用来存放数据,ABCD,虽说都可以理解为一个顺序号,但是,A还是加法ADD的简称,所以AX叫累加
器,B是基地址的简称,所以BX可以叫基地址寄存器,C是计数器的简称,所以CX可以叫做计数器.D是数据DATA的简称,所以DX可以叫数据寄存器.这
四个寄存都可以按高八位和低八位分成两个寄存器:AH,AL,BH,BL,CH,CL,DH,DL.
第二组,地址指示和变址寄存器,SI,DI,BP,SP.
它们用来表示一个地址偏移,或用来表示一个地址的变化状况.
SI,DI都可以表示变址,在串操作中,SI和DI表示源和目的操作数的指示器,快速记忆方法:SI联想饮水思源的思(谐音SI),DI联想目的(谐音DI).
BP,SP的P表示堆栈专用,BP表示基地址专用,SP则是堆栈顶指示器.
其中,BP,SI,DI还可以兼作数据寄存器.SP则只能和堆栈绑定.
INTEL系列CPU一般都归为冯.诺依曼式机器。其基本模块是:CPU,储存器和输入输出设备。
CPU与储存器和I/O设备之间的通信方法是向地址总线发送一个数值来选取一个储存单元或者I/O设备,他们都有唯一的二进制地址。因此,CPU,I/O以及储存设备都将通过数据放到数据总线上来传递彼此之间的数据。数据总线则包含用于确定传输的方向的信号。
在CPU当中,寄存器是其最主要的特征。8086寄存器可以分成四大类:通用寄存器、段寄存器、特殊目的的寄存器以及特殊目的的核心模式寄存器。(General-purpose register,segment register, flags register, instruction pointer register)
针对目前大多使用的32位操作系统,着重讨论通用寄存器。
8086系列提供了8个32位通用寄存器。EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP(E代表EXTEND)。每个32位寄存器又包含一个16位寄存器,同时这个16位寄存器有是由两个8位寄存器组成。
第一组,数据寄存器,AX,BX,CX,DX.
其中,X表示一个未知数,那么这些寄存器都可以用来存放数据,ABCD,虽说都可以理解为一个顺序号,但是,A还是加法ADD的简称,所以AX叫累加
器,B是基地址的简称,所以BX可以叫基地址寄存器,C是计数器的简称,所以CX可以叫做计数器.D是数据DATA的简称,所以DX可以叫数据寄存器.这
四个寄存都可以按高八位和低八位分成两个寄存器:AH,AL,BH,BL,CH,CL,DH,DL.
第二组,地址指示和变址寄存器,SI,DI,BP,SP.
它们用来表示一个地址偏移,或用来表示一个地址的变化状况.
SI,DI都可以表示变址,在串操作中,SI和DI表示源和目的操作数的指示器,快速记忆方法:SI联想饮水思源的思(谐音SI),DI联想目的(谐音DI).
BP,SP的P表示堆栈专用,BP表示基地址专用,SP则是堆栈顶指示器.
其中,BP,SI,DI还可以兼作数据寄存器.SP则只能和堆栈绑定.
相关文章推荐
- 写技术文章能帮助大家理顺学习的思路,更能促进自己不断学习——分享下写技术文章的思路
- 学了两天 react,乱讲一下学习思路,顺便弄了一个脚手架
- 明确一下技术学习的思路
- 简单写几个脚本让学习脚本的初学者开阔一下思路
- 整理了一下买的电脑书,整理了一下学习思路
- 打算学习一下Web开发with eclipse 的全套家伙
- 记录一下学习VC的初步过程.
- 学习GoogleMap相关内容,这篇文章很棒转一下(转)
- java框架学习,记录一下,给自己一个动力
- 总结一下前面学习Linux的结果
- 想学习这篇文章的叙事风格写作思路,佩服作者的逻辑表达能力
- 在网上看到一张关于前端学习的路线图,求各位指点一下,不知这张图是否合理
- Linux学习之前
- 学习一下360浏览器的插件开发
- 学习知识的一种思路
- Android学习记录(二十五)-记录一下Android cursor onPause中close的异常。
- 学习到的处理最大子矩阵问题运用枚举的思路
- 准备认真学习一下“运筹学”
- BLOG 的用户体验要向 云笔记 学习一下。
- 写在学习Oracle之前