通用寄存器:
- AX = AH(High) + AL(Low) = AX可以存放一个字型数据 = 存放2个字节型数据
- BX = BH + BL
- CX = CH + CL
- DX = DH + DL
注:H = high 高 ,L= Low低,AH为高八位,AL为低八位,通用寄存器由高八位和低八位组成。
通用寄存器 一般存放数据 ,存放的最小值为0000H,最大值为FFFFH,由2个字节构成的。(2Byte = 16Bit)
范围0 ~ 65535(0 ~ 2的16次方 - 1)
Byte = 8bit (字节型数据)
- 一个内存地址就能保存一个字节
word = 2Byte = 16bit (字型数据)
- 一个字需要2个地址连续的内存单元来存放
- 高位地址存放 高位字节
- 低位地址存放 低位字节
例如:
由上图可得不同地址存放的字节型和字型的数据分别为:
- 0 地址内存单元存放的<字节型>数据为 33H
- 0 地址内存单元存放的<字型>数据为 2C33H
- 2 地址内存单元存放的<字节型>数据为 6FH
- 地址内存单元存放的<字型>数据为 F26FH
- 1 地址内存单元存放的<字节型>数据为 2CH
- 1 地址内存单元存放的<字型>数据为 6F2CH
程序实现如下所示:
由上图可得不同地址存放的字节型和字型的数据分别为:
0 地址内存单元存放的<字节型>数据为 33H
0 地址内存单元存放的<字型>数据为 2C33H
2 地址内存单元存放的<字节型>数据为 6FH
2 地址内存单元存放的<字型>数据为 F26FH
1 地址内存单元存放的<字节型>数据为 2CH
1 地址内存单元存放的<字型>数据为 6F2CH
示例:
mov bx,2000
mov ds,bx
mov al,ds:[0] ; 2000:0 →al决定了只取一个字节 字节型数据
mov bx,2000
mov ds,bx
mov ah,ds:[0] ; 2000:0 →ah决定了只取一个字节 字节型数据
mov bx,2000
mov ds,bx
mov ax,ds:[0] ; 2000:0 →ax决定了只取2个字节 字型数据
将al中的数据送入内存单元 20000H中
mov bx,1000
mov ds,bx
mov [0],al
例:
1.内存中的情况如图所示,指令执行后寄存器中的内容
20000H 23H
20001H 11H
20002H 22H
20003H 66H
mov ax,2000H ; AX = 2000H
mov ds,ax ; DS = 2000H
mov ax,ds:[0] ; AX = 1123H →将ds:[0]字型数据存放到AX
mov bx,ds:[2] ; BX = 6622H →将ds:[2]字型数据存放到BX
mov cx,ds:[1] ; CX = 2211H →将ds:[1]字型数据存放到CX
add bx,ds:[1] ; BX = 8833H →将bx + ds:[1]字型数据相加
add cx,ds:[2] ; CX = 8833H →将cx + ds:[2]字型数据相加
2.内存中的情况如图所示,指令执行后寄存器中的内容
20000H 23H
20001H 11H
20002H 22H
20003H 11H
mov ax,2000H ; AX = 2000H
mov ds,ax ; DS = 2000H
mov ax,2C34H ; AX = 2C34H 20000H 34H
mov ds:[0],ax 20001H 2CH
mov bx,ds:[0] ; BX = 2C34H
sub bx,ds:[2] ; BX = 1B12H 20002H 12H BX - 1122H = 1B12H
mov ds:[2],bx 20003H 1BH