0


16位汇编通用寄存器

在这里插入图片描述

调试实验

1、输入命名debug,进入调试程序
2、r 命令显示寄存器
3、a命令输入汇编指令
在这里插入图片描述
4、t命令单步执行汇编指令
在这里插入图片描述
5.数据溢出后标志位NC 变为NY, 0变成1
在这里插入图片描述
最后AX=044C , 1丢失了,标志位变为了CY
在这里插入图片描述

作业

在这里插入图片描述
在这里插入图片描述

2.只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。
MOV AX,2 AX=2
ADD AX,AX AX=4
ADD AX,AX AX=8
ADD AX,AX AX=16

3.8086/8088通用寄存器的通用性表现在何处?8个通用寄存器各自有何专门的用途?哪些寄存器可以作为存储器寻址方式的指针寄存器?
8086/8088通用寄存器除了规定的用途外,他们均可以传送和暂存数据,可以保存算术逻辑运算中的操作数和结果;
8个通用寄存器各自专门用途如下
AX:字乘法,字除法,字I/O
BX:存储地址
CX:串操作或循环计数中的计数器
DX:字乘法,字除法,间接I/O
SI:内存指针(串操作中的源指针)
DI:内存指针(串操作中的目标指针)
BP:栈底指针
SP:栈顶指针
4、其中 BX BP SI DI 可以作为存储器寻地址指针

4.从程序员的角度看,8086/8088有多少个可访问的16位寄存器?有多少个可以访问的8位寄存器?

从程序员的角度看有14个可以访问的16位寄存器
8个可以访问的8位寄存器

5.寄存器AX与寄存器AH和AL的关系如何?请写出如下程序片段中每条指令执行后寄存器AX的内容:

MOV AX,1234H AX=1234H

MOV AL,98H AX=1298H

MOV AH,76H AX=7698H

ADD AL,81H AX=7619H

SUB AL,35H AX=76E4H

ADD AL,AH AX=765AH

ADD AH,AL AX=D05AH

ADD AX,0D2H AX=C12CH

SUB AX,0FFH AX=D02DH

6、处理器的通用寄存器是否越多越好?通用寄存器不够用怎么办?
处理器的通用寄存器并非越多越好,CPU的通用寄存器增加势必会造成CPU成本增加,而且会增加CPU的设置难度。
通用寄存器不够可以用内存代替,但是速度会降低

寄存器全称

AH&AL=AX(accumulator):累加寄存器
BH&BL=BX(base):基址寄存器
CH&CL=CX(count):计数寄存器
DH&DL=DX(data):数据寄存器
SP(Stack Pointer):堆栈指针寄存器
BP(Base Pointer):基址指针寄存器
SI(Source Index):源变址寄存器
DI(Destination Index):目的变址寄存器
IP(Instruction Pointer):指令指针寄存器
CS(Code Segment)代码段寄存器
DS(Data Segment):数据段寄存器
SS(Stack Segment):堆栈段寄存器
ES(Extra Segment):附加段寄存器
OF overflow flag 溢出标志 操作数超出机器能表示的范围表示溢出,溢出时为1.
SF sign Flag 符号标志 记录运算结果的符号,结果负时为1.
ZF zero flag 零标志 运算结果等于0时为1,否则为0.
CF carry flag 进位标志 最高有效位产生进位时为1,否则为0.
AF auxiliary carry flag 辅助进位标志 运算时,第3位向第4位产生进位时为1,否则为0.
PF parity flag 奇偶标志 运算结果操作数位为1的个数为偶数个时为1,否则为0.
DF direcion flag 方向标志 用于串处理.DF=1时,每次操作后使SI和DI减小.DF=0时则增大.
IF interrupt flag 中断标志 IF=1时,允许CPU响应可屏蔽中断,否则关闭中断.
TF trap flag 陷阱标志 用于调试单步操作.

在这里插入图片描述

标签:

本文转载自: https://blog.csdn.net/lygl35/article/details/119776084
版权归原作者 lygl35 所有, 如有侵权,请联系我们删除。

“16位汇编通用寄存器”的评论:

还没有评论