luqingfei@C++

为中华之崛起而崛起!
兼听则明,偏听则暗。

[转]8086CPU的14个寄存器简介

AX 累加器 AL 底8位累加器 AH 高8位累加器 EAX 32位累加器
BX 基址寄存器 BL 底8位基址寄存器 BH 高8位基址寄存器 EXB 32位基址寄存器
CX 计数器 CL第8位计数器 CH 高8位计数器 ECX 32位计数器
DX 数据寄存器 DL 第8位数据寄存器 DH 高8位数据寄存器 EDX 32位数据寄存器
CS: 代码段寄存器
DS: 数据段寄存器
SS: 堆栈段寄存器
ES: 附加段寄存器
SI: 源变址寄存器 
DI: 目的变址寄存器
BP: 基址指针寄存器
SP: 堆栈指针寄存器
IP: 指令指针寄存器
FR: 标志指针寄存器


1数据寄存器(或称通用寄存器) 

数据寄存器包括AX,BX,CX,DX四个通用寄存器,他们可以以字16位的形式使用,也可以以字节8位的形式使用。 

以字形式使用时四个通用寄存器称为AX,BX,CX,DX,以字节形式使用,高八位通用寄存器称AH,BH,CH,DH。低八位称AL,BL,CL,DL。 

这四个都是通用寄存器,又可用于专用的目的。 

AX做累加器用(ACCUMALATOR0 

BX在计算存储器地址时,经常用做基地址寄存器,所以又称基址寄存器。(BASE) 

CX(COUNT)可用做通用寄存器。此外,在循环( LOOP)和串处理指令中用做隐含的计数器。 

DX(DATA)在做双字长的运算时,把DX和AX组合在一起存放I/O端口地址。 

2,指针及变址寄存器 

他们包括SP,BP,SI,DI四个16位寄存器。他们可以象数据寄存器一样在运算过程中存放操作数,单他们只能以字16位为单位使用。 

SP(STACK POINTER)堆栈指针寄存器; 

用来指示堆栈的栈顶的偏移地址,与SS堆栈段寄存器形成栈顶存储单元的物理地址。 

BP(BASE POINTER)基址指针寄存器。 

用来指示堆栈中某个数据区的偏移地址-----基地址。 

SI(SOURCE INDEX)源变址寄存器; 

DI(DESTINATION INDEX)目的变址寄存器; 

3,段寄存器 

包括CS,DS,SS,ES四个16位段寄存器 

CS(CODE SEGMENT)代码段寄存器 

SS(STACK SEGMENT)堆栈段寄存器 

DS(DATA SEGMENT)数据段寄存器 

ES(EXTRA SEGMENT)附加段寄存器 

8086/8088采用存储空间的分段技术来解决寻址1M字节的存储空间。这些段寄存器的内容和有效的地址偏移量(称偏移地址)一起可确定内存的存储单元的物理地址。CS控制程序区DS和ES控制数据区,SS控制堆栈区。 

4控制寄存器 

分为两个16位的寄存器IP和PSW。 

IP(INSTRUCTION POINTER)指令指针寄存器;他用来存放代码段中的偏移地址。程序运行中始终指向下一条指令的首地址。计算机就是用IP寄存器来控制指令序列的执行流程的 

PSW(PROGRAM STATUS WORD)程序状态字寄存器或称标志寄存器; 

由状态码标志和控制标志构成, 

OF溢出标志;运算结果超出机器能表示的数值范围称溢出OF=1,否则OF=0; 

SF符号标志;运算结果的符号为负时置1否则置0 

ZF;零标志 

CF进位标志 

AF辅助进位标志 

PF奇偶标志 

DF方向标志 

DF=1每次操作后使SI和DI减量,使串处理指令向低地址方向进行 

IF中断标志 

TF跟踪标志 

控制标志是由系统程序或用户程序根据需要用指令来设置的。

posted on 2010-07-20 15:46 luqingfei 阅读(1005) 评论(0)  编辑 收藏 引用 所属分类: 汇编语言基础学习


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


导航

<2010年9月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

统计

留言簿(6)

随笔分类(109)

随笔档案(105)

Blogers

Game

Life

NodeJs

Python

Useful Webs

大牛

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