汇编习题解答

2.1 8086 CPU共有哪些16位寄存器?其中哪些16位寄存器可分为二个8位寄存器来使用?

参考答案:8086 CPU共有AX、BX、CX、DX、SI、DI、SP、BP、IP、FLAGS、CS、DS、ES、SS共14个16位的寄存器。其中AX、BX、CX、DX可分为二个8位寄存器来使用

2.2 简述8086 CPU各通用寄存器的主要功能?

参考答案:8086 CPU包含AX、BX、CX、DX、SI、DI、SP、BP共8个通用寄存器。其中AX主要用在字的乘、除法,输入/输出指令中;BX主要在寄存器间接寻址和XLAT指令中作基址寄存器使用;CX主要在串操作指令和LOOP指令中作计数器使用;DX主要在字的乘除法指令和输入/输出指令中使用;SI主要在字符串操作指令中作源变址寄存器使用;DI主要在字符串操作指令中作目的变址寄存器使用;SP主要在堆栈操作中作堆栈指针使用;BP主要在寄存器间接寻址中作基址指针使用 。

2.3 8086 CPU的标志寄存器有几个状态标志位?几个控制标志位?它们各自的含义和作用是什么?在Debug环境下,对应的用什么符号来表示之?

参考答案:8086 CPU的标志寄存器有6个状态标志位,有3个控制标志位。

其中CF进位标志位主要用来反映运算结果是否产生进位或借位,如果运算结果的最高位向前产生了一个进位(加法)或借位(减法),则其值为1,否则其值为0;PF奇偶标志位用于反映运算结果中低8位含有“1”的个数的奇偶性,如果“1”的个数为偶数,则PF的值为1,否则为0;AF辅助进位标志位表示加法或减法运算结果中D3位向D4位产生进位或借位的情况,有进位(借位)时AF=1;无进位(借位)时AF=0;ZF零标志位用来反映运算结果是否为0,如果运算结果为0,则其值为1,否则其值为0;SF用来反映运算结果的符号位,当运算结果为负数时,SF的值为1,否则其值为0;OF溢出标志位用于反映带符号数运算所得结果是否溢出,如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF的值被置为1,否则,OF的值被清为0。

IF中断允许标志位用来决定CPU是否响应CPU外部的可屏蔽中断发出的中断请求,当IF=1时,CPU响应;当IF=0时,CPU不响应。DF方向标志位用来控制串操作指令中地址指针的变化方向。在串操作指令中,当DF=0时,地址指针为自动增量,即由低地址向高地址变化;当DF=1时,地址指针自动减量,即由高地址向低地址变化。TF追踪标志位被置为1时,CPU进入单步执行方式,即每执行一条指令,产生一个单步中断请求。

在Debug环境下,对应的表示符号如下表

标志位

OF

DF

IF

SF

ZF

AF

PF

CF

状  态

1/0

1/0

1/0

1/0

1/0

1/0

1/0

1/0

显  示

OV/NV

DN/UP

EI/DI

NG/PL

ZR/NZ

AC/NA

PE/PO

CY/NC

2.4 默认情况下,哪些寄存器可用于读取堆栈段的数据?

参考答案:SP和BP

2.5有效地址就是偏移地址的说法正确吗?

参考答案:正确

2.6假设用以下寄存器组合来访问存储单元,试求出它们所访问单元的物理地址。

(1)DS=1000H和DI=F000H    (2)SS=C300H和BP=3200H   (3)DS=A000H和BX=1000H

参考答案:(1)物理地址=1000H*16+ F000H= 1F000H

(2)物理地址=C300H*16+3200H=C6200H

(3)物理地址=A000H*16+1000H=A1000H

2.7 8086 微机最大可编址的存储空间是多少?它是由什么决定的?

参考答案:8086 微机最大可编址的存储空间是1MB,由CPU的地址线条数决定。

2.8 给出下列8位数据在执行加法运算后,CF、OF、SF、ZF的值。

(1)EFH+2          (2)80H+80H         (3)F9H+63H

参考答案:

(1)EFH+2=F1H    CF= 0   OF=0    SF=1     ZF=0

(2)80H+80H=00H  CF= 1   OF=1    SF=0     ZF=1

(3)F9H+63H=5CH  CF= 1   OF=0    SF=0     ZF=0

2.9给出2.8中的每小题在执行减法运算后,CF、OF、SF、ZF的值。

参考答案:

(1)EFH-2=EDH    CF= 0   OF=0    SF=1     ZF=0

(2)80H-80H=00H  CF= 0   OF=0    SF=0     ZF=1

(3)F9H-63H=96H  CF= 0   OF=0    SF=1     ZF=0

2.10 简要说明8086 CPU的内部结构及各部分的作用。

参考答案:8086 CPU的内部结构分为两大部分,分别为总线接口部件BIU和执行部件EU。BIU负责取指令;EU负责指令的执行。

2.11解释说明逻辑地址、偏移地址、有效地址和物理地址的含义。

参考答案:逻辑地址:是用户程序设计时所采用的地址,其表示形式为“段地址:偏移地址”。

偏移地址:是指某存储单元距离本段段地址的偏移量(距离),偏移地址值最大不超过FFFFH。

有效地址即为偏移地址。

物理地址:对于CPU的20条地址线所形成的1MB个存储单元(从小到大范围为00000H~FFFFFH)就是存储单元的物理地址,每一个存储单元都有惟一的一个物理地址。

2.12 8086 CPU的最大工作模式和最小工作模式的主要区别是什么?如何进行控制?

参考答案:主要区别反映在提供微处理器的数量及总线控制信号的产生。由引脚MN/MX来控制。

2.13试解释时钟周期、总线周期和指令周期的概念。并结合指令“ADD   [2000H],BX”,说明执行该指令需要几个总线周期?属于什么样的总线周期?

参考答案:时钟周期为一个时钟脉冲的时间长度,是CPU的基本时间计量单位。

总线周期:是CPU通过总线对存储器或I/O接口进行一次访问所需要的时间,一个基本的总线周期由4个T状态构成,分别称为T1、T2、T3和T4

指令周期:CPU执行一条指令所需要的时间,不同指令的指令周期是不等长的。

指令“ADD [2000H],BX”共需要3个总线周期,分别为:存储器读、存储器读和存储器写。

2.17 8086 CPU按每个逻辑段最大为64KB划分,最多可分为多少个?最少可分为多少个?各段之间的关系如何?每个段寄存器的作用是什么?

参考答案:8086 CPU按每个逻辑段最大为64KB划分,最多可划分成64K个逻辑段?最少可划分成16个逻辑段。

 

posted @ 2013-08-14 22:10  herizai007  阅读(919)  评论(0编辑  收藏  举报