模拟试题二答案



一、选择题(每空2分,共10分。)

1、设机器字长为8位,十进制123与十进制345相加,所得结果的二进制表示为(A )。

A.11010100B,进位标志CF为1

B.11010100B

C.468

D.1D4H

2、冯·诺伊曼结构的组成部分包括( A )、计算器、存储器、输入设备和输出设备。

A.控制器

B.电子管

C.晶体管

D.DMA通道

3、执行指令AND AX,00H后,AX的值为( C )。

A.1

B.10H

C.0

D.10

4、指令ADD 15H,BX 执行的效果是(C )。

A.BX值为15H

B.15H的值为BX

C.立即数不能做目的操作数,不能编译和执行

D.BX中的值与15H相加,所得结果存入BX

5、状态标志位ZF的作用是 (A )。

A.全零标志

B.符号位

C.奇偶校验位

D.溢出标志

二、简答题(每题10分,共50分。)

1、设计I/O接口电路时一般遵循“输出要锁存,输入要缓冲”的原则,为什么?

答:CPU运行速度较快,外设速度相对较慢,通过锁存器保持CPU的输出信号;CPU的数据线是公用的,任何外设都不能单独占用数据线,通过缓冲器可以将外设和数据线在不需要的时候隔离。

2、8086 CPU能处理哪些类型的中断,这些中断的优先级是如何排列的?

答:内部中断和外部中断,内部中断包括内部硬中断和内部软中断,外部中断包括可屏蔽和不可屏蔽中断。

中断优先级为:

内部中断>不可屏蔽中断>可屏蔽中断>单步中断

3、8086微处理器内部结构如下图所示,请指出CS,DS,SS,ES,SI寄存器的作用。

答: 段地址寄存器包括代码地址寄存器CS、数据段寄存器DS,堆栈段寄存器SS,附加段寄存器ES。IP是指令指针寄存器。

4、分别给出以下指令中目标操作数和源操作数的寻址方式。

(7)MOV AX,[DI] ;寄存器间接寻址

(8)JMP BX ;段内间接寻址

(9)IN AL,23H ;直接端口寻址

(10)IN AL,DX ;间接端口寻址

5、设字长为8位,用二进制计算12+34的结果,并说明对以下状态标志的影响

CF:进位标志

AF:辅助进位

SF:符号位

PF:奇偶校验位

OF:溢出标志

答:

00001100

+ 00100010

- - - - - - - -

00101110

CF:进位标志 0

AF:辅助进位 0

SF:符号位 0

PF:奇偶校验位 1

OF:溢出标志 0

三、程序阅读题(每题10分,共40分。)

1、阅读下述代码,回答问题。

MOV AX,0

MOV BX,1

MOV CX,100

L1:ADD AX,BX

INC BX

DEC CX

JNZ L1

(1)程序实现的功能是什么?

(2)程序执行后,AX,BX,CX中的值分别是多少?

答:

计算1+2+3+…+100的值,最终保存在AX中

程序执行后

AX=5050

BX=101

CX=0

2、阅读下述代码,回答问题。

STR DB 'COMPUTER'

MOV CX,8

MOV AL,1

LEA BX,STR ①

L1:CMP BYTE PTR [BX],‘U’ ②

JZ L2

INC BX

INC AL

LOOP L1

L2: HALT

(1)代码①的作用是什么?

答: 将STR变量的首地址送BX。

(2)代码②的作用是什么?

答: 比较BX间接寻址的字节是否等于’U’

(3)分析程序实现的功能,并说明执行后AL寄存器的值是什么。

答: 计算字母’U’在字符串中出现的位置。AL值为5。

3、阅读下述代码,回答问题。

MOV AX,00H

PUSH AX

POP BX

MOV AX,3F5FH

MOV CX,4

ROR AL,CL

AND AL,0FH

每行代码执行后,寄存器AX,BX的值如何变化?

答:

MOV AX,00H 执行后 AX= 00H

PUSH AX 执行后 AX= 00H

POP BX 执行后 BX= 00H

MOV AX,3F5FH 执行后 AL= 5FH

MOV CX,4

ROR AL,CL 执行后 AL= F5H

AND AL,0FH 执行后 AL= 05H

4、阅读下述原理图及代码,回答问题。

CLK0输入信号为2MHz.

io2 = 400h

code segment 'code' ;定义代码段

assume cs:code

start:

mov al, 00110100b; 计数器0,16位,方式2,二进制

mov dx,io2+6; 8086 A0A1,8253 A0A1 = 11,奇地址,控制端地址

out dx,al

mov ax,20000

mov dx,io2 ; 计数器0 2e6/s / 2e4 = 100 hz

out dx,al

mov al,ah

out dx,al

mov al,01010110b; 计数器1,低8位,方式3,二进制

mov dx,io2+6

out dx,al

mov al,100

mov dx,io2+2 ; 计数器1

out dx,al

; 20000*100 = 2E6

wait1: jmp wait1

code ends ;代码段结束

end start

回答程序的功能,并判断发光二级管的状态如何变化,示波器上的方波频率为多少Hz?

答:

方波频率1Hz,LED每0.5秒点亮,0.5秒熄灭。

N = 计数器0 初值 20000 * 计算机1初值 100;

输入信号2E6 / N =>输出 1 sec。