(二)我学汇编的那几年-寄存器篇

何为寄存器。通过名字翻译就是可以寄存数据的一个玩意

接下来上个图。再解释他的作用。


2990730-13132bfb35556f63.png

通过上面的图片就可以看出来他就是用来临时储存数据的

咱们先说说段寄出去
  • 这个段寄存器主要用来储存临时数据的。
    -段寄存器在8086里面有4个。
    1.ax 2.bx 3.cx 4.dx

每个段寄存器又分为高低位寄存
1.ax = ah, al
2.bx = bh, bl
3.cs = ch, cl
4.dx = dh, dl

何为高低寄存
比如我们内存有一个数。2244H,
这是一个16进制。
因为每个段只能储存一个字节。也就是只能储存44
那么22怎么办。
ax就相当于两个地址的储存。
ah 会储存 22这个位置高的数据。
al就会储存44这个位置低的数据。
位置指指数据地址的位置

个人理解:
  • 程序 -> 修改寄存器 -> 控制cpu操作电脑
说到寄存器咱们首先想到应该是内存
  • 寄存器每个地址段只能储存8个bit,就是1个字节

11111111 这就是1字节
16进制也就是FF

  • 通过以上结出。存储2个字节就得需要两个地址段。

寄存器类别

通用寄存器:

AX,BX,CX,DX 称作为数据寄存器:

1.AX (Accumulator):累加寄存器,也称之为累加器;

2.BX (Base):基地址寄存器;

3.CX (Count):计数器寄存器;

4.DX (Data):数据寄存器;

5.SP 和 BP 又称作为指针寄存器:

6.SP (Stack Pointer):堆栈指针寄存器;

7.BP (Base Pointer):基指针寄存器;

SI 和 DI 又称作为变址寄存器:

1.SI (Source Index):源变址寄存器;

2.DI (Destination Index):目的变址寄存器;

控制寄存器:

1.IP (Instruction Pointer):指令指针寄存器;

2.FLAG:标志寄存器;

段寄存器:

1.CS (Code Segment):代码段寄存器;

2.DS (Data Segment):数据段寄存器;

3.SS (Stack Segment):堆栈段寄存器;

4.ES (Extra Segment):附加段寄存器;

寄存器取值方式:
mov ax, 11H ;赋值给ax段寄存器
mov ds, ax ;取出ax数值,给ds
mov bx, ds[0]  ;取出ds的第一个值给bx

其实寄存器很多是通用的。只是大家普遍这么储存。
习惯成自然。

也就是说所有的寄存器都可以通过
ds[0],ss[0],cs[0]...
这种方式取值。0不是固定的可以根据需要填写。
就像高级语言列表的索引一样

你可能感兴趣的:((二)我学汇编的那几年-寄存器篇)