ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
START:
MOV AX, DATA
MOV DS, AX
MOV ES, AX
MOV AX, STACK
MOV SS, AX
LEA SP, TOP
MOV CX, N
LEA SI, ASC1
ADD SI, CX
LEA DI, ASC2
L1:
DEC SI
MOV AL, [SI]
MOV [DI], AL
INC DI
LOOP L1
MOV AH, 4CH ;返回DOS
MOV AL, 0
INT 21H
CODE ENDS
19. 解:程序如下:
STACK SEGMENT STACK 'STACK'
DW 100H DUP(?)
TOP LABEL WORD
STACK ENDS
DATA SEGMENT
VAR DW 2100, 1750, 2410
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
START:
MOV AX, DATA
MOV DS, AX
MOV ES, AX
MOV AX, STACK
MOV SS, AX
LEA SP, TOP
MOV AX, VAR
CMP AX, VAR+2
JBE L1
XCHG AX, VAR+2
L1:
CMP AX, VAR+4
JBE L2
XCHG AX, VAR+4
L2:
MOV VAR, AX
MOV AX, VAR+2
CMP AX, VAR+4
JBE L3
XCHG AX, VAR+4
MOV VAR+2, AX
L3:
MOV AH, 4CH ;返回 DOS
MOV AL, 0
INT 21H
CODE ENDS
END START
如果VAR中保存的为有符号数,则只需将上述程序中的3条JBE指令改成JLE指令。
21. 解:
XOR DX, DX
MOV CX, 8
L1:
SHL BL, 1
RCL DX, 1
SHL AL, 1
RCL DX, 1
LOOP L1
23. 解:假设字变量VAR1、VAR2和VAR3中至少有两个相等,程序段如下:
MOV AX, VAR1
CMP AX, VAR2
JNZ L1
CMP AX, VAR3
JNZ L2
MOV AX, -1
L1:
CMP AX, VAR3
JNZ L3
MOV AX, VAR2
LEA SI, VAR2
JMP L4
L3:
LEA SI,VAR1
JMP L4
L2:
MOV AX, VAR3
LEA SI, VAR3
L4:
25. 答:(BX)=C02DH
32. 提示:在n个字节变量中存入1,每次报数时相当于加上该变量的内容;当报数到m时该人出列,相当于使变量内容为0,其编号为其相当偏移地址,因此最好采用寄存器相当寻址方式。这样处理的好处是,继续报数时不必考虑已出列的人,只是他们对后续报数的影响是加0,也就是说他已不起作用。
34. 提示:显示部分应调用33题编写的显示子程序。
43. 解:定义的宏指令如下:
TRANSSEG MACRO DATA
MOV AX, DATA
MOV DS, AX
MOV ES, AX
ENDM
44. 解:定义的宏指令如下:
INPUTSTR MACRO BUF
LEA DX, BUF
MOV AH, 0AH
INT 21H
ENDM
45. 解:定义的宏指令如下:
DISPSTR MACRO BUF
LEA DX, BUF
MOV AH, 09
INT 21H
ENDM
50. 答:从缓冲区FIRST传送100个字节到SECOND缓冲区。
51. 答:在STRING缓冲区中,找到第一个非空格字符时转到FOUND。
[返回试题目录]
第5章 多模块程序设计
--------------------------------------------------------------------------------
1. 有下面两个源程序模块:
模块1:
SSEG SEGMENT STACK
DW 100 DUP(?)
TOP LABEL WORD
SSEG ENDS
DSEG SEGMENT COMMON
VAR DB 50 DUP(?)
DSEG ENDS
ESEG SEGMENT AT 1000H
AREA DW 70 DUP(?)
ESEG ENDS
CSEG SEGMENT PUBLIC
…… } 300H个字节
CSEG ENDS
模块2:
SSEG SEGMENT STACK
DW 50 DUP(?)
TOP LABEL WORD
SSEG ENDS
DSEG SEGMENT COMMON
VECT DB 10
DSEG ENDS
CSEG SEGMENT PUBLIC
…… } 200H个字节
CSEG ENDS
假定连接程序按SSEG、DSEG和CSEG的次序安排各段,栈底从20000H地址开始,请说明连接后程序在内存中的配置情况。
2. 写出一组语句,指出变量VAR1和远程标号LAB1是外部标识符,变量VAR2和标号LAB2是本模块定义的、可供其它模块访问的标识符。
3. 在什么情况下EXTRN语句中的标号应赋予NEAR属性?
4. 假设(1)双字变量VAR1、字节变量VAR2和近程标号LAB1在模块1中定义,但供模块2和模块3使用;(2)字变量VAR3和远程标号LAB2在模块2中定义,而VAR3供模块1使用,LAB2供模块3使用;(3)远程标号LAB3在模块3中定义,供模块2使用。写出每个模块必需的EXTRN和PUBLIC语句。
5. 编写程序段实现,模块1中访问模块2中定义的字变量NUM1、NUM2、NUM3和NUMB4。
在单独的模块中编写一远程过程:SEARCH,完成在一个字节数组中查找给定的字节,如找到则将其在数组中的下标(即数组中的偏移量)返回给变量VAR1;如没有找到则给变量VAR1返回-1。变量VAR1和数组均为外部标识符(可在主程序模块中定义)。请同时写出调用此过程的主程序模块。
[参考答案]
1. 答:SSEG安排在1FFFFH以前的存储空间;DESG段的段地址2000H,占用52个字节;CSEG的段地址为2004H,占用500H个字节;ESEG的段地址为1000H,占用0E0H个字节。
3. 答:当交叉访问的标号与访问语句所在的代码段连接成同一个段时,EXTRN语句中的标号应赋予NEAR属性。
5. 解:模块1:
DATA1 SEGMENT PUBLIC
EXTRN NUM1:WORD,NUM2:WORD,NUM3:WORD,NUM4:WORD
DATA1 ENDS
模块2:
DATA2 SEGMENT PUBLIC
PUBLIC NUM1,NUM2,NUM3,NUM4
NUM1 DW 1200H
NUM2 DW 3425H
NUM3 DW 1234H
NUM4 DW 12ABH
DATA2 ENDS
[返回试题目录]
第6章 微处理器8086的总线结构和时序
--------------------------------------------------------------------------------
1. 微处理器的外部结构表现为 ,它们构成了微处理器级总线。
2. 微处理器级总线经过总线形成电路之后形成了 。
3. 什么是总线结构?简述计算机系统采用总线结构的优点。
4. 对教材p220页图6.2,若20位地址全部用74LS373八位锁存器锁存,数据线上使用
74LS245总线收发器,试画出系统总线结构图。
5. 在8086系统总线结构中,为什么要有地址锁存器?
6. 根据传送信息的种类不同,系统总线分为 、 和 。
7. 三态逻辑电路输出信号的三个状态是: 、 和 。
8. 微机中的控制总线提供
A.数据信号流;
B.存储器和I/O设备的地址码;
C.所有存储器和I/O设备的时序信号;
D.所有存储器和I/O设备的控制信号;
E.来自存储器和I/O设备的响应信号;
F.上述各项;
G.上述C,D两项;
H.上述C,D和E三项。
9. 微机中读写控制信号的作用是
A. 决定数据总线上数据流的方向;
B. 控制存储器操作读/写的类型;
C. 控制流入、流出存储器信息的方向;
D. 控制流入、流出I/O端口信息的方向;
E. 以上所有。
10. 系统总线中地址线的作用是
11. CPU和总线控制逻辑中信号的时序是由 信号控制的。
12. 欲使8086CPU工作在最小方式,引脚MN/MX应接 。
13. RESET信号是 时产生的,至少要保持4个时钟周期的 电平才有效,该信号结束后,CPU内的CS为 ,IP为 ,程序从 地址开始执行。
14. CPU在 状态开始检查READY信号, 电平时有效,说明存储器或I/O端口准备就绪,下一个时钟周期可进行数据的读写;否则,CPU可自动插入一个或几个 ,以延长总线周期,从而保证快速的CPU与慢速的存储器或I/O端口之间协调的进行数据传送。
15. 当M/IO引脚输出高电平时,说明CPU正在访问 。
16. 在构成8086最小系统总线时,地址锁存器8282的选通信号STB应接CPU的 信号,输出允许端OE应接 ;数据收发器8286的方向控制端T应接 信号,输出允许端OE应接 信号。
17. 8086微处理器级总线经过总线控制电路,形成了系统三总线,它们是 总线,地址总线 和数据总线 。
18. 8086CPU在读写一个字节时,只需要使用16条数据线中的8条,在 个总线周期内完成;在读写一个字时,自然要用到全部的16条数据线,只是当此字的地址是偶地址时,可在 个总线周期内完成,而对奇地址字的访问则要在 个总线周期内完成。
19. 8086最大系统的系统总线结构较最小系统的系统总线结构多一芯片 。
20. 简述8086最大系统总线结构中的总线控制器输出的信号AIOWC和AMWC的作用。
21. 微机在执行指令MOV [DI],AL时,将送出的有效信号有:
A.RESET B.高电平的M/IO信号 C. WR D. RD
22. 设指令 MOV AX,DATA 已被取到CPU的指令队列中准备执行,并假定DATA为偶地址,试画出以下情况下该指令执行的总线时序图。
(1) 没有等待的8086最小方式;
(2) 有一个等待周期的8086最小方式。
23. 上题中如指令分别为:
(1) MOV DATA+1,AX
(2) MOV DATA+1,AL
(3) OUT DX,AX (DX的内容为偶数)
(4) IN AL,0F5H
重做上题(1)。
24.8086最小方式下,读总线周期和写总线周期相同之处是:在 状态开始使ALE信号变为有效 电平,并输出 信号来确定是访问存储器还是访问I/O端口,同时送出20位有效地址,在 状态的后部,ALE信号变为 电平,利用其下降沿将20位地址和BHE的状态锁存在地址锁存器中;相异之处是从 状态开始的数据传送阶段。
[参考答案]
2. 系统总线
3. 总线结构是微型计算机系统结构的重要特点之一。它是主体部分与其它部分相连接的一种结构方式。其基本思想是,主体部分与其它多个不同部分都通过同一组精心设置的连线相连接,如以微处理器为主体的微处理器级总线和以主机板为主体的系统级总线。
微机所采用的总线式结构具有如下优点:
1) 简化了系统结构。整个系统结构清晰,连线少。
2) 简化了硬件设计。无论是自己选择芯片组成系统机还是在现成的系统机上开发微机应用系统,由总线规范给出了传输线和信号的规定,并对存储器和I/O设备如何“挂”在总线上都作了具体的规定,降低了硬件设计的复杂性。
3) 易于升级更新。在微机更新时,许多时候,不必全部废弃旧机子,而是直接更换主板及过时的部分零配件,以提高微机的运行速度和内存容量。比直接买新微机更经济。
4) 系统扩充性好。一是规模扩充,二是功能扩充。
规模扩充仅仅需要多插一些同类型的插件;功能扩充仅仅需要按总线标准设计一些新插件,插入微机的扩充插槽中即可,这使系统扩充既简单又快速可靠,还便于查错。
7. 高电平、低电平、高阻态
8. H
9. E
13.系统加电或操作员按面板上的RESET键 高 0FFFFH 0 0FFFF0H
16.ALE 地 DT/R DEN
18.1 1 2
24 T1 高 M/IO T1 低 T2
[返回试题目录]
第 7 章 存储器系统
--------------------------------------------------------------------------------
1. 用下列RAM芯片构成32KB存储器模块,各需多少芯片?16位地址总线中有多少位参与片内寻址?多少位可用作片选控制信号?
(1) 1K×1 (2)1K×4
(3) 4K×8 (4)16K×1
2. 若存储器模块的存储容量为256KB,则利用上题中给出的RAM芯片,各需多少块?20位地址总线中有多少位参与片内寻址?多少位可用作片选控制信号?
3. 一台8位微机系统的地址总线为16位,其存储器中RAM的容量为32KB,首地址为4000H,且地址是连续的。问可用的最高地址是多少?
4. 某微机系统中内存的首地址为4000H,末地址为7FFFH,求其内存容量。
5. 为地址总线为16位的某8位微机设计一个容量为12KB的存储器,要求ROM区为8KB,从0000H开始,采用2716芯片;RAM区为4KB,从2000H开始,采用2114芯片。试画出设计的存储器系统的连线图。
6. 一台8位微机系统需将内存RAM扩充8KB,其扩充存储空间为8000H开始的连续存储区。设系统的地址总线为 ~ ,数据总线为 ~ ,控制总线为 和 ,存储器芯片用2114。画出扩充的存储器模块的连接线路图。地址译码器选用3-8译码器74LS138,需要的门电路可自行选择。
7. 选用合适的存储芯片和译码芯片为8086 CPU (工作于最小模式)设计一个8KB的ROM和16KB的RAM的存储器系统。
8. 8088/8086/80286/80386/80486/Pentium/PentiumⅡ/PentiumⅢ的寻址范围各为多少?
9. 简述高速存储器Cache的基本工作原理。
[参考答案]
1. 构成32KB存储器所需芯片数目、片内寻址及片选译码的地址线见下表所示。
表7-1 芯片数目、片内寻址和片选译码的地址线的关系
RAM 芯片
需芯片数目
片内寻址地址线
片选译码地址线
1K×1
256
,10位
,6位
1K×4
64
,10位
,6位
4K×8
8
,12位
,4位
16K×4
4
,14位
,2位
3.由首地址为4000H及容量为32KB可知,该存储器中RAM的寻址范围为4000H~0BFFFH,则可用的最高地址为0BFFFH
5. 从题图可知,存储器选用高位地址线 中的最高两位 和 作为译码输入,采用部分译码法形成片选送控制信号,地址有重叠区。
4组RAM 的基本地址分别为:
0000H~03FFH, 4000H~43FFH
8000H~83FFH, 0C000H~0C3FFH
每组的地址范围分别为:
0000H~3FFFH, 4000H~7FFFH
8000H~0BFFFH, 0C000H~0FFFFH
9. 不同档次的PC机因其使用的CPU的地址总线位数不同,其能力也不相同,寻址范围等于 个字节,其中m 为地址总线位数。
表7-1 不同类型CPU的寻址范围
CPU
数据总线位数
地址总线位数
寻址范围
8086/8088
8
20
1 MB
80286
16
24
16 MB
80386/80486
32
32
4 GB
Pentium
32
32
4 GB
Pentium Ⅱ/Ⅲ
32
36
64 GB
[返回试题目录]
第8章 高档微机的某些新技术
--------------------------------------------------------------------------------