微机答案(全)

更新时间:2023-12-05 09:43:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

计算机应用基础A

第1章 基础知识

1.1 计算机中常用的计数制有哪些? 解:二进制、八进制、十进制(BCD)、十六进制。 1.2 什么是机器码?什么是真值?

解:把符号数值化的数码称为机器数或机器码,原来的数值叫做机器数的真值。 1.3 完成下列数制的转换。 微型计算机的基本工作原理 汇编语言程序设计

微型计算机接口技术 m建立微型计算机系统的整体概念,形成微机系统软硬件开发的初步能力。 解: o (1)166,A6H (2)0.75 c

(3)11111101.01B, FD.4H

(4 ) 5B.AH, (10010001.011000100101)BCD .

1.4 8位和16位二进制数的原码 、补码和反码可表示的数的范围分别是多少? 解:

原码(-127~+127)、(-32767~+32767) w 补码 (-128~+127)、(-32768~+32767) 反码(-127~+127)、(-32767~+32767) a 1.5 写出下列真值对应的原码和补码的形式。 (1)X= -1110011B (2)X= -71D d (3)X= +1001001B

解: h

(1)原码:11110011 补码:10001101 (2)原码:11000111 补码:10111001 (3)原码:01001001 补码:01001001 1.6 写出符号数10110101B的反码和补码。 解:11001010,11001011

1.7 已知X和Y的真值,求[X+Y]的补码。 (1)X=-1110111B Y=+1011010B (2)X=56D Y= -21D 解:

(1)11100011 (2)00100011

1.8 已知X= -1101001B,Y= -1010110B,用补码求X-Y的值。 解:11101101

1.9 请写出下列字符的ASCII码。 4A3-!

解:34H,41H,33H,3DH,21H

1.10 若给字符4和9的ASCII码加奇校验,应是多少? 解:34H,B9H

1.11 上题中若加偶校验,结果如何?

解:B4H,39H

1.12 计算下列表达式。

(1) (4EH+10110101B)x(0.0101)BCD=( )D (2)4EH-(24/08H+’B’/2)=( )B 解:(1) 129.5D (2)101010B

第2章 微型计算机基础

2.6 简述CPU执行程序的过程。 m解:当程序的第一条指令所在的地址送入程序计数器后,CPU就进入取指阶段准备取第一条指令。在取指阶段,CPU从内存中读出指令,并把指令送至指令寄存器IR暂存。在取指阶段结束后,机器就进入执行阶段,这时,由指令译码器对指令译码,再经控制器发出相应的控制信号,控制各部件执行指令所规定的具体操作。当一条指令执行完毕以后,就转入了下一条指令的取指阶段。以上步骤周而复始地循环,直到遇到停机指令。

2.7说明8086的EU和BIU的主要功能。在执行程序过程中他们是如何相互配合工作的? 解:执行单元EU负责执行指令。EU在工作时不断地从指令队列取出指令代码,对其译码后产生完成指令所需要的控制信息。数据在ALU中进行运算,运算结果的特征保留在标志寄存器FLAGS中。总线接口单元BIU负责CPU与存储器、I/O接口之间的信息传送。BIU取出的指令被送入指令队列供EU执行,BIU取出的数据被送入相关寄存器中以便做进一步的处理。当EU从指令队列中取走指令,指令队列 a出现空字节时,BIU就自动执行一次取指令周期,从内存中取出后续的指令代码放入队列中。当EU需要数据时,BIU根据EU给出的地址,从指定的内存单元或外设中取出数据供EU使用。当运算结束时,BIU将运算结果送入指定的内存单元或寄存器。当指令队列空时,EU就等待,直到有指令为止。若BIU正在取指令,EU发出访问总线的请求,则必须等BIU取指令完毕后,该请求才能得到响应。一般情况下,程序顺序执行,当遇到跳转指令时,BIU就使指令队列复位,从新地址取出指令,并立即传送EU去执行。指令队列的存在使8086/8088的EU和BIU并行工作,从而减少了CPU为取指令而等待的时间,提高了CPU的利用率,加快了整机的运行速度。另外也降低了对存储器存取速度的要求。

