注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

眼睛想旅行

技术就是我的生命与信仰!

 
 
 

日志

 
 
关于我

精通C,C++,python,Erlang。并熟悉各种其他编程语言,用cocos2dx游戏引擎作过几个项目。会MySQL增删改查,了解OpenGL渲染原理。懂单片机,能设计数字电路系统,会画电路图和设计电路板。喜欢了解最新前沿技术,并持续关注和学习新技术。

网易考拉推荐

8086寄存器结构  

2008-03-15 12:41:02|  分类: 学习进步 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 知道有点老,但对电脑的的学习有好处,可以看看。

8086寄存器和标志位如下:

 

           通用寄存器

 

   |    高8位   |   低8位    |  寄存器为16位,可按字节(8位)操作  

    7          0 7          0

AX |     AH     |     AL     |  累加器

BX |     BH     |     BL     |  基址寄存器

CX |     CH     |     CL     |  计数寄存器

DX |     DH     |     DL     |  数据寄存器

 

            段寄存器

    15       16位           0

CS |                         |  代码段寄存器

DS |                         |  数据段寄存器

SS |                         |  堆栈段寄存器

ES |                         |  附加段寄存器

 

        指针和变址寄存器

    15       16位           0

SP |                         |  堆栈指针

BP |                         |  基址指针

SI |                         |  源变址寄存器

DI |                         |  目的变址寄存器

 

        指令指针和标志位

    15    11     8 7             0 

IP |                              |  指令指针

F  |      |O|D|I|T|S|Z| |A| |P| |C|  标志位

 

1.通用寄存器

    8086有四个通寄存器,AX,BX,CX,DX。他们可以作为一个16位寄存器用,也可以作为两个8位寄存器用,当作为8位寄存器用时低8位和高8位为别有自己的名称:(低8位)AL,BL,CL,DL和(高8位)AH,BH,CH,DH。

    通常,通用寄存器的内容既可以作为算术逻辑运算的源操作数,也可用作它们的目的操作数。但有些指令规定了某个通用寄存器的专门用法。如,串操作指令将CX寄存器用作计数器,记录字串的字数目,而AX,BX和DX寄存器都不用于这个目的。CX的这种特殊用途使得它被命名为计数寄存器,而AX,BX和DX寄存器又可以分别称为累加器,基址和数据寄存器,下面列出了8086通用寄存器的特殊用法。

AX:字乘法、字除法、字I/O

AL:字节乘法、字节除法、字节I/O

AH:字节乘法、字节除法

BX:转换

CX:串操作、循环

CL:可变移位和循环移位

DX:字乘法、字除法、间接寻址I/O

SP:堆栈操作

SI:串操作

DI:串操作

 

2.指针和变址寄存器

8086由SP,BP,SI和DI组成,都为16为寄存器。这组寄存器通常存放的内容是在某个段的偏移地址。

 

3.段寄存器

 

       含意             隐含识别的现行段

CS:代码段寄存器           现行代码段

IS:数据段寄存器           现行数据段

SS:堆栈段寄存器           现行堆栈段

ES:附加段寄存器           现行附加段

   

    偏移量是由一个指针寄存器的内容计算得来的,在这种情况下,使用现行堆栈段;

    操作数是一条串操作指令的目的操作数,在这种情况下,则使用现行附加段。

 

4.指令指针

    16位的指令指针(IP),它由8086的总线接口部件BIU修改,以至它总是包含下一条要取的指令在现行代码段中的偏移量,即IP总是指向下一条待取的指令。在程序顺序执行期间,IP包含由BIU将要取的指令的偏移量,但每当将IP压入堆栈保存时,8086首先自动调整IP内容,以使压入堆栈的IP的内容是下一条将要执行的指令地址的偏移量。程序不能直接访问IP,但指令能够引起它的内容的改变以及把它的内容压入堆栈或从堆栈中恢复。

 

5.标志寄存器

    8086有9个标志位,用来记录微处理器运行状态信息(状态村志),或者控制微处理器操作(控制标志)。状态标志通常是在算术或逻辑运算指令执行之后设置。

    状态标志是:

    进位标志位(CF):指出该指令是否在最高信产生一个过们或借位。

    辅助进们标志位(AF):反映上次运算是否在低4位产生了一个进位或借位。

    溢出标志位(OF):表示指令的执行是否产生一个超出范围的带符号的结果。

    零标志位(ZF):反映指令的执行是否产生一个零的结果。

    符号标志位(SF):指出该指令的执行是否产生一个负的结果。

    奇偶标志位(PF):表示指令运算结果的低8位“1”的个数是否为偶数。

    控制标志是:

    方向标志位(DF):控制串操作对字符串操作方向。

    中断标志位(TF):表示CPU是否能够响应外部可屏蔽中断请求。

    跟踪标志(TF):为方便程序的调试,使处理器的执行进入单步方式而设置的控制标志位。

下面给出了这些标志位寄存器。

                            标志寄存器

    15  14  13  12   11   10   9     8   7     6   5   4    3     2   1    0

  |   |   |   |    | OF | DF | IF | TF | SF | ZF |   | AF |    | PF |   | CF |  

  评论这张
 
阅读(828)| 评论(4)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017