习题 1
1. 什么是汇编语言,汇编程序,和机器语言?
答:机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的
集合。
汇编语言是面向及其的程序设计语言。在汇编语言中,用助记符代替操作码,
用地址符号或标号代替地址码。这种用符号代替机器语言的二进制码,就把机器
语言编程了汇编语言。
使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻
译成机器语言,这种起翻译作用的程序叫汇编程序。
2. 微型计算机系统有哪些特点?具有这些特点的根本原因是什么?
答:微型计算机的特点:功能强,可靠性高,价格低廉,适应性强、系统设计灵
活,周期短、见效快,体积小、重量轻、耗电省,维护方便。
这些特点是由于微型计算机广泛采用了集成度相当高的器件和部件,建立在微细
加工工艺基础之上。
3. 微型计算机系统由哪些功能部件组成?试说明“存储程序控制”的概念。
答:微型计算机系统的硬件主要由运算器、控制器、存储器、输入设备和输出设
备组成。
“存储程序控制”的概念可简要地概括为以下几点:
① 计算机(指硬件)应由运算器、存储器、控制器和输入/输出设备五大基
本部件组成。
② 在计算机内部采用二进制来表示程序和数据。
③ 将编好的程序和原始数据事先存入存储器中,然后再启动计算机工作,
使计算机在不需要人工干预的情况下,自动、高速的从存储器中取出指令加以执
行,这就是存储程序的基本含义。
④ 五大部件以运算器为中心进行组织。
4. 请说明微型计算机系统的工作过程。
答:微型计算机的基本工作过程是执行程序的过程,也就是 CPU 自动从程序存
1
放的第 1 个存储单元起,逐步取出指令、分析指令,并根据指令规定的操作类型
和操作对象,执行指令规定的相关操作。如此重复,周而复始,直至执行完程序
的所有指令,从而实现程序的基本功能。
5. 试说明微处理器字长的意义。
答:微型机的字长是指由微处理器内部一次可以并行处理二进制代码的位数。它
决定着计算机内部寄存器、ALU 和数据总线的位数,反映了一台计算机的计算
精度,直接影响着机器的硬件规模和造价。计算机的字长越大,其性能越优越。
在完成同样精度的运算时,字长较长的微处理器比字长较短的微处理器运算速度
快。
6. 微机系统中采用的总线结构有几种类型?各有什么特点?
答:微机主板常用总线有系统总线、I/O 总线、ISA 总线、IPCI 总线、AGP 总线、
IEEE1394 总线、USB 总线等类型。
7. 将下列十进制数转换成二进制数、八进制数、十六进制数。
① (4.75)10=(0100.11)2=(4.6)8=(4.C)16
② (2.25)10=(10.01)2=(2.2)8=(2.8)16
③ (1.875)10=(1.111)2=(1.7)8=(1.E)16
8. 将下列二进制数转换成十进制数。
① (1011.011)2=(11.6)10
② (1101.01011)2=(13.58)10
③ (111.001)2=(7.2)10
9. 将下列十进制数转换成 8421BCD 码。
① 2006=(0010 0000 0000 0110)BCD
② 123.456=(0001 0010 0011.0100 0101 0110)BCD
10. 求下列带符号十进制数的 8 位基 2 码补码。
① [+127]补= 01111111
2
② [-1]补= 11111111
③ [-128]补= 10000000
④[+1]补= 00000001
11. 求下列带符号十进制数的 16 位基 2 码补码。
① [+655]补= 0000001010001111
② [-1]补=1111111111111110
③ [-3212]补=1111011101011100
④ [+100]补=0000000001100100
3
习题 2
1. 8086 CPU 在内部结构上由哪几部分组成?各部分的功能是什么?
答:8086 CPU 内部由两大独立功能部件构成,分别是执行部件和总线接口部
件。执行部件负责进行所有指令的解释和执行,同时管理有关的寄存器。总
线接口部件是 CPU 在存储器和 I/O 设备之间的接口部件,负责对全部引脚的
操作。
2. 简述 8086 CPU 的寄存器组织。
答:8086 CPU 内部共有 14 个 16 位寄存器,按用途可分为数据寄存器,段寄
存器,地址指针与变址寄存器和控制寄存器。数据寄存器包括累加器,基址
寄存器,计数器,和数据寄存器。段寄存器用来存放各分段的逻辑段基值,
并指示当前正在使用的 4 个逻辑段。地址指针与变址寄存器一般用来存放主
存地址的段内偏移地址,用于参与地址运算。
控制寄存器包括指令寄存器和标识寄存器。
3. 试述 8086 CPU 标志寄存器各位的含义与作用。
答:标志寄存器是 16 位的寄存器,但实际上 8086 只用到 9 位,其中的 6 位
是状态标识位,3 位是控制标识位。状态标志位分别是 CF,PF,AF,ZF,
SF,和 OF;控制标志位包括 DF,IF,TF。
CF:进位标志位。算数运算指令执行后,若运算结果的最高位产生进位或借
位,则 CF=1,否则 CF=0。
PF:奇偶标志位。反应计算结果中 1 的个数是偶数还是奇数。若运算结果的
低 8 位中含有偶数个 1,则 PF=1;否则 PF=0.
AF:辅助进位标志。算数运算指令执行后,若运算结果的低 4 位向高 4 位产
生进位或借位,则 AF=1;否则 AF=0.
ZF:零标志位。若指令运算结果为 0,则 ZF=1;否则 ZF=0。
SF:符号标志位。它与运算结果最高位相同。
OF:溢出标志位。当补码运算有溢出时,OF=1;否则 OF=0。
DF:方向标志位。用于串操作指令,指令字符串处理时的方向。
IF:中断允许标志位。用来控制 8086 是否允许接收外部中断请求。
4
TF:单步标志位。它是为调试程序而设定的陷阱控制位。
4. 8086 CPU 状态标志和控制标志有何不同?程序中是怎样利用这两类标识
的?8086 的状态标志和控制标识分别有哪些?
答:状态标志位反应了当前运算和操作结果的状态条件,可作为程序控制转
移与否的依据。它们分别是 CF,PF,AF,ZF,SF,和 OF。控制标志位用
来控制 CPU 的操作,由指令进行置位和复位,控制标志位包括 DF,IF,TF。
5. 将 1001 1100 和 1110 0101 相加后,标识寄存器中 CF, PF, AF, ZF, SF, OF 各为
何值?
答:CF=1,PF=1,AF=1,ZF=0,SF=1,OF=0
6. 什么是存储器的物理地址和逻辑地址?在 8086 系统中,如何由逻辑地址计
算物理地址?
答:逻辑地址是思维性的表示,由段地址和偏移地址联合表示的地址类型叫
逻辑地址。物理地址是真实存在的唯一地址,指的是存储器中各个单元的单
元号。
在 8086 系统中,物理地址=段地址×10H+偏移地址
7. 段寄存器 CS=1200H,指令指针寄存器 IP=4000H,此时,指令的物理地址为
多少?指向这一地址的 CS 指和 IP 值是唯一的吗?
答:此指令的物理地址=1200H×10H+4000H=16000H 并且指向这一物理地址
的 CS 值和 IP 值并不是唯一的。
8. 在 8086 系统中,逻辑地址 FFFF:0001,00A2:37F 和 B800:173F 的物理
地址分别是多少?
答:
逻辑地址
物理地址
FFFF:0001
FFFF1H
00A2:3TF
00D9FH
B800:173F
B973FH
9. 在 8086 系统中,从物理地址 388H 开始顺序存放下列 3 个双字节的数据
5
651AH,D761H 和 007BH,请问物理地址 388H,389H,38AH,38BH,38CH
和 38DH 6 个单元中分别是什么数据?
答:(388H)=1AH,(389H)=65H,(38AH)=61H,(38BH)=DTH,(38CH)
=7BH,(38DH)=00H
10. 8086 微处理器有哪几种工作模式?各有什么特点?
答:8086 微处理器有最大和最小工作模式。
在最小模式下:8086 CPU 直接产生全部总线控制信号(DT/R,DEN,
ALE,M/IO)和命令输出信号(RD,WR,INTA)并提出请求访问总线的逻
辑信号 HOLD,HLDA。
在最大工作模式下,必须配置 8288 总线控制器,并且根据 8086 提供的
状态信号 S2,S1,S0,输出读写控制命令,可以提供灵活多变的系统配置,
以实现最佳的系统性能。
11. 简述 8086 引脚信号中 M/IO,DT/R,RD,WR,ALE,DEN 和 BHE 的作
用。
答:M/IO:输出信号,高电平时,表示 CPU 与存储器之间数据传输;低电
平时,表示 CPU 与 I/O 设备之间数据传输。
DT/R:控制其数据传输方向的信号。DT/R=1 时,进行数据发送;DT/R=0
时,进行数据接收。
RD:CPU 的读信号,RD=0 时,表示 8086 为存储口或 I/O 端口读操作。
WR:CPU 的写信号,WR =0 时,表示 8086 为存储口或 I/O 端口写操作。
ALE:地址存锁信号,在 T1 能时刻有效。
DEN:数据选通信号,当 DEN 有效时,表示允许传输。
BHE:数据总线允许信号,与 A0 组合使用,表示是否访问奇地址字节。
12. 简述 8086 读总线周期和写总线周期和引脚上的信号动尖态变化过程。8086
的读周期时序和写周期时序的区别有哪些?
答:在 8086 读周期内,有关总线信号的变化如下:
①M/ IO :在整个读周期保持有效,当进行存储器读操作时,M/ IO 为高电平;
当进行 I/O 端口读操作时,M/ IO 为低电平。
6
②A19/S6~A16/S3:在 T1 期间,输出 CPU 要读取的存储单元或 I/O 端口的地
址高 4 位。T2~T4 期间输出状态信息 S6-S3。
③ BHE /S7:在 T1 期间,输出 BHE 有效信号( BHE 为低电平),表示高 8 位数
据总线上的信息可以使用, BHE 信号通常作为奇地址存储体的体选信号(偶地址
存储体的体选信号是最低地址位 A0)。T2—T4 期间输出高电平。
④ADl5~AD0:在 T1 期间,输出 CPU 要读取的存储单元或 I/O 端口的地址
A15~A0。T2 期间为高阻态,T3~T4 期间,存储单元或 I/O 端口将数据送上数据
总线。CPU 从 ADl5~AD0 上接收数据。
⑤ALE:在 T1 期间地址锁存有效信号,为一正脉冲,系统中的地址锁存器正
是利用该脉冲的下降沿来锁存 A19/S6~A16/S3,ADl5~AD0 中的 20 位地址信息以
及 BHE 。
⑥ RD :T2 期间输出低电平送到被选中的存储器或 I/O 接口,注意,只有被
地址信号选中的存储单元或 I/O 端口,才会被 RD 信号从中读出数据(数据送上数
据总线 ADl5~AD0)。
⑦DT/ R :在整个总线周期内保持低电平,表示本总线周期为读周期,在接
有数据总线收发器的系统中,用来控制数据传输方向。
⑧ DEN :在 T2~T3 期间输出有效低电平,表示数据有效,在接有数据总线收
发器的系统中,用来实现数据的选通。
总线写操作的时序与读操作时序相似,其不同处在于:
①ADl5~AD0:在 T2~T4 期间送上欲输出的的数据,而无高阻态。
②WR :从 T2~T4,WR 引脚输出有效低电平,该信号送到所有的存储器和 I/O
接口。注意,只有被地址信号选中的存储单元或 I/O 端口才会被WR 信号写入数
据。
③DT/ R :在整个总线周期内保持高电平,表示本总线周期为写周期,在接
有数据总线收发器的系统中,用来控制数据传输方向。
7
习题 3
1. 假定(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)
=0100H,(BP)=0010H,数据变量 VAL 的偏移地址为 0050H,请指出下列
指令原操作数是什么寻址方式,其物理地址是多少?
(1) MOV AX, 0ABH
(3) MOV AX, VAL
(5) MOV AL, VAL[BX]
(7) MOV
VAL[SI], BX
答:(1) 立即数寻址,物理地址:无
(2) MOV AX, [100H]
(4) MOV BX, [SI]
(6) MOV CL, [BX][SI]
(8) MOV [BP][SI], 100
(2) 直接寻址,物理地址=2000H×10H+100H=20100H
(3) 直接寻址,物理地址=2000H×10H+0050H=20050H
(4) 寄存器间接寻址,PA=2000H×10H+00A0=200A0H
(5) 相对寄存器寻址,PA=2000H×10H+(0050+0100H)=20150H
(6) 基址加变寻址,PA=2000H×10H+(0100H+00A0H)=201A0H
(7) 寄存器寻址,无 PA
(8) 立即数寻址,无 PA
2. 已知(SS)=0FFA0H,(SP)=00B0H,先执行两条把 8057H 和 0F79H 分别
进栈的 PUSH 指令,再执行一条 POP 指令,试画出堆栈区和 SP 内容变化的
过程示意图。
答:
“8057H”进栈,则 SP 自动从 00B0H 指向 00B2H,“0F79H”进栈,则 SP
自动从 00B2H 指向 00B4H;执行一条 POP 指令,“0F79H”被弹出栈,SP 从 00B4H
指向 00B2H。图略。
3. 设有关寄存器及存储单元的内容如下:
(BX)=0100H,
(AX)=1200H,
(SI)=0002H,
(DS)=2000H,
(20101H)=34H,
(21201H)=4CH, (21202H)=0B7H, (21203H)=65H.
试说明下列各条指令单独执行后相关寄存器或存储单元的内容。
(20103H)=78H,
(20102H)=56H,
(20100H)=12H,
(21200H)=2AH,
8