2.8 在执行指令期间,BIU能直接访问存储器吗?为什么?

解:可以.因为EU和BIU可以并行工作,EU需要的指令可以从指令队列中获得,这时BIU预先从存储器中取出并放入指令队列的。在EU执行指令的同时,BIU可以访问存储器取下一条指令或指令执行时需要的数据。 w 2.9 8086与8088CPU的主要区别有哪些? 解:主要区别有以下几点:

①8086的外部数据总线有16位,而8088的外部数据总线只有8位。 ②8086指令队列深度为6个字节,而8088的指令队列深度为4个字节.

③因为8086的外部数据总线有16位,故8086每个总线周期可以存取两个字节.而8088的外部数据总线因为只有8位,所以每个总线周期只能存取1个字节.④个别引脚信号的含义稍有不同.

2.10 8088CPU工作在最小模式下:

(1)当CPU访问存储器时,要利用哪些信号?

(2)当CPU进行I/O操作时,要利用哪些信号?

(3)当HOLD有效并得到响应时,CPU的哪些信号置高阻?

解:(1)要利用信号线包括WR#、RD#、IO/M#、ALE以及AD0~AD7、A8~A19。

(2)同(1)。

(3)所有三态输出的地址信号、数据信号和控制信号均置为高阻态。

2.11 总线周期中,什么情况下要插入TW 等待周期?插入TW周期的个数,取决于什么因素?

解:在每个总线周期的T3的开始处若READY为低电平,则CPU在T3后插入一个等待周期TW。在TW的开始时刻,CPU还要检查READY状态,若仍为低电平,则再插入一个TW 。此过程一直进行到某个TW开始时,READY已经变为高电平,这时下一个时钟周期才转入T4。可以看出,插入TW周期的个数取决于READY电平维持的时间。 m2.12 若8088工作在单CPU方式下,在教材第91页的表中填入不同操作时各控制信号的状态。 解:结果如表所示。 o

2.13 在8086/8088 CPU中,标志寄存器包含哪些标志位?各位为0(为1)分别表示什么含义?

解:(略),见书第49页。 c

2.14 8086/8088 CPU中,有哪些通用寄存器和专用寄存器?说明它们的作用。 解:通用寄存器包含以下8个寄存器: .

AX、BX、CX和DX寄存器一般用于存放参与运算的数据或运算的结果。除此之外: AX:主要存放算术逻辑运算中的操作数,以及存放I/O操作的数据。 BX:存放访问内存时的基地址。 w CX:在循环和串操作指令中用作计数器。

DX:在寄存器间接寻址的I/O指令中存放I/O地址。在做双字长乘除法运算时,DX与AX合起来存放一个双字长数。

SP:存放栈顶偏移地址。

BP:存放访问内存时的基地址。 D

SP和BP也可以存放数据,但它们的默认段寄存器都是SS。 SI:常在变址寻址方式中作为源地址指针。 h DI:常在变址寻址方式中作为目标地址指针。 专用寄存器包括4个段寄存器和两个控制寄存器: CS:代码段寄存器,用于存放代码段的段基地址。 DS:数据段寄存器,用于存放数据段的段基地址。 SS:堆栈段寄存器,用于存放堆栈段的段基地址。

ES:附加段寄存器,用于存放附加段的段基地址。

IP:指令指针寄存器,用于存放下一条要执行指令的偏移地址。

FLAGS:标志寄存器,用于存放运算结果的特征。

2.15 8086/8088 系统中,存储器为什么要分段?一个段最大为多少个字节?最小为多少个字节? 解:分段的主要目的是便于存储器的管理,使得可以用16位寄存器来寻址20位的内存空间。一个段最大为64KB,最小为16B。

2.16 在8086/8088 CPU中,物理地址和逻辑地址是指什么?已知逻辑地址为1F00:38A0H,如何计算出其对应的物理地址?

解:物理地址时CPU存取存储器所用的地址。逻辑地址是段和偏移地址形式的地址,即汇编语言程序中使用的存储器地址。

