MOV AH,0
LOOP AGAIN ;否则循环继续 STO: MOV AX,4C00H INT 21H ;返回DOS CSEG ENDS END START
4.6 假设数据项定义如下:
DATA1 DB ?HELLO !GOOD MORNING !? DATA2 DB 20 DUP(?)
用串操作指令编写程序段,使其分别完成以下功能: (1)从左到右将DATA1中的字符串传送到DATA2中。 (2)传送完后,比较DATA1和DATA2中的内容是否相同。 (3)把DATA1中的第3和第4个字节装入AX。
(4)将AX的内容存入DATA2+5开始的字节单元中。 解: (1)
MOV AX,SEG DATA1 MOV DS,AX
MOV AX,SEG DATA2 MOV ES,AX LEA SI,DATA1 LEA DI,DATA2 MOV CX,20 CLD
REP MOVSB (2)
LEA SI,DATA1 LEA DI,DATA2 MOV CX,20 CLD
REPE CMPSB 。。。 (3)
LEA SI,DATA1 ADD SI,2 LODSW
(4)LEA DI,DATA2 ADD DI,5 STOSW
4.7执行下列指令后,AX寄存器的内容是多少? TABLE DW 10,20,30,40,50 ENTRY DW 3 . .
.
MOV BX,OFFSET TABLE ADD BX,ENTRY MOV AX,[BX] 解:(AX)=1E00H
4.8 编写程序段,将STRING1中的最后20个字符移到STRING2中(顺序不变)。 解:首先确定STRING1中字符串的长度,因为字符串的定义要求以?$?符号结尾, 可通过检测?$?符确定出字符串的长度,设串长度为COUNT,则程序如下: LEA SI,STRING1 LEA DI,STRING2 ADD SI,COUNT-20 MOV CX,20 CLD
REP MOVSB
4.9 假设一个48位数存放在DX:AX:BX中,试编写程序段,将该48位数乘以2. 解: 可使用移位指令来实现。首先将BX内容逻辑左移一位,其最高位移入进位位CF,之后AX内容带进位位循环左移,使AX的最高位移入CF,而原CF中的内容(即BX的最高位)移入AX的最低位,最后再将DX内容带进位位循环左移一位,从而实现AX的最低位移入DX的最低位。 SHL BX,1 RCL AX,1 RCL DX,1
4.10 试编写程序,比较AX,BX,CX中带符号数的大小,并将最大的数放在AX中。
解:比较带符号数的大小可使用符号数比较指令JG等。 CMP AX,BX JG NEXT1
XCHG AX,BX
NEXT1:CMP AX,CX JG STO
MOV AX,CX STO:HLT
4.11 若接口03F8H的第1位(b1)和第3位(B3)同时为1,表示接口03FBH有准备好的8位数据,当CPU将数据取走后,b1和b3就不再同时为1了。仅当又有数据准备好时才再同时为1。
试编写程序,从上述接口读入200字节的数据,并顺序放在DATA开始的地址中。 解:即当从输入接口03F8H读入的数据满足ⅹⅹⅹⅹ1ⅹ1ⅹB时可以从接口03FBH输入数据。 LEA SI,DATA MOV CX,200
NEXT: MOV DX,03F8H WAIT: IN AL,DX
AND AL,0AH ;判断b1和b3位是否同时为1 CMP AL,0AH
JNZ WAIT ;b1和b3位同时为1则读数据,否则等待 MOV DX,03FBH IN AL,DX MOV [SI],AL INC SI
LOOP NEXT HLT
4.12 画图说明下列语句分配的存储空间及初始化的数据值。 (1)DATA1 DB ?BYTE?,12,12H,2 DUP(0,?,3) (2)DATA2 DW 4 DUP(0,1,2),?,-5,256H 解: (1) 存储空间分配情况如图(a)所示。 (2) 存储空间分配情况如图(b)所示。 第5章存储器系统
5.1 内部存储器主要分为哪两类? 它们的主要区别是什么? 解:
(1)分为ROM 和 RAM 。 (2)它们之间的主要区别是:
。ROM在正常工作时只能读出,不能写入。RAM则可读可写。 。断电后,ROM中的内容不会丢失,RAM中的内容会丢失。 5.2 为什么动态RAM需要定时刷新?
解:DRAM的存储元以电容来存储信息,由于存在漏电现象,电容中存储的电荷会逐渐泄漏,从而使信息丢失或出现错误。因此需要对这些电容定时进行“刷新”。 5.3 CPU寻址内存的能力最基本的因素取决于___________。 解:地址总线的宽度。
5.4 试利用全地址译码将6264芯片接到8088系统总线上,使其所占地址范围为32000H~33FFFH。
解:将地址范围展开成二进制形式如下图所示。 0011 0010 0000 0000 0000 0011 0011 1111 1111 1111
6264芯片的容量为8×8KB,需要13根地址线A0~A12。而剩下的高7位地址应参加该芯片的地址译码。 电路如图所示:
5.5 内存地址从20000H~8BFFFH共有多少字节?
解:共有8BFFFH-20000H+1=6C000H个字节。或432KB。
5.6 若采用6264芯片构成上述的内存空间,需要多少片6264芯片? 解:每个6264芯片的容量位8KB,故需432/8=54片。
5.7 设某微型机的内存RAM区的容量位128KB,若用2164芯片构成这样的存储器,需多少2164芯片?至少需多少根地址线?其中多少根用于片内寻址?多少根用于片选译码? 解:
(1)每个2164芯片的容量为64K×1bit,共需128/64×8=16片。 (2)128KB容量需要地址线17根。 (3)16根用于片内寻址。 (4)1根用于片选译码。
注意,用于片内寻址的16根地址线要通过二选一多路器连到2164芯片,因为2164芯片是DRAM,高位地址与低位地址是分时传送的。 5.8 现有两片6116芯片,所占地址范围为61000H~61FFFH,试将它们连接到8088系统中。并编写测试程序,向所有单元输入一个数据,然后再读出与之比较,若出错则显示“Wrong !“,全部正确则显示”OK !“。 解:连接如下图所示。测试程序段如下: OK DB ?OK!?,$
WRONG DB ?Wrong!?,$ …
MOV AX, 6100H MOV ES, AX MOV DI, 0
MOV CX, 1000H MOV AL, 55H REP STOSB MOV DI, 0
MOV CX, 1000H REPZ SCASB JZ DISP_OK
LEA DX, WRONG MOV AH, 9 INT 21H HLT
DISP_OK: LEA DX, OK MOV AH, 9 INT 21H HLT
5.9 甚什么是字扩展?什么是位扩展?用户自己购买内存条进行内存扩充,是在进行何种存储器扩展? 解:
(1)当存储芯片的容量小于所需内存容量时,需要用多个芯片构成满足容量要求的存储器,这就是字扩展。
(2)当存储芯片每个单元的字长小于所需内存单元字长时,需要用多个芯片构成满足字长要求的存储模块,这就是位扩展。
(3)用户在市场上购买内存条进行内存扩充,所做的是字扩展的工作。
5.10 74LS138译码器的接线图如教材第245页的图5-47所示,试判断其输出端Y0#、Y3#、Y5#和Y7#所决定的内存地址范围。
解:因为是部分地址译码(A17不参加译码),故每个译码输出对应2个地址范围:
Y0#:00000H ~ 01FFFH 和 20000H ~ 21FFFH Y3#:06000H ~ 07FFFH 和 26000H ~ 27FFFH Y5#:0A000H ~ 0BFFFH 和 2A000H ~ 2BFFFH Y7#:0E000H ~ 0FFFFH 和 2E000H ~ 2FFFFH
5.11 某8088系统用2764 ROM芯片和6264 SRAM芯片构成16KB的内存。其中,ROM的地址范围为0FE000H~0FFFFFH,RAM的地址范围为0F0000H~0F1FFFH。试利用74LS138译码,画出存储器与CPU的连接图,并标出总线信号名称。
解:连接如下图所示。
5.12 叙述EPROM的编程过程,并说明EPROM和EEPROM的不同点。(不要求) 解:
(1)对EPROM芯片的编程过程详见教材第215~217页。 (2)EPROM与EEPROM的不同之处为:
。EPROM用紫外线擦除,EEPROM用电擦除。
。EPROM是整片擦除,EEPROM可以整片擦除,也可以逐个字节地擦除。 5.13 试说明FLASH EEPROM芯片的特点及28F040的编程过程。(不要求) 解:
(1)特点是:它结合了RAM和ROM的优点,读写速度接近于RAM,断电后信息又不会丢失。
(2)28F040的编程过程详见教材第222~223页。
5.14 什么是Cache?它能够极大地提高计算机的处理能力是基于什么原理? 解:
(1)Cache 是位于CPU与主存之间的高速小容量存储器。
(2)它能够极大地提高计算机的处理能力,是基于程序和数据访问的局部性原理。
5.15 若主存DRAM的的存取周期为70ns,Cache的存取周期为5ns,有它们构成的存储器的平均存取周期是多少?
解:平均存取周期约为 70×0.1ns + 5×0.9ns =11.5ns。 第6章输入输出和中断技术
6.1 I/O接口的主要功能有哪些? 有哪两种编址方式?在8088/8086系统中采用哪一种编址方式?
解: I/O接口主要需具有以下几种功能: (1)I/O地址译码与设备选择。保证任一时刻仅有一个外设与CPU进行数据传送。 (2)信息的输入输出,并对外设随时进行监测、控制和管理。必要时,还可以通过I/O接口向CPU发出中断请求。
(3)命令、数据和状态的缓冲与锁存。以缓解CPU与外设之间工作速度的差异,保证信息交换的同步。
(4)信号电平与类型的转换。I/O接口还要实现信息格式转换、电平转换、码制转换、传送管理以及联络 控制等功能。
I/O端口的编址方式通常有两种:一是与内存单元统一编址,二是独立编址。8088/8086系统采用I/O端口独立编址方式。
6.2 试比较4种基本输入输出方法的特点。(不要求)
解:在微型计算机系统中,主机与外设之间的数据传送有4种基本的输入输出方式:
无条件传送方式、查询工作方式、中断工作方式、直接存储器存取(DMA)方式。 它们各自具有以下特点:
(1)无条件传送方式适合与简单的、慢速的、随时处于“准备好”接收或发送数