首页 > 代码库 > 8086寄存器详解

8086寄存器详解

8086寄存器详解

    

        因为现在的PC机处理器,都是向下一直兼容到8086,编语言是针对微处理器(即CPU)的,如INTEL8088/8086,8051/8031,Z80等...,我们不可能掌握所有的汇编,无必要也不可能,所以我们选择8086来学习汇编语言。
        而对于一个汇编程序员来说,CPU 中主要可以使用的也就是寄存器而已,汇编程序员可以使用指令来读写 CPU 中的寄存器,从而可以实现对于 CPU 的控制,当然,不同的 CPU ,寄存器的个数和结构都是不一样的,比如 8086 CPU 中,寄存器的个数也就 14 个而已,并且 8086 CPU 中所有的寄存器的结构为 16 位,即一个寄存器中可以存放下 2B 即 2 个字节。
        8086  CPU 中寄存器总共为 14 个,且均为 16 位 。即   
AX,BX,CX,DX,SP,BP,SI,DI,IP,FLAG,CS,DS,SS,ES 共 14 个。
而这 14 个寄存器按照一定方式又分为了通用寄存器,控制寄存器和段寄存器。
  
      
             AX (Accumulator):累加寄存器,也称之为累加器;在乘除指令中指定用来存放操作数。
                                              另外,所有的I/O指令都使用AX或AL与外部设备传送信息。
             BX (Base):基地址寄存器,在计算存储器地址时,可作为基址寄存器使用,BX 寄存器中存放的
                               数据一般是用来作为偏移地址使用的;
             CX (Count):计数器寄存器,常用来保存计数值,如在移位指令、循环指令和串处理指令中用
                                  作隐含的计数器。;
             DX (Data):数据寄存器,使用 DIV 指令进行除法运算时,如果除数为 16 位时,被除数将会是 
                                32 位,而被除数的高 16 位就是存放在 DX 中,而且执行完 DIV 指令后,本次除
                                法运算所产生的余数将会保存在 DX 中,同时,在执行 MUL 指令时,如果两个相
                                乘的数都是 16 位的话,那么相乘后产生的结果显然需要 32 位来保存,而这 32 位
                                的结果的高 16 位就是存放在 DX 寄存器中 ;
     
            SP (Stack Pointer):堆栈指针寄存器;
            BP (Base Pointer):基指针寄存器;
     
            SI (Source Index):源变址寄存器;
            DI (Destination Index):目的变址寄存器;

           IP (Instruction Pointer):指令指针寄存器;
           FLAG:标志寄存器;

           CS (Code Segment):代码段寄存器;
           DS (Data Segment):数据段寄存器;
           SS (Stack Segment):堆栈段寄存器;
           ES (Extra Segment):附加段寄存器;

本文出自 “德泽无忧” 博客,请务必保留此出处http://dezewuyou.blog.51cto.com/2628602/1905989

8086寄存器详解