若已知逻辑地址为1F00:38A0H,则对应的物理地址=1F00H x 16+38A0H=228A0H。 2.17 已知存储器物理地址为78A00H,计算出它所对应的逻辑地址。此结果惟一吗? 解:物理地址可以对应于不同的逻辑地址。78A00H对应的逻辑地址可以是7000H:8A00H,

7800H:0A00H, 78A0H:0000H等。结果不是惟一的。

2.18 设当前数据段位于存储器的A8000H~B7FFFH,DS段寄存器的内容应是什么? 解:因为A8000H到B7FFFH之间的地址范围大小为64KB,未超出一个段的最大范围。故要访问此地址范围的数据,数据段的起始地址(即段首地址)应为A8000H,则DS段寄存器为A800H。

2.19 若CS=8000H,则当前代码段可寻址的存储空间的范围是多少?

解(CS)=8000H时,当前代码段可寻址的存储空间范围为80000H~8FFFFH。 2.20 8086/8088 CPU 在最小模式下构成计算机系统至少应包括哪几个基本部分(器件)?

解:其至少应包括:8088CPU、8284时钟发生器、8282锁存器(3片)和8286双向总线驱动器。

第3章 8088/8086指令系统

3.1什么叫寻址方式?8086/8088CPU共有哪几种寻址方式? m

解:寻址方式主要是指获得操作数所在地址的方法. 8086/8088CPU具有:立即寻址、直接寻址、寄存器寻

址、寄存器间接寻址、寄存器相对寻址、基址一变址寻址、基址一变址-相对寻址以及隐含寻址等8种寻址方式。 3.2设(DS)=6000H,(ES)=2000H,(SS)=1500H,(Si)=00A0H,(BX)=0800H,(BP)=1200H,数据变量VAR

为0050H. 请分别指出下列各条指令源操作数的寻址方式?它的物理地址是多少? (1) MOV AX,BX (2) MOV DL,80H .

(3) MOV AX, VAR (4) MOV AX,VAR[BX][SI] (5) MOV AL,'B' (6) MOV DI, ES: [BX]

(7) MOV DX,[BP] (8) MOV BX,20H[BX] w

解: (1)寄存器寻址。因源操作数是寄存器,故寄存器BX就是操作数的地址.

(2)立即寻址。操作数80H存放于代码段中指令码MOV之后。 (3)直接寻址。

(4)基址一变址一相对寻址. d

操作数的物理地址=(DS) × 16+(SI)+(BX)+VAR = 60000H+00A0H+0800H+0050H=608F0H (5)立即寻址

(6)寄存器间接寻址. k

操作数的物理地址= (ES) × 16+(BX) . = 20000H+0800H = 20800H (7)寄存器间接寻址。

操作数的物理地址= (SS) × 16+(BP) w = 15000H+1200H= 16200H

(8)寄存器相对寻址.

操作数的物理地址=(DS) × 16+(BX)+20H

w = 60000H+0800H+20H= 60820H

3.3 假设(DS)= 212AH,(CS)= 0200H,(IP)= 1200H,(BX)= 0500H,位移量DATA=40H,(217A0H) =2300H, (217E0H)=0400H,(217E2H) =9000H试确定下列转移指令的转移地址. (1) JMP 2300H

(2) JMP WORD PTR[BX]

(3) JMP DWORD PTR[BX+DATA]

解:转移指令分为段内转移和段间转移,根据其寻址方式的不同,又有段内的直接转移和间接转移,

以及段间的直接转移和间接转移地址。对直接转移,其转移地址为当前指令的偏移地址(即IP的内容)加上位移量或由指令中直接得出;对间接转移,转移地址等于指令中寄存器的内容或由寄存器内容所指向的 存储单元的内容。

(1) 段内直接转移。转移的物理地址=(CS) × l6 +2300H=02000H+2300H=04300H

(2)段内间接转移。转移的物理地址= (CS) × 16+ [BX]= (CS) × l6+(217A0H)=02000H+2300H=04300H

(3)段间间接转移。转移的物理地址=[BX+DATA]=(217E2H) × l6+(217E0H)=90000H+0400H=90400H m

