《汇编语言》第二章——寄存器
一个典型的CPU由运算器、控制器和寄存器等器件构成,这些器件靠内部总线相连。在CPU中,运算器进行信息处理;寄存器进行信息存储;控制器控制各种器件进行工作;内部总线连接各种器件,在它们之间仅从数据的传送。
寄存器是CPU中程序员可以用指令读写的部件,程序员通过改变各种寄存器的内容来实现对CPU的控制。
2.1 通用寄存器
8086CPU的所有寄存器都是16位的,可以存放两个字节。AX、BX、CX、DX这4个寄存器通常用来存放一般性数据,被称为通用寄存器。
8086CPU的上一代中的寄存器都是8位的,为了保证兼容,8086CPU的AX、BX、CX、DX这4个寄存器都可以分为两个可独立使用的8位寄存器来用。
每一个通用寄存器都可以分为 -H(高位) 和 -L(低位),高位在左部,低位在右部,如图
2.2 字在寄存器中的存储
8086CPU可以一次性处理以下两种尺寸的数据。
字节:记为byte,一个字节由8个bit组成,可以存在8位寄存器中。
字:记为word,一个字由两个字节组成,这两个字节分为称为这个字的高位字节和低位字节。
2.3 几条汇编指令
下表是几条汇编指令举例:
汇编指令 | 控制CPU完成的操作 | 用高级语言的语法描述 |
---|---|---|
mov ax,18 | 将18送入寄存器AX | AX=18 |
mov ah,78 | 将78送入寄存器AH | AH=78 |
add ax,8 | 将寄存器AX中的数值加上8 | AX=AX+8 |
mov ax,bx | 将寄存器BX中的数据送入寄存器AX中 | AX=BX |
add ax,bx | 将AX和BX中额数值相加,结果存在AX中 | AX=AX+BX |
在进行数据传送或运算时,要注意指令的两个操作对象的位数应当是一致的。另外,当进行运算操作,结果的位数大于寄存器位数时,进位值会丢失(这里所说的丢失是指进位值不能在寄存器中保存,并不是CPU真的丢弃这个进位值)。
待续