数据寄存器
他们有一个特性,是其他寄存器没有的。
它们可以分割成两个 8 位寄存器。 AX = AH + AL BX = BH + BL CX = CH + CL DX = DH + DL
AH: 高 8 位寄存器 AL: 低 8 位寄存器
H: High L: Low
8086 CPU 一次可以处理两种数据 字节型数据:1 byte 字型数据: 2 byte
一个字节是这个字型数据的高位字节(AH、BH、CH、DH),一个字节是这个字型数据的低位字节(AL、BL、CL、DL)
问题
什么是 8 位数据?什么是 16 位数据? 什么是 8 位寄存器?什么是 16 位寄存器?
使用 -a 可以编写测试代码!
mov ax, 0005
mov ax, 10000 // error
mov al, 100 // error
mov al, ax // error
寄存器的只能把大小相同的数据放进去;
8 位寄存器,进行 8 位运算,保存 8 位数据!!!
16 位寄存器,进行 16 位运算,保存 16 位数据!!!
如果出现溢出什么的,会放在另一个地方,后面再说!
mov ax, 1234
mov bl, al
mov bh, ah
mov ax, 0
mov al, 93
add ax, 85
结果 ax: 0118
mov ax, 0
mov ax, 93
add al, 85
结果 ax: 000A
寄存器是相互独立!!!
AL 就是 AL,AH 就是 AH,不会相互影响~
使用现有命令,计算 2 * 2 * 2 * 2
mov ax, 2
mov ax, ax
mov ax, ax
mov ax, ax