3.4试说明指令MOV BX,5[BX]与指令LEA BX,5[BX]的区别。

解:前者是数据传送类指令,表示将数据段中以(BX+5)为偏移地址的16位数据送寄存器BX. 后者是取偏移地址指令,执行的结果是(BX)= (BX)+5,即操作数的偏移地址为(BX)+5。

3.5设堆栈指针SP的初值为2300H,(AX)=50ABH,(BX)=1234H。执行指令PUSH AX后,(SP)=?,再执行指令PUSH BX及POP AX之后,(SP)= ?(AX)= ?(BX)=? 解:堆栈指针SP总是指向栈顶,每执行一次PUSH指令SP-2,执行一次POP指令SP+2.所以,执行PUSH AX指令后,(SP)=22FEH;再执行PUSH BX及POP AX后,(SP)=22FEH,(AX)=(BX)=1234H

3.6 指出下列指令的错误:

(1) MOV AH,CX (2) MOV 33H,AL w (3) MOV AX, [SI][DI] (4) MOV [BX],[SI]

(5) ADD BYTE PTR[BP],256 (6) MOV DATA[SI],ES:AXa

(7) JMP BYTE PTR[BX] (8) OUT 230H,AX (9) MOV DS,BP (10) MUL 39H 解: d(1)指令错。两操作数字长不相等

(2)指令错。MOV指令不允许目标操作数为立即数.

(3) 指令错。在间接寻址中不允许两个间址寄存器同时为变址寄存器。

(4)指令错。MUV指令不允许两个操作数同时为存储器操作数。 (5)指令错。ADD指令要求两操作数等字长。

(6)指令错。源操作数形式错,寄存器操作数不加段重设符。 (7)指令错。转移地址的字长至少应是16位的。

(8)指令错。对输人输出指令,当端口地址超出8位二进制数的表达范围(即寻址的端口超出256个)时,必须采用间接寻址。 (9)指令正确。

(10)指令错。MUL指令不允许操作数为立即数。

3.7 已知(AL) =7BH, (BL) =38H,试问执行指令ADD AL, BL后,AF、CF、OF、PF、SF和ZF的值各为多少?

解:AF=1,CF=0,OF=1,PF=0,SF=l,ZF=0

3.8 试比较无条件转移指令、条件转移指令、调用指令和中断指令有什么异同? w解:无条件转移指令的操作是无条件地使程序转移到指定的目标地址,并从该地址开始执行新的程序段,其转移的目标地址既可以是在当前逻辑段,也可以是在不同的逻辑段;条件

例程时,以上各寄存器的内容分别为:

SP=0100H-6=00FAH SS=3500H

IP=[8×4]=1A7FH

CS=[(8×4)+2]=6C07H m

[SP]=0200H+2=0202H o 第7章 常用数字接口电路

7.1 一般来讲,接口芯片的读写信号应与系统的哪些信号相连?

解: 一般来讲,接口芯片的读写信号应与系统总线信号中的#IOR(接口读)或#IOW(接口写)信号相连。

7.2 试说明8253芯片的六种工作方式。其时钟信号CLK和门控信号GATE分别起什么作用?

解:可编程定时/计数器8253具有六种不同的工作方式,其中:

方式0:软件启动、不自动重复计数。在写入控制字后OUT端变低电平,计数结束后OUT端输出高电平,可用来产生中断请求信号,故也称为计数结束产生中断的工作方式。 方式1:硬件启动、不自动重复计数。所谓硬件启动是在写入计数初值后并不开始计数,而是要等门控信号GATE出现由低到高的跳变后,在下一个CLK脉冲的下降沿才开始计数,此时OUT端立刻变为低电平。计数结束后,OUT端输出高电平,得到一个宽度为计数初值N个CLK脉冲周期宽的负脉冲。

方式2:既可软件启动,也可以硬件启动。可自动重复计数。在写入控制字后,OUT端变为高电平。计数到最后一个时钟脉冲时OUT端变为低电平,再经过一个CLK周期,计数值减到零,OUT又恢复为高电平。之后再自动转入计数初值,并重新开始新的一轮计数。方式2下OUT端会连续输出宽度为Tclk的负脉冲,其周期为N×Tclk,所以方式2也称为分频器,分频系数为计数初值N。

