汇编学习(三)-AX、BX、CX、DX

349 阅读1分钟

数据寄存器

他们有一个特性,是其他寄存器没有的。

它们可以分割成两个 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