寄存器

寄存器可以分为:通用寄存器、指令指针IP、段寄存器等等。其主要功能是在计算时存储数据、代码。寄存器是在CPU内部,靠内部总线相连。前一篇文章中CPU和内存相连的地址线、数据线、控制线相对寄存器来说是在CPU的外部,靠外部总线相连。

一、通用寄存器

  8086CPU的所有寄存器都是16位的,可以放两个字节。AX、BX、CX、DX这4个寄存器通常用来存放一般性数据,被称为通用寄存器。每个寄存器的大小都是16位,由于以前的寄存器是8位的,为了兼容,将寄存器拆分为两个可以独立使用的8位寄存器使用。AX可分为AH(高八位)和AL(低八位),同样BS分为BH和BL。

在介绍其他寄存器之前先看几条汇编指令: ax原值:0000H   bx原值:0000H

mov ax,4E20H  将4E20H送入寄存器ax中。       AX:4E20H  BX:0000H

add ax,1406H   将1406H和AX的值相加放到ax中。   AX:6226H  BX:0000H

mov bx,2000H  将2000H送入bx中。          AX:6226H  BX:2000H

add ax,bx     将bx的值和ax的值相加,结果放到ax中    AX:8226H  BX:2000H

mov bx,ax          将寄存器ax中的数据送入寄存器b。    AX:8226H  BX:8226H

add ax,bx      将bx的值和ax的值相加,结果放到ax中   AX:044CH  BX:8226H

在最后一步,ax和bx的值都为8226H,相加结果为1044CH,但ax为16位寄存器,最大值为FFFFH,已经超出范围。所以最高位的1不能保存在ax中,导致ax的数据位044CH。

猜你喜欢

转载自www.cnblogs.com/MicroHeart/p/9001427.html