前言1 .通用寄存器2 .将字保存到寄存器2.1两个单位2.2基础的汇编指令2.2.1 MOV指令2.2.2 ADD指令2.2.3传输运算规范3 .相关习题
前言
与本文相关的CPU为8086CPU
在CPU内部有很多设备,这些设备相互协作来实现CPU的功能
CPU的主要设备包括:
运算器(信息处理计算)寄存器(信息存储)控制器(控制和运行各种设备)通过总线在CPU和存储器之间进行交互称为外部总线
CPU内部的设备也通过总线连接,称为内部总线
相反,在CPU内部,寄存器是主要设备,并且其结构根据CPU寄存器的数目而不同。
1 .通用寄存器8086的CPU可以存储所有寄存器为16位且2字节(字节)的数据
另一方面,AX、BX、CX、DX这4个寄存器能够用于存储一般的数据,所以将这4个寄存器称为通用寄存器。
以AX寄存器为例,其他BX寄存器、CX寄存器、DX寄存器也一样。
AX本身是16位寄存器,但该寄存器还可以分为AH和AL两个寄存器AH和AL寄存器都是8位寄存器,同样
BX可以分为BH和BLCX,CH和CLDX可以分为DH和DL,但是当将16位寄存器分为两个8位寄存器时,这两个8位寄存器是相互独立的。
h为High,表示原始寄存器的字节数
l为Low,表示原始寄存器的低位字节
将该寄存器考虑为AX时,寄存器中保存的数字如下。
ax:011100http://www.Sina.com/11111111
寄存器的值加1后,寄存器的值如下。
ax:011100http://www.Sina.com/00000000
01
如果将寄存器考虑为AH和AL两个寄存器,则寄存器中保存的数字如下。
AH:0111 0001
AL:1111 1111
此时的AL 1、寄存器的变化如下。
AH:0111 0001
AL:0000 0000
10
当然,这个满满的1是放不下的。 标志记录溢出的信息
2 .字存储在寄存器中2.1单位8086CPU一次可以处理两种大小类型,如下:
字节:可以存在于字节、8位、8位寄存器中。
字:由Word、16位和2字节组成,这两个字节分别称为因为AX是一个整体,所以AX + 1,会影响所有的数字。和AL 因为运算发生的进位并不会进到 AH寄存器中,因为两个寄存器独立的,互不影响。。
2.2基本汇编指令汇编指令不区分大小写
mov和mov是等价的
2.2.1 MOV指令以mov指令最基础的使用方法,将数字送入寄存器
型号为mov寄存器、数值
MOV AX,18H; 将数值18H发送到寄存器AX; 与c语言相似。 AX=10HMOV AH,01H; 将值01H发送到寄存器AH; 与c语言相似。 AH=01HMOV AL,02H; 将值02H发送到寄存器AL; 如c语言所示,以AL=02H mov指令的基本使用方法,将寄存器的内容发送到其他寄存器
格式为mov寄存器、寄存器
MOV AX、ABCDH; 向寄存器AXMOV BX,AX发送数值ABCD; 将寄存器AX内容取入寄存器BX; 与c语言的BX=AX 2.2.2 ADD指令ADD指令的最基本使用方法相同,对寄存器进行加法运算
型号为ADD寄存器、数值
ADD AX,1111H; 在AX寄存器的内容中加上1111H; 与c语言相似。 AX=AX 1111H ADD指令的基本使用方法是将一个寄存器和另一个寄存器的值相加
型号为ADD寄存器、寄存器
ADD AX,BX; 在AX寄存器的内容中添加BX寄存器的内容; 与c语言相似。 AX=AX BX 2.2.3传输运算规格进行数字传输或运算时,请参阅高位字节
正确的示例:
mov ax、bx; ax (16位)、bx (16位) mov al、bh; al(8bit ),BH ) 8bit ) add ax,abcdH; ax (16位)、abcdh (16位) add bl、88H; bl(8bit )、88h (8bit )错误示例:
mov ax、bl; 将8位寄存器的数据传输到16位寄存器的mov al、ABCDH; 将16位数字传输到8位寄存器中,add al、800H; 将大于8位的数字添加到一个8位寄存器3 .相关练习执行每个汇编指令后,导出相关寄存器的值
答案: