当前位置:文档之家› 微机原理与接口技术试题及答案[1]

微机原理与接口技术试题及答案[1]

微机原理与接口技术

一、填空(每空1分,共20分)

1.下列各数均为二进制补码:a=00110010B b=01001010B c=11101001B d=10111010B,

试求下列运算的十进制数真值:a+b= d-c-a=

2.设机器字长为8位,写出真值-0010101B表示的二进制数原码、补码和反码。

原码= 补码= 反码=

3.MOV DL,86

ADD DL,0AAH

上述两条指令执行后,标志寄存器中各标志位和DL的值是:

DL CF= OF= AF= SF= ZF=

4.存储器芯片2114的存储量为1024×4,若用2114 构成16KB的存储器,需要片2114。5.设(CS)=4000H,(SS)=6000H,(IP)=200H,则IP所指的物理地址为。

6.设堆栈指针(SP)=0110H,顺序执行下面三条指令后,PUSH AX;PUSH BX;POP AX。SP的内容是。

7.设某程序中数据定义如下:

A DW ?

B DB 2 DUP(0,1)

C DB ‘1234’

D EQU $-A

则,变量D的值是。

其表示的意义是。

8.已知某门电路的I OH=15mA ,I OL=24mA ,它的I IL=0.2mA ,I IH=0.1mA 。若用这样的门可驱动同样的门理论上可驱动个。实际应用时,一般不超过个。

9.8086/8088在最大工作模式中,8086/8088CPU不直接提供用于

等控制信号。

10.在指令MOV AX,ES:[BX]中,采用的是寻址方式。

二、分析程序填空(每空2分,共20分)

1.如果当前(DS)=2000H,(BX)=1000H,(21000H)=0FFH,(21001H)=0FFH,程序如下:MOV CL,16

MOV AL,[BX]

INC BX

MOV AH,[BX]

ROL AL,CL

执行完之后,(AX)= ,CF= 。

2. DA1 DB 34

MOV AL,DA1

MOV AH,0

MOV CX,3

MOV DL,10

LOP:DIV DL

MOV BL,AH

MOV BH,0

PUSH BX

LOOP LOP

当执行完这段程序时,它向堆栈压了个数,压入的第一个数值是,执行后(AL)= 。

3.下面程序段是判断DA1和DA2两个字存储单元中的数是否同为正数,若是则将0→AX中,否则-1→ AX,试在每一个空白处各填上一条条件分支指令(两个空白处要求利用不同的标志位,选用适应的条件分支指令)。

MOV AX,DA1

MOV BX,DA2

XOR AX,BX

TEST BX ,8000H MOV AX ,0 JMP DONE NEXT :MOV AX ,-1 DONE :

4.下面程序段完成的功能是: 请将该程序补充完整。

X DB 25H Y DB ?

MOV AL ,X PLUS PLUS :MOV Y ,AL HLT

三、接口03FBH 的BIT5为状态标志,当该位为1时,表示外设忙;当其为0时,表示可以接受数据。当CPU 向接口03F8H 写入一个数据时,上述标志就置1;当它变为0状态时,又可以写入下一个数据。根据上述要求,编写程序,将当前数据段偏移地址为SEDA T 的顺序50个单元中的数据由接口输出。(12分)

四、编写程序,在屏幕上显示“西北师范大学物理与电子工程学院”的英文名称。要求:调用09H 号功能写出完整程序。(10分)

五、试判断8088系统中存储系统译码器74LS138的输出0Y ,4Y ,6Y 和7Y 所决定的内存地址范围,见图1。(8分)

六、已知SRAM 芯片如图2所示。(20分)

1.利用该芯片构成从B2000H ~BDFFFH 的内存,试画出连接电路图。(8分)

2.从地址B2000H 开始,顺序将00,01,…,FFH 重复写满上面构成的内存,编写程序。(6分) 00x

x Y x x ≥?=?

??

3.若发现上面构成的内存中无论写入什么数据,读出数据的D3总为1而其他各位均正常,试说明出现该故障的原因。(6分)

七、假定已定义了以下数据段

DA TA SEGMENT

BUF DW 7F6AH

COUNT DW ?

DA TA ENDS

试编程统计单元BUF中“1”的个数,存入COUNT单元。(10分)

2007—2008学院度第1学期微机原理

与接口技术课程期中考试试卷参考答

一、填空(每空1分,共20分)

1.a +b=01111100=+124;d-c-a=10011111=-97

2.原=10010101B ;补=11101011B ;反=11101010B

3.DL=30H,CF=1,OF=1,AF=1,SF=0,ZF=0

4.32

5.40200H