方式3:也是一种分频器,也有两种启动方式,自动重复计数。当计数初值N为偶数时,连续输出对称方波(即N/2个CLK脉冲低电平,N/2个CLK脉冲高电平),频率为(1/N)×Fclk。若N为奇数,则输出波形不对称,其中(N+1)/2个时钟周期高电平, (N-1)/2个时钟周期低电平。

方式4和方式5都是在计数结束后输出一个CLK脉冲周期宽的负脉冲,且均为不自动重复计数方式。区别在方式4是软件启动,而方式5为硬件启动。时钟信号CLK为8253芯片的工作基准信号。GATE信号为门控信号。在软件启动时要求GATE在计数过程中始终保持高电平;而对硬件启动的工作方式,要求在写入计数初值后GATE端出现一个由低到高的正跳变,启动计数。

7.3 8253可编程定时/计数器有两种启动方式,在软件启动时,要使计数正常进行,GATE端必须为( )电平,如果是硬件启动呢? 解:在软件启动时,要使计数正常进行,GATE端必须为高电平;如果是硬件启动,则要在写入计数初值后使GATE端出现一个由低到高的正跳变,以启动计数。

7.4 若8253芯片的接口地址为D0D0H~D0D3H,时钟信号频率为2MHz。现利用计数器0、1、2分别产生周期为10us的对称方波及每1ms和1s产生一个负脉冲,试画出其与系统的电路连接图,并编写包括初始化在内的程序。

解:根据题目要求可知,计数器0(CNT0)工作于方式3,计数器1(CNT1)和计数器2(CNT2)工作于

方式2。时钟频率2MHz,即周期为0.5us,从而得出各计数器的计数初值分别为: CNT0:

10us/0.5us = 20 CNT1: 1ms/0.5us = 2000 CNT2:

1s/0.5us = 2 ×1000000

显然,计数器2的计数初值已超出了16位数的表达范围,需经过一次中间分频,可将OUT1端的输出脉冲作为计数器2的时钟频率。这样,CNT2的计数初值就等于1s/1ms = 1000。线路连接如图所示。8253

8253的初始化程序如下: MOV DX,0D0D3H MOV AL,16H ;计数器0,低8位计数,方式3 OUT DX,AL

MOV AL,74H ;计数器1,双字节计数,方式2 OUT DX,AL

MOV AL,0B4H ;计数器2,双字节计数,方式2 OUT DX,AL

MOV DX,0D0D0H

MOV AL,20 ;送计数器0的计数初值 OUT DX,AL

MOV DX,0D0D1H

MOV AX,2000 ;送计数器1的计数初值 OUT DX,AL

MOV AL,AH OUT DX,AL

MOV DX,0D0D2H

MOV AX,1000 ;送计数器2的计数初值 OUT DX,AL MOV AL,AH

OUT DX,AL .

7.5 某一计算机应用系统采用8253芯片的计数器0作频率发生器,输出频率为500Hz;用计数器1产生1000Hz的连续方波信号,输入8253的时钟频率为1.19MHz。试问:初始化时送到计数器0和计数器1的计数初值分别为多少?计数器1工作于什么方式下? 解:计数器0工作于方式2,其计数初值=1.19MHz/500Hz=2380

计数器1工作于方式3,其计数初值=1.19MHz/1KHz=1190

7.6 若所用8253芯片用软件产生一次性中断,最好采用哪种工作方式?现用计数器0对外部脉冲计数,当计满10000个脉冲时产生中断,请写出工作方式控制字及计数值。

解:若8253用软件产生一次性中断,最好采用方式0,即计数结束产生中断的工作方式。其方式控制字为:00110000B。计数初值=10000

7.7 试比较并行通信与串行通信的特点。 解:并行通信是在同一时刻发送或接收一个数据的所有二进制位。其特点是接口数据的通道宽,传送速度快,效率高。但硬件设备的造价较高,常用于高速度、短传输距离的场合。串行通信是将数据逐位的传送。其特点是传送速度相对较慢,但设备简单,需要的传输线少,成本较低。所以常用于远距离通信。

