精品文档
解:比较带符号数的大小可使用符号数比较指令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)无条件传送方式适合与简单的、慢速的、随时处于“准备好”接收或发送数据的外部设备,数据交换与指令的执行同步,控制方式简单。
(2)查询工作方式针对并不随时“准备好”、且满足一定状态才能实现数据的输入/输出的简单外部设备,其控制方式也比较简单,当CPU的效率比较低。
(3)中断工作方式是由外部设备作为主动的一方,在需要时向CPU提出工作请求,CPU在满足响应条件时响应该请求并执行相应的中断处理程序。这种工作方式使CPU的效率提高,但控制方式相对较复杂。 (4)DMA方式适合于高速外设,是4种基本输入/输出方式中速度最高的一种。
6.3 主机与外部设备进行数据传送时,采用哪一种传送方式,CPU的效率最高?(不要求) 解:使用DMA传送方式CPU的效率最高。这是由DMA的工作性质所决定的。
6.4 利用三态门芯片74LS244作为输入接口,接口地址为40FBH,试画出其与8088系统总线的连接图。 解:16位地址信号通过译码电路与74LS244芯片连接。其连接如下图所示。
6.5 某输入接口的地址为0E54H,输出接口的地址为01FBH,分别利用74LS244和74LS273作为输入和输出接口。试编写程序,使当输入接口的bit1、bit4和bit7位同时为1时,CPU将内存中DATA为首址的20个单元的数据从输出接口输出;若不满足上述条件则等待。
解:首先判断由输入接口读入数据的状态,若满足条件,则通过输出接口输出一个单元的数据;之后再判断状态是否满足,直到20个单元的数据都从输出接口输出。 LEA SI,DATA ;取数据偏移地址 MOV CL,20 ;数据长度送CL AGAIN: MOV DX,0E54H WAITT: IN AL,DX ;读入状态值
AND AL,92H ;屏蔽掉不相关位,仅保留bit1、bit4和bit7位状态 CMP AL,92H ;判断bit1、bit4和bit7位是否全为1 JNZ WAITT ;不满足bit1、bit4和bit7位同时为1则等待 MOV DX,01FBH MOV AL,[SI]
OUT DX,AL ;满足条件则输出一个单元数据 INC SI ;修改地址指针
LOOP AGAIN ;若20个单元数据未传送完则循环
6.6 8088/8086系统如何确定硬件中断服务程序的入口地址?
解:8088/8086系统的硬件中断包括非屏蔽和可屏蔽两种中断请求。每个中断源都有一个与之相对应的中断类型码n。系统规定所有中断服务子程序的首地址都必须放在中断向量表中,其在表中的存放地址=n×4,(向量表的段基地址为0000H)。即子程序的入口地址为(0000H:n×4)开始的4个单元中,低位字(2个字节)存放入口地址的偏移量,高位字存放入口地址的段基地址。 6.7 中断向量表的作用是什么?如何设置中断向量表?
解:中断向量表用于存放中断服务子程序的入口地址,位于内存的最低1K字节(即内存中0000H~003FFH区域),共有256个表项。
设置中断向量表就是将中断服务程序首地址的偏移量和段基址放入中断向量表中。
精品文档
精品文档
如:将中断服务子程序CLOCK的入口地址置入中断向量表的程序如下: MOV AX,0000H
MOV DS,AX ;置中断向量表的段基地址
MOV SI,<中断类型码×4> ;置存放子程序入口地址的偏移地址 MOV AX,OFFSET CLOCK
MOV [SI],AX ;将子程序入口地址的偏移地址送入中断向量表 MOV AX, SEG CLOCK
MOV [SI+2],AX ;将子程序入口地址的段基址送入中断向量表 6.8 INTR中断和NMI中断有什么区别?
解:INTR中断为可屏蔽中断,中断请求信号高电平有效。CPU能否响应该请求要看中断允许标志位IF的状态,只有当IF=1时,CPU才可能响应中断。
NMI中断为非屏蔽中断,请求信号为上升沿有效,对它的响应不受IF标志位的约束,CPU只要当前指令执行结束就可以响应NMI请求。
6.9 在中断服务程序的入口处,为什么常常要使用开中断指令?
解:中断服务程序分为两种,一种是在进入服务子程序后不允许被中断,另一种则可以被中断。在入口处使用开中断指令表示该中断服务程序是允许被中断的服务程序,即在进入服务子程序后允许CPU响应比它级别高的中断请求。
6.10 试说明8088CPU可屏蔽中断的响应过程。 解:可屏蔽中断的响应过程主要分为5个步骤,即:
(1)中断请求。外设在需要时向CPU的INTR端发出一个高电平有效的中断请求信号。
(2)中断判优。若IF=1,则识别中断源并找出优先级最高的中断源先予以响应,在其处理完后,再响应级别较低的中断源的请求。
(3)中断响应。中断优先级确定后,发出中断的中断源中优先级别最高的中断请求就被送到CPU。 (4)中断处理。
(5)中断返回。中断返回需执行中断返回指令IRET,其操作正好是CPU硬件在中断响应时自动保护断点的逆过程。即CPU会自动地将堆栈内保存的断点信息弹出到IP、CS和FLAG中,保证被中断的程序从断点处继续往下执行。
6.11 CPU满足什么条件能够响应可屏蔽中断? 解:
(1)CPU要处于开中断状态,即IF=1,才能响应可屏蔽中断。 (2)当前指令结束。
(3)当前没有发生复位(RESET)、保持(HOLD)和非屏蔽中断请求(NMI)。
(4)若当前执行的指令是开中断指令(STI)和中断返回指令(IRET),则在执行完该指令后再执行一条指令,CPU才能响应INTR请求。
(5)对前缀指令,如LOCK、REP等,CPU会把它们和它们后面的指令看作一个整体,直到这个整体指令执行完,方可响应INTR请求。
6.14 单片8259A能够管理多少级可屏蔽中断?若用3片级联能管理多少级可屏蔽中断?(不要求) 解:因为8259A有8位可屏蔽中断请求输入端,故单片8259A能够管理8级可屏蔽中断。若用3片级联,即1片用作主控芯片,两片作为从属芯片,每一片从属芯片可管理8级,则3片级联共可管理22级可屏蔽中断。 6.16 具备何种条件能够作输入接口?何种条件能够作输出接口?
解:对输入接口要求具有对数据的控制能力,对输出接口要求具有对数据的锁存能力。
6.17 已知(SP)=0100H,(SS)=3500H,(CS)=9000H,(IP)=0200H,(00020H)=7FH,(00021H)=1AH,(00022H)=07H,(00023H)=6CH,在地址为90200H开始的连续两个单元中存放一条两字节指
精品文档