微机原理及接口技术
第一部分客观题
一、单项选择题(每小题2分,共10分)
1. 寄存器ECX的低16位部分可以用_____________表达。
A EX
B CX
C CH
D CL
2. 8086处理器执行“OUT DX,AL”指令时,AL的数据出现在__________上输出给外设。
A 控制总线
B 地址总线
C 电源和地线
D 数据总线
3. 与DRAM相比,SRAM的特点是_____________。
A 集成度高、存取周期长
B 集成度低、存取周期长
C 集成度高、存取周期短
D 集成度低、存取周期短
4. 使用语句“var dword 3721”定义的变量var在主存占用_________个字节存储空间。
A 1
B 2
C 4
D 8
5. 用8K×8结构SRAM芯片构成64000H~6FFFFH地址围的存储器,需要使用__________片。
A 4
B 6
C 8
D 10
二、对错判断题(每小题2分,共10分)(说明:正确的选“A”,错误选“B”)
6. IA-32处理器设置的中断标志IF=0是关中断,表示禁止部中断和外部中断的所有中断请求。X
7. 已知var是一个变量,语句“add esi,byte ptr var”没有语法错误。X
8. DMA传输由DMA控制器控制,无需处理器执行I/O指令。V
9. 高性能计算机中常使用Cache(高速缓冲存储器)提高主存性能。V
10. 向某个I/O端口写入一个数据,一定可以从该I/O端口读回这个数据。V
第二部分主观题
一、填空题(每空2分,共10分)
1. 8086处理器引脚有3个最基本的读写控制信号,它们是M/IO* ,_RD*________和_____W/R* _____。
2. 逻辑地址由___段基地址_______和偏移地址两部分组成。代码段中下一条要执行的指令由CS和_____指针IP_____寄存器指示,后者在实地址模型中起作用的仅有_____指针_____寄存器部分。
二、问答题(每小题6分,共30分)
1. 什么是JMP指令的近(near)转移和远(far)转移?
jmp指令的近转移是指在同一个段里面的转移,也叫做段近转移,用汇编编码就是这样的jmp near ptr 标号
jmp指令的远转移是指段与段之间的转移,就是说不在同一个段的转移,用汇编编码就是这样的jmp far ptr 标号
2. 什么是存储访问的局部性原理,它分成哪两个方面的局部性?
程序局部性原理:虚拟存储管理的效率与程序局部性程序有很大关系。根据统计,进程运行时,在一段时间,其程序的执行往往呈现出高度的局限性,包括时间局部性和空间局部性。
1、时间局部性:是指若一条指令被执行,则在不久的将来,它可能再被执行。
2、空间局部性:是指一旦一个存储单元被访问,那它附近的单元也将很快被访问。
3. 举例说明什么是Intel 80x86处理器数据存储的小端方式(Little Endian)?小端模式,是指数据的高字节保存在存的高地址中,而数据的低字节保存在存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。
0000430: e684 6c4e 0100 1800 53ef 0100 0100 0000
0000440: b484 6c4e 004e ed00 0000 0000 0100 0000
在小端模式下,前32位应该这样读: 4e 6c 84 e6( 假设int占4个字节)
记忆方法: 地址的增长顺序与值的增长顺序相同
4. 使用MASM汇编程序,在数据段有一个语句“db 37h,21,’no’”,它将使处理器为其分配多少个字节的主存空间?从低地址开始每个地址单元的容依次是什么?
37h分配一个字节
21分配一个字节
no分配2个字节
所以共需分配4个字节,即2个字
5. ISA总线的时钟频率是8MHz,每2个时钟可以传送一个16位数据,计算其总线带宽。
由于:f=8MHz,T=1/f=1/8M秒,一个总线周期等于一个时钟周期
所以:总线带宽=16/(1/8M) = 128Mbps
所以:总线带宽=16/(1/8M*2) = 64Mbps
三、程序阅读题(每小题10分,共20分)
1. 下段程序执行后,ESI=33BBh (1),EDI=(2),CF= 0 (3)
mov esi,3388h
add esi,22h
xor edi,edi
2. 如下程序片段统计以0结尾的字符串中字符个数,请补充完整。
; 数据段
string byte 'Do what you can do.',0
; 代码段
xor ebx,ebx
again: cmp string[ebx],0
jz (1)_done_______
inc (2)____ebx____
jmp (3)___again_____
done: ...
四、程序设计题(每小题10分,共20分)
1. 编制一个程序片断,把保存在变量dataA和dataB中较大的数据取出后存入maxC。假设变量存放的是32位有符号数。
MOV AX, DATA ; 段初始化
MOV DS, AX
MOV AX, STACK
MOV SS, AX
MOV DX, WORD PTR BUFA+2 ; 按题意,将数送入DX,AX, BX, CX
MOV AX, WORD PTR BUFA
MOV BX, WORD PTR BUFB+2
MOV CX, WORD PTR BUFB
CMP DX, BX ; 先比高位字
JG MOVE_A ; A大
JL MOVE_B ; B大
CMP AX, CX ; 高位字相等就再比低位字
JAE MOVE_A ; A大
JMP MOVE_B ; B大
MOVE_A:
MOV WORD PTR BUFC+2, DX ; A大
MOV WORD PTR BUFC, AX
JMP EXIT
MOVE_B:
MOV WORD PTR BUFC+2, BX ; B大
MOV WORD PTR BUFC, CX
EXIT:
如果题目是bufa>bufb,则把1送入dx,bufa=bufb,则把0送入dx,bufa 修改: MOV AX, DATA ; 段初始化 MOV DS, AX MOV AX, STACK MOV SS, AX MOV DX, WORD PTR BUFA+2 ; 按题意,将数送入DX,AX, BX, CX MOV AX, WORD PTR BUFA MOV BX, WORD PTR BUFB+2 MOV CX, WORD PTR BUFB CMP DX, BX ; 先比高位字 JG MOVE_A ; A大 JL MOVE_B ; B大 CMP AX, CX ; 高位字相等就再比低位字 JA MOVE_A ; A大 JZ MOVE_0 ; 相等 JMP MOVE_B ; B大 MOVE_A: MOV DX, 1 ; A大 JMP EXIT MOVE_B: MOV DX, -1 ; B大 JMP EXIT MOVE_0: MOV DX, 0 EXIT: 2. 设8253计数器1工作于方式1,按二进制计数,计数初值为400。假设该8253芯片计数器0~3以及控制字I/O地址依次为60H~63H。编写它的初始化程序段。MOV AL,15H 8253计数器1 OUT 61H,AL MOV AX,FA0H OUT 41H,AL MOV AL,AH OUT 41H,AL