黑夜的狼

沮丧吗,那就是一种无病呻吟!留恋它就是一种高度近视!目光应该放得更远一点! 别不想飞,只是要一步跨过太平洋!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

在CUP的寄存器加族中,分内部寄存器和外部寄存器

外部寄存器也就是平时人们说的端口,做为CUP与外设通信使用,不过并不准确

这里先说说内部寄存器。

内部寄存器一共14个,没有像内存一样有内存地址,存取速度快

内部寄存器又分多种

1。通用寄存器
AX,BX,CX,DX 都是16位的,有时也可以拆成两个8位的,比如AX拆成两个
高8位叫AH(High AX) 低8位的叫AL(Low AX)

AX:累加器,不过不要被名字迷惑了,可不是只做加法。
BX:基址寄存器,就是 基址+偏移=地址。
CX:counter,计数器,一样用作循环计数。
DX:一般通用数据寄存器,有时也和AX一起用,记录32位的数据中的高16位。

2.段地址寄存器
DS,ES,CS,SS都是段地址寄存器,只存储段地址 都是16位的,不可以拆,不参入任何数学运算和逻辑运算
DS(Data Segment)数据段地址寄存器,他保存数据段的段地址,如果程序对数据的存取操,没有
显示的指定段地址寄存器,那就是按DS中的存储的地址进行查找。
ES(Exterial segment)附加段地址寄存器,一般情况,我们用ES保存的段地址取数据而不修改
DS中的数据。
CS(Code SegMent)代码段地址寄存器,他保存代码段的段地址,配合IP(指令指针,后面会说)取得代码段
并执行。
SS(Stack Segment)堆栈地址寄存器,保存堆栈的段地址,堆栈要以后说。

3。指令指针寄存器(IP)
InStruction Pointer
16位的,不参与任何逻辑运算和数学运算

IP是配合上述所讲的CS为CUP取得指命,CS是保存代码段的段地址,而IP是保段内偏移量
组合一起就可以取得内存逻辑地址了。

关于逻辑地址可以看本系列笔记的第二篇逻辑地址

4。变址、基指针、堆栈指针和标志寄存器(Index,Base Pointer,Stack Point & Flag)
这些东西补上

posted on 2007-11-22 01:32  anncesky  阅读(243)  评论(0编辑  收藏  举报