何为寄存器。通过名字翻译就是可以寄存数据的一个玩意
接下来上个图。再解释他的作用。
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不是固定的可以根据需要填写。
就像高级语言列表的索引一样
网友评论