7.9 在对8255的C口进行初始化为按位置位或复位时,写入的端口地址应是( )地址。 解:应是(8255的内部控制寄存器)地址。

7.10 某8255芯片的地址范围为A380H~A383H,工作于方式0,A 口、B 口为输出口,现欲将PC4置“0”, PC7置“1”,试编写初始化程序。 解:该8255芯片的初始化程序包括置方式控制字及C口的按位操作控制字。程序如下: MOV DX,0A383H ;内部控制寄存器地址送DX MOV AL,80H ;方式控制字 OUT DX,AL

MOV AL,08H ;PC4置0 OUT DX,AL

MOV AL,0FH ;PC7置1 OUT DX,AL

7.11 设8255芯片的接口地址范围为03F8H~03FBH,A 组 B 组均工作于方式0,A 口作为数据输出口,C口低 4 位作为控制信号输入口,其他端口未使用。试画出该片8255芯片与系统的电路连接图,并编写初始化程序。 . 解:8255芯片与系统的电路连接如图所示。

由题目知,不需对 C 口置位控制字,只需对8255置方式控制字,故其初始化程序如下: MOV DX,03FBH w

MOV AL,81H OUT DX,AL a

7.12 已知某8088微机系统的I/0接口电路框图如教材中图7-47所示。试完成: (1)根据图中接线,写出8255芯片、8253芯片各端口的地址。 (2)编写8255芯片和8253芯片的初始化程序。其中,8253芯片的OUT 1 端输出100Hz方波,8255芯片的A 口为输出,B 口 和 C 口为输入。

(3)为8255芯片编写一个I/O控制子程序,其功能为:每调用一次,先检测PC0的状态,若PC0 = 0,则循环等待;若PC0 = 1,可从 PB 口读取当前开关 K 的位置(0~7 ),经转换计算从 A 口的 PA0~PA3输出该位置的二进制编码,供LED显示。 解:(1)8255芯片的地址范围为:8000H~FFFFH 8253芯片的地址范围为:0000H~7FFFH

(2)初始化8255芯片 MOV DX,8003H

MOV AL,8BH ;方式控制字,方式0,A 口 输出,B 口 和 C 口 输入 OUT DX,AL;初始化8253

MOV DX,0003H ;内部寄存器口地址

MOV AL,76H ;计数器1,先写低8位/后写高8位,方式3,二进制计数 OUT DX,AL

MOV DX,0001H ;计数器1端口地址 MOV AX,10000 ;设计数初值=10000 OUT DX,AL MOV AL,AH OUT DX,AL

(3);8255芯片的控制子程序 ;定义显示开关位置的字形译码数据 DATA SEGMENT

BUFFER DB 3FH,06H,5BH,0FH,66H,6DH,7CH,07H DATA ENDS; CODE SEGMENT

ASSUME CS:CODE,DS:DATA

MAIN PROC PUSH DS MOV AX,DATA MOV DS,AX

CALL DISP POP DX .

RET

MAIN ENDP;输出开关位置的二进制码程序 DISP PROC

PUSH CX PUSH SI

XOR CX,CX CLC

LEA SI,BUFFER

MOV DX,8002H ;C 口 地址

WAITT:IN AL,DX ;C 口 状态 TEST AL,01H k

JZ WAITT

MOV DX,8001H . ;读 B 口 的开关位置 IN AL,DX

NEXT: SHR AL,1

INC CX

JC NEXT ;没有接地则移动

DEC CX

ADD SI,CX ;查表,CX 为开关位置 MOV AL,[SI] MOV DX,8000H OUT DX,AL ; POP SI POP CX RET

DISP ENDP CODE ENDS

END MAIN

7.13 试说明串行通信的数据格式。

解:串行通信通常包括两种方式,即同步通信和异步通信,二者因通信方式的不同而有不同的数据格式,

其数据格式可参见教材第326页及327页图7-34和图7-35。

本文来源:https://www.bwwdw.com/article/a8at.html

Top