6.SP=010EH

7.11 ;变量A,B,C所占有的存储单元的字节数。

8.120 ;20

9.存储器或I/O读写的读写命令

10.寄存器间接寻址

二、程序填空(每空2分,共20分)

1.(AX)=0FFFFH ;CF=1

2.3 ;0004H ;(AL)=00H

3.JS NEXT ;JZ NEXT

4.OR AL,AL ;JNS ; NEG AL

三、(12分)

解:这是利用查询外设状态,向接口输出数据的问题,每输出一个数据,等待外设不忙,在输出下一个数据,依次将要求的数据全部输出。

编程如下:

SEDAT: MOV CL,50

MOV SI,OFFSET SEDAT

GOON:MOV DX,03FBH

WAIT: IN AL,DX ;取外设状态

TESE AL,20H

JNZ WAIT

MOV AL,[SI]

MOV DX,03F8H

OUT DX,AL ;由接口输出数据

INC SI

DEC CL

JNZ GOON

HLT

四、(10分)

解:

DATA SEGMENT

STRING DB ‘Physics & Electronics Engineering College of Northwest Normal University.’,0DH,0AH,‘$’

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

MOV AX,DATA

MOV DX,AX

MOV DX,OFFSET STRING

MOV AX,09H

MOV AX,4CH

INT 21H

CODE ENDS

END

五、(8分)

解:根据图1所示的译码电路,我们分析此译码器的特征如下:

A19 A18 A17 A16 A15 A14 A13 A12 …Y0 Y4 Y6 Y7 地址范围1 ×0 0 0 0 0 0 √译码输入1 0 0 0 0 0 0 0 0 80000H

81FFFH 1 0 0 0 0 0 0 1 1

1 1 0 0 0 0 0 0 0 C0000H

C1FFFH 1 1 0 0 0 0 0 1 1

1 0 0 0 1 0 0 0 0 √88000H

89FFFH 1 0 0 0 1 0 0 1 1

1 1 0 0 1 0 0 0 0 C8000H

1 1 0 0 1 0 0 1 1 C9FFFH 1 0 0 0 1 1 0 0 0 √8C000H

8DFFFH 1 0 0 0 1 1 0 1 1

1 1 0 0 1 1 0 0 0 CC000H

CDFFFH 1 1 0 0 1 1 0 1 1

1 0 0 0 1 1 1 0 0 √8E000H

8FFFFH 1 0 0 0 1 1 1 1 1

1 1 0 0 1 1 1 0 0 CE000H

CFFFFH

1 1 0 0 1 1 1 1 1

六、(20分)

解:1、图2所示的SRAM芯片是一片容量为16KB的芯片,要构成的内存空间为48KB,因此需要三片SRAM芯片。画出连接图如图

所示。

2、按题目的要求编程如下:

PORWMY:MOV DX,0B000H

MOV DS,DX

MOV SI,20000H

MOV CX,0C000H

MOV AL,00H

GOON: MOV [SI],AL

INC SI

INC AL

LOOP GOON

HLT

3、这种故障很可能是总线上的D3

断开,没有连接到芯片上,当读内

存时,D3是悬空的,而悬空状态读

出来一般会呈现高电平。

也有可能D3与+5v短路,不小心碰

到一起,则有可能使D3总为高电平。但这种情况会使CPU

不能正常工作,甚至损坏器件。

七、(10分)

解:算法:一个字节中含有8位二进制数,先取1字节数

据,将其左移或右移,通过判断进位标志位CF,当CF=1

时计数,完成8次循环后,该1字节数据才处理完,然后

再取下1字节数据重复8次移位,判断计数,直到2个字

节数据都处理完为止。显然这是一个双重循环,内循环为

8次,外循环为2次。

流程图和完整程序如下:

DATA SEGMENT

BUF DB 7F6AH

COUNT DW ?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

MOV AX,DA TA

MOV DS,AX

MOV SI,OFFSET BUF

MOV CX,2;外循环次数CX

REPT0:XOR BX,BX;BX清零,存放结果寄存器MOV DH,08H;内循环次数

MOV AL,[SI];取第1个数

REPT1:ROR AL,1;AL右移1位

JNC NEXT;C F≠1转NEXT

INC BX;BX←BX+1,计数

NEXT:DEC DH;DH←DH-1

JNZ REPT1;DH≠0转REPT1

INC SI;SI←SI+1,修改取数地址

LOOP REPT0;CX≠0转REPT0

MOV COUNT,BX;保存“1”的个数的统计结果 MOV AH,4CH

INT 21H

CODE ENDS END

相关主题
相关文档 最新文档