0201 寄存器及数据存储

CPU的组成

  • 运算器:进行信息处理
  • 寄存器:进行信息存储,寄存器是CPU内部的存储单元
  • 控制器:协调各种器件进行工作
  • 内部总线:实现CPU内部各个器件之间的联系

image-20230902225239543

寄存器是CPU内部的信息存储单元

8086CPU有14个寄存器

image-20230902225500928

  • 通用寄存器:AX、BX、CX、DX——存放运算中得临时数据
  • 变址寄存器:SI、DI
  • 指针寄存器:SP、BP
  • 指令指针寄存器:IP
  • 段寄存器:CS、SS、DS、ES
  • 标志寄存器:PSW

共性:8086CPU的所有寄存器都是16位的,即可以存放2个字节

通用寄存器——以AX为例

最大值:一个16位寄存器存储一个16位的数据,因此一个16位寄存器能够保存数据的最大值位2^16^-1,即所有位都取1

image-20230902225808139

例:在AX中保存数据18D

18D=12H=10010B=0000000000010010B,该二进制数在寄存器低位存储,高位全部为0

image-20230902230002256

例:在AX中存储20000D

20000D=4E20H=0100111000100000B

image-20230902230047576

16位寄存器和8位寄存器的兼容

问题:8086上一代CPU中得寄存器都是8位的,如何保证程序的兼容性?

解决:通用寄存器均可以分为2个独立的8位寄存器,如AX可以分为AH和AL

image-20230902230332721

因此如果将一个16位寄存器分高低各8位来显示,则16位数据可以表示为2个8位数据,比如AX中数据为20000D(4E20H),则AH中数据为78(4EH),AL中数据为30(20H)

image-20230902230636424

细化

  • AX可以分为AH和AL
  • BX可以分为BH和BL
  • CX可以分为CH和CL
  • DX可以分为DH和DL

“字”在寄存器中得存储

8086的寄存器是16位,则8086的**“字长”**(word size)为16bit

  • 一个字(word)可以存在一个16位寄存器中
    • 这个字的高位字节存在这个寄存器的高8位寄存器
    • 这个字的低位字节存在这个寄存器的低8位寄存器

image-20230902230941537

站内搜索

没有找到内容!