微机原理期末复习解答题.docx
《微机原理期末复习解答题.docx》由会员分享,可在线阅读,更多相关《微机原理期末复习解答题.docx(21页珍藏版)》请在冰点文库上搜索。
微机原理期末复习解答题
PCI总线有哪些主要特点,PCI总线结构与ISA总线结构有什么地方不同?
答:
(1)线性突发传输;
(2)支持总线主控方式和同步操作;(3)独立于处理器;(4)即插即用;(5)适合于各种机型;(6)多总线共存;(7)预留发展空间;(8)数据线和地址线复用结构,节约线路空间,降低设计成本。
PCI总线结构与ISA总线结构的不同:
典型PCI系统允许在一个总线中插入32个物理部件,每一个物理部件可含有最多8个不同的功能部件。
处理器与RAM位于主机总线上,具有64位数据通道和更宽以及更高的运行速度。
指令和数据在CPU和RAM之间快速流动,然后把数据交给PCI总线。
PCI负责将数据交给PCI扩展卡或设备。
驱动PCI总线的全部控制由PCI桥实现。
ISA总线构成的微机系统中,内存速度较快时通常采用将内存移出ISA总线并转移到自己的专用总线—内存总线上的体系结构。
ISA总线以扩展插槽形式对外开放,磁盘控制器、显示卡、声卡、打印机等接口卡均可插在8MHz、8/16位ISA总线插槽上,以实现ISA支持的各种外设与CPU的通信。
24、通过8251A实现相距较远的两台微型计算机相互通信的系统连接简化框图如下。
这时,利用两片8251A通过标准串行接口RS-232C实现两台8086微机之问的串行通信,试编写发送和接收的程序。
解:
发送端初始化程序与发送控制程序如下所示:
STT:
MOV DX,8251A控制端口
MOV AL,7FH
OUT DX,AL ;将825lA定义为异步方式,8位数据,1位停止位
MOV AL,11H ;偶校验,取波特率系数为64,允许发送。
OUT DX,AL
MOV DI,发送数据块首地址 ;设置地址指针
MOV CX,发送数据块字节数 ;设置计数器初值
NEXT:
MOV DX,8251A控制端口
IN AL,DX
AND AL,01H ;查询TXRDY有效否?
JZ NEXT ;无效则等待
MOV DX,8251A数据端口、
MOV AL,[DI]; ;向8251A输出一个字节数据。
OUT DX,AL
INC DI ;修改地址指针
LOOP NEXT ;未传输完,则继续下一个
HLT
接收端初始化程序和接收控制程序如下所示:
SRR:
MOV DX,8251A控制端口
MOV AL,7FH
OUT DX,AL ;初始化8251A,异步方式,8位数据
MOV AL,14H ;1位停止位,偶校验,波特率系数64,允许接收。
OUT DX,AL
MOV DI,接收数据块首地址 ;设置地址指针
MOV CX,接收数据块字节数 ;设置计数器初值
COMT:
MOV DX,8251A控制端口
IN AL,DX
ROR AL,1 ;查询RXRDY有效否?
ROR AL,1
JNC COMT ;无效则等待
ROR AL,1
ROR AL,1 ;有效时,进一步查询是否有奇偶校验错。
JC ERR ;有错时,转出错处理
MOV DX,8251A数据端口
IN AL,DX ;无错时,输入一个字节到接收数据块。
MOV [DI],AL
INC DI ;修改地址指针
LOOP COMT ;未传输完,则继续下一个
HLT
ERR:
CALL ERR-OUT
42、在DS段中有一个从TABLE开始的由1000个字符组成的链表,设计一个程序段,实现对此表的搜索,找到第一个非0元素后,将此单元和下一个单元清0。
解:
MOV CX,SEGTABLE
MOV DS,CX ;将段地址送DS
MOV SI,OFFSETTABLE;表偏移量送SI
MOV CX,1000 ;字节数
XOR AL,AL
L1:
CMP AL,[SI]
JNE L2
INC SI
LOOP L1
L2:
MOV [SI],AL
INC SI
MOV [SI],AL
总线数据的传送方式有哪些?
各自有何特点?
答:
(1)串行传送方式
只使用一条传输线,在传输线上按顺序传送信息的所有二进制位的脉冲信号,每次一位。
适于长距离传输。
(2)并行传送方式
信息由多少个二进制位组成,机器就需要有多少条传输线,从而让二进制信息在不同的线上同时进行传送。
(3)并串行传送方式
是并行传送方式与串行传送方式的结合。
传送信息时,如果一个数据字由两个字节组成,那么传送一个字节时采用并行方式,而字节之间采用串行方式。
17、将8253定时器0设置为方式3(方波发生器),定时器1设置为方式2(分频器)。
要求定时器0的输出脉冲作为定时器l的时钟输入,CLK0连接总线时钟4.77MHz,定时器1输出OUT1约为40Hz,试编写实现上述功能要求的程序。
解:
参考程序段如下:
;0号计数器初始化
MOV AL,16H
MOV DX,PORTC
OUT DX,AL
;0号计数器赋初值
MOV AL,1200
MOV DX,PORT0
OUT DX,AL
;1号计数器初始化
MOV AL,54H
MOV DX,PORTC
OUT DX,AL
;1号计数器赋初值
MOV AL,100
MOV DX,PORT1
OUT DX,AL
注:
PORT0、PORT1、PORTC分别为0号、1号和控制口的地址。
22、试编写一个8通道A/D转换器的测试程序。
解:
假设8通道A/D转换器ADC0809与CPU扩展槽连接,0809的地址为2F7H,8通道A/D转换器0809的测试程序编制如下:
MOV CX,8
MOV AH,00H
MOV DX,2F7H
ADO:
MOV AL,AH
OUT DX,AL
CALL DEALY
IN AL,DX
LOOPADO
27、利用8255A的A口方式0与微型打印机相连,将内存缓冲区BUFF中的字符打印输出。
CPU为8088,硬件连接如下图,试完成相应的软件设计。
解:
DADASEGMENT
BUFFDB 'Thisisaprintprogram!
','$'
DATAENDS
CODESEGMENT
ASSUME CS:
CODE,DS:
DATA
START:
MOV AX,DATA
MOV DS,AX
MOV SI,OFFSETBUFF
MOV AL,88H ;8255A初始化,A口方式0,输出
OUT 03H,AL ;C口高位方式0输入,低位方式0输出
MOV AL,01H;
OUT 03H,AL ;使PC0置位,即使选通无效
WAIT:
IN AL,02H
TEST AL,80H ;检测PC7是否为1即是否忙
JNZ WAIT ;为忙则等待
MOV AL,[SI]
CMP AL,'$' ;是否结束符
JZ DONE ;是则输出回车
OUT 00H,AL ;不是结束符,则从A口输出
MOV AL,00H
OUT 03H,AL
MOV AL,01H
OUT 03H,AL ;产生选通信号
INC SI ;修改指针,指向下一个字符
JMP WAIT
DONE:
MOV AL,0DH
OUT 00H,AL ;输出回车符
MOV AL,00H
OUT 03H,AL
MOV AL,01H
OUT 03H,AL ;产生选通
WAIT1:
IN AL,02H
TEST AL,80H ;检测PC7是否为1即是否忙
JNZ WAIT1 ;为忙则等待
MOV AL,0AH
OUT 00H,AL ;输出换行符
MOV AL,00H
OUT 03H,AL
MOV AL,01H
OUT 03H,AL ;产生选通
MOV AH,4CH
INT 21H
CODE ENDS
END START
29、IBMPC机中,只有一片8259A,可接受外部8级中断。
在I/O地址中,分配8259A的端口地址为20H和21H,初始化为:
边沿触发、缓冲连接、中断结束采用EOI命令、中断优先级采用完全嵌套方式,8级中断源的中断类型分别为08H—0FH,试编写初始化程序。
解:
MOV DX,20H
MOVAL,00010011B
OUTDX,AL ;写入ICW1
MOV DX,21H
MOVAL,08H
OUTDX,AL ;写入ICW2
MOV AL,00001101B
OUTDX,AL ;写入ICW4
XORAL,AL
OUTDX,AL ;写入OCW1
。
。
。
。
。
。
STI
。
。
。
。
。
。
30、设8259A的端口地址为20H、21H,请读入IRR、ISR、IMR寄存器的内容,并相继保存在数据段2000H开始的内存单元中;若该8259A为主片,请用查询方式,查询哪个从片有中断请求。
解:
MOV AL,xxx01010B 发OCW3,欲读取IRR的内容
OUT20H,AL
IN AL,20H 读入并保存IRR的内容
MOV(2000H),AL
MOVAL,xxx01011B 发OCW3,欲读取ISR的内容
OUT20H,AL
IN AL,20H 读入并保存ISR的内容
MOV(2001H),AL
INAL,21H 读入并保存ISR的内容
MOV(2002H),AL
MOVAL,xxx0110xB 发OCW3,欲查询是否有中断请求
OUT20H
IN AL,20H 读入相应状态,并判断最高位是否为1
TESTAL,80H
JZDONE
ANDAL,07H 判断中断源的编码
…………
DONE:
HLT
33、8253的计数通道0连接如下图,试回答
(1)计数通道0工作于何种方式,并说明理由。
(2)写出计数通道0的计数初值,CLK0输入的频率是多少?
并说明理由。
解:
(1)方式2,因为是周期性波形,并且波形不对称
(2)N=1ms/400ns=2500,2.5MHZ
34、如图所示8086与DAC0832的接口
(1)在图中画出单极性输出的电路图。
(2)写出输出锯齿波的程序片断,包括延时程序。
解:
DACONTOR1:
MOVDX,81H
MOVAL,00H;延时
DACON1:
CALL DELAY
OUTDX,AL
INCAL;数字量加1
JMPDACON1;循环转换得到锯齿波
HLT
DELAY PROC NEAR
PUSHBX
MOVBX,1000
NEXT:
DECBX
JNZNEXT
POP BX
RET
DELAY ENDP
35、将两片6264连接到8088系统总线上,要求其内存地址范围为7000H-73FFH,试画出连接图。
解:
70000H=01110000000000000000,则连接图如图所示。
36、设8253三个计数器的端口地址为201H、202H、203H,控制寄存器端口地址200H。
输入时钟为2MHz,让1号通道周期性的发出脉冲,其脉冲周期为1ms,试编写初化程序段。
解:
要输出脉冲周期为1ms,输出脉冲的频率是1000,当输入时钟频率为2MHz时,计数器初值是2000使用计数器1,先读低8位,后读高8位,设为方式3,二进制计数,控制字是76H。
设控制口的地址是200H,计数器0的地址是202H。
程序段如下:
MOV DX,200H
MOV AL,76H
OUT DX,,AL
MOV DX,202H
MOVAX,2000
OUT DX,AL
MOV AL,AH
OUT DX,AL
8、编写程序设计一个16位带符号数和32位带符号数相乘程序。
(DX、AX)*CX->DX、CX、AX,为有符号数
解:
MULS48:
MOV [1000],0 ;1000单元作为负数标志
CMP DX,0 ;乘数为负数吗?
JNS CHKK ;否,则转CHKK
NOT AX ;是,则取补码
NOT DX
ADD AX,1
ADC DX,0
NOT [1000] ;负数标志置1
CHKK:
CMP CX,0 ;乘数为负数吗?
JNS GOMUL ;否,则转GOMUL
NOT CX ;是,则取补码
ADD CX,1
NOT [1000] ;将负数标志取反
GONUL:
CALLMUL48 ;调用32位*16位无符号数乘法程序
CMP [1000],0 ;结果为正数吗?
JZ EXIT0 ;是正数,则转移
NOT AX ;是负数,则取补码
NOT CX
NOT DX
ADD AX,1
ADC CX,0
ADC DX,0
EXIT0:
RET
10、编写程序段设计一个实现16位非组合BCD码减法的程序。
解:
SUBCD:
MOV CH,AH ;AX-BX->AX,为非组合BCD码
SUB AL,BL
AAS
XCHGAL,CH
SBB AL,BH
AAS
MOV AH,AL
MOV AL,CH
RET
14、编写程序用XLAT指令将小于16的二进制数转换成ASCII表示的16进制数。
解:
START:
JMP BINASC
ASCII DB '0123456789ABCDEF'
BINASC:
PUSHBX
AND AL,0FH ;清除AL中高4位
LEA BX,ASCII;BX指向ASCII表
XLAT ;转换为ASCII码
POP BX
RET
16、变量DATAX和DATAY定义如下:
DATAX DW 0148H
DW 2316H
DATAY DW 0237H
DW 4052H
按下述要求写出指令序列:
(1)DATAX和DATAY中的两个双字数据相加,和存放在DATAY和DATAY+2中。
(2)DATAX和DATAY中的两个字数据相加,和存放在DATAY开始的字单元中。
解:
(1) MOV AX,DATAX
ADD AX,DATAY
MOV BX,DATAX+2
ADD BX,DATAY+2
MOV DATAY,AX
MOV DATAY+2,BX
(2) MOV AX,DATAX
ADD DATAY,AX
MOV AX,DATAX+2
ADC DATAY+2,AX
19、编写程序段,比较两个5字节的字符串OLDS和NEWS,如果OLDS字符串与NEWS不同,则执行NEW_LESS,否则顺序执行程序。
解:
MOV CX,5
CLD
REPZ CMPSB
JNZ NEW_LESS
15、分析下列程序的功能,写出堆栈最满时各单元的地址及内容。
1000:
0F2H
B1
1000:
0F4H
3
1000:
0F6H
B1
1000:
0F8H
2
1000:
0FAH
B1
1000:
0FCH
1
1000:
0FEH
RETN
1000:
100H
16、写出分配给下列中断类型号在中断向量表中的物理地址。
(1) INT 12H
(2) INT 8
解:
(1)00048h
(2)00020h
22、请写出下列指令单独执行后,有关寄存器及存储单元的内容。
假设指令执行前(DS)=(ES)=3000H,(AX)=2000H,(BX)=1200H,(SI)=2,
(31200H)=2400H,(31202H)=90F7H。
(1)ADD ES:
[BX],900H
(2)SUB [BX+SI],AX
解:
(1)(31200H)=2D00H
(2)(31202H)=70F7H
26、给定寄存器及存储单元的内容为:
(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=32H,(20101)=51H,(20102)=26H,(20103)=83H,(21200)=1AH,(21201)=B6H,(21202)=D1H,(21203)=29H。
试说明下列各条指令执行完后,AX寄存器中保存的内容是什么。
(1)MOV AX,1200H
(2)MOV AX,BX (3)MOV AX,[1200H]
解:
(1) MOV AX,1200H ;执行后,(AX)=1200H
(2) MOV AX,BX ;执行后,(AX)=(BX)=0100H
(3) MOV AX,[1200H]
直接寻址,EA=[VAL]=1200H,PA=(DS)×10H+EA=2000H×10H+1200H=21200H,执行后,(AX)=B61AH
微型计算机主要有哪些性能指标?
答:
微型计算机的性能技术指标主要有字长、时钟主频、内存容量、运算速度等。
已知某DAC的最小分辨电压VLSB=5mV,满刻度输出电压Vom=10V,试求该电路输入二进制数字量的位数n应是多少?
答:
简述8086CPU的最小工作模式和最大工作模式。
答:
8086CPU有两种工作模式,即最小工作模式和最大工作模式。
当MN/
引脚接高电平时是最小工作模式,最小工作模式的特点是:
(1)适用于单一处理机系统。
(2)不需总线控制器8288(对内存储器和I/0接口所需的控制信号都由CPU直接提供)。
(3)M/
管脚可直接引用。
当MN/
引脚接地时是最大方式,最大模式的特点是:
(1)适用于多处理机系统。
需总线控制器8288(对内存储器和I/O接口所需的控制信号要由专用的总线控制器8288提供)。
(2)M/
管脚不可直接引用。
微机中实现定时控制的方法主要有哪几种?
答:
有三种定时方法:
(1)由硬件电路实现定时,这种电路必须通过改变电路参数来改变定时的要求,灵活性和通用性较差。
(2)通过软件程序实现定时,这种方法的优点是灵活性和通用性都很好,缺点是占用CPU时间,降低CPU的利用率。
(3)采用可编程的定时/计数器芯片来实现定时/计数的要求。
有点事参数设定灵活,又不占用CPU。
一台8位微型机,地址总线为16条,其存储器RAM容量为32K,首地址为4000H,且地址是连续的,问可用的最高地址是多少?
答:
如果32K的存储器起始单元的地址为0000H,32KB存储空间共占用15条地址线,
=7FFFH,故其范围为0000H~7FFFH,而现在首地址为400