8086 寄存器都是 16 位的寄存器,根据用途可分为 4 种类型分别是数据寄存器、地址寄存器、段寄存器和控制寄存器,我来为大家科普一下关于零基础入门学习汇编语言教程?下面希望有你要的答案,我们一起来看看吧!
零基础入门学习汇编语言教程
8086 寄存器都是 16 位的寄存器,根据用途可分为 4 种类型。分别是数据寄存器、地址寄存器、段寄存器和控制寄存器。
(1)数据寄存器
数据寄存器中每个寄存器又可以分为 2 个 8 位的寄存器。分别为 AH、AL,BH、BL,CH、CL,DH、DL。H 表示高字节(高 8 位)寄存器、L 表示低字节(低 8 位)寄存器。
例如:用 AX 寄存器存放一个字 1234H,表示为 (AX)=1234H,即高字节 12 放在 AH,低字节 34 放在 AL 中。
(2)地址寄存器
地址寄存器包括指针和变址寄存器 SP、BP、SI、DI 四个 16 位寄存器。
顾名思义,它们可用来存放存储器操作数的偏移地址。另外,它们也可以作为通用寄存器用。
(3)段寄存器
8086CPU 有 4 个 16 位的段寄存器,分别是 CS 代码段寄存器、DS 数据段寄存器、ES 附加段寄存器、SS 堆栈段寄存器。
(4)控制寄存器
控制寄存器包括 IP 和 FLAGS(又称为 PSW 程序状态字)两个 16 位寄存器,用于控制程序的执行。
IP 指令指针寄存器,用来存放代码段中的偏移地址,指出当前正在执行指令的下一条指令所在单元的偏移地址。
FLAGS 标志寄存器中的某位代表 CPU 的 1 个标志,表示出 CPU 的某种执行状态。最低位为 D0,最高位为 D15。8086CPU 的标志寄存器共有 9 个标志,分别为 6 个条件码标志和 3 个控制标志。
(1)条件码标志
CF 进位标志。当指令执行结果的最高位向前有进位时,CF=1,否则 CF=0。SF 符号标志。当指令执行结果的最高位(符号位)为负时,SF=1,否则 SF=0。ZF 零标志。当指令执行结果为 0 时,ZF=1,结果不为 0 时,ZF=0。OF 溢出标志。当指令执行结果有溢出(超出了数的表示范围)时,OF=1,否则 OF=0。AF 辅助进位标志。当指令执行结果的第 3 位(半字节)向前有进位时,AF=1,否则 AF=0。PF 奇偶标志。当指令执行结果中 1 的个数为偶数个时,PF=1,否则 PF=0。(2)控制标志
DF 方向标志。执行串处理指令时,若设置 DF=0,存储单元的地址寄存器的值自动增加,若设置 DF=1,存储单元的地址寄存器的值自动减小。IF 中断标志。设置 IF=1,允许 CPU 响应可屏蔽中断,IF=0 则不响应。TF 陷阱标志。在 DEBUG 调试时,TF=1,采用单步执行方式,即进入陷阱;TF=0,正常执行程序。在 DEBUG 调试环境下以字母缩写的形式表示各个标志位的状态。进入 DEBUG 后,用 R 命令查看寄存器状态时,可以看到除了陷阱标志以外的标志位的状态。