第5章 汇编程序设计
1、程序的三种基本结构是什么?请分别画出各自核心部分的流程图。 P66
2、请画出将1字节二进制数据转化成十六进制数显示的流程图。 自己画
3、编程实现两个字节变量相乘送字变量的程序。 答:DATA SEGMENT
A DB l2H B DB 34H C DW ? DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AL,A MUL B
MOV C,AX :C=A×B MOV AH,4CH ;返回DOS INT 21H CODE ENDS
END START
4、编程实现从键盘接收2个一位十进制数并计算和显示它们的积。(如输入7和9则显示为:7*9=63) 答:CODE SEGMENT
ASSUME CS:CODE
AGAINl:MOV AH,1 ;录入第一位
INT 2lH CMP AL,'0' JB AGAINl CMP AL,'9' JA AGAINl MOV DH,AL SUB DH,30H
MOV DL,'*’ ;显示”*” MOV AH,2 INT 21H
AGAIN2:M0V AH,1 ;录入第二位
INT 21H
CMP AL,‘0’
JB AGAIN2 CMP AL,‘9’ JA AGAIN2 SUB AL,30H
MUL DH ;相乘
AAM ;分离十位和个位 MOV DH,AL ;暂存个位 MOV DL,AH :显示十位 ADD DL,30H MOV AH,2 INT 21H
MOV DL,DH ;显示个位 ADD DL,30H INT 21H
MOV AH,4CH INT 21H CODE ENDS
END AGAINl
5、编程实现从键盘接收两位十六进制数并将其转化为等值的十进制数显示出来(如输入7CH=124,要求至少设计一个子程序)
自己写
6、编程实现三个变量值的排序(分别用无符号数和有符号数处理)。 答:实现A、B、C三个变量从小到大排序的程序如下。 DATA SEGMENT
A DB l2H B DB 34H C DB 23H DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START:MOV AX,DATA
MOV DS,AX MOV AL,A CMP AL,B
JBE NEXTl ;无符号,有符号用JLE XCHG AL,B MOV A,AL NEXTl:CMP AL,C
JBE NEXT2 :无符号,有符号用JLE XCHG AL,C MOV A,AL NEXT2:MOV AL,B
CMP AL,C
JBE NEXT3 ;无符号,有符号用JIE
XCHG AL,C MOV B,AL
NEXT3:MOV AH,4CH ;返回DOS
INT 21H CODE ENDS
END START
7、编程实现任意个有符号字节数据之和(和要求用字变量存放)。 答:DATA SEGMENT
A DB …………. ;任意个字节数据 N EQU $-A ;元素个数 SUM DW ? DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA STAR:MOV AX,DATA MOV DS,AX LEA SI,A XOR DX,DX MOV CX,N AGAIN:MOV AL,[SI】
CBW
ADC DX,AX LOOP AGAIN MOV SUM,DX
MOV AH,4CH :返回DOS INT 21H CODE ENDS
END START
8、编写一个菜单选择处理程序。 自己写
9、编写一子程序实现从某字数组中选出最大值。
答: 求数组元素最大值过程名MAX,数组首址为Sl,元素个数为CX,最大值由AX带出。
MAX PROC NEAR PUSH SI PUSH CX
MOV AX,[S1]
AGAIN:CMP AX,[SI]
JGE NEXT ;有符号数,若为无符号数则JAE MOV AX,[SI] NEXT:INC SI INC SI
LOOP AGAIN POP CX
POP SI RET MAX ENDP
10、编写一子程序实现从某字数组中求出平均值(设其和不会超出范围)。 答:;求数组元素之和函数SUM,数组首址为Sl,数组元素个数为CX,和由AX带出。
SUM PROC NEAR PUSH SI PUSH CX XOR AX,AX AGAIN:ADD AX,[S1]
INC Sl INC SI
LOOP AGAIN POP CX POP Sl RET SUM ENDP
11、从键盘接收一串字符,并另起一行逆序显示该字符串。 答:DATA SEGMENT
BUF DB 81,0,81 DUP(?) DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX LEA DX,BUF
MOV AH,l0 ;接收一串字符 INT 2lH
MOV DL,0DH ;显示回车换行 MOV AH,2 INT 21H
MOV DL,0AH MOV AH,2 INT 21H
MOV CL,BUF+1 ;取接收的字符数 XOR CH,CH LEA BX,BUF+1
ADD BX,CX ;BX指向串尾 AGAIN:MOV DL,[BX] ;逆向显示
MOV AH,2 TNT 21H DEC BX
LOOP AGAIN
MOV AH,4CH INT 2lH CODE ENDS
END START
12、假设密码为“123456”,从键盘接收密码并验证,若正确则显示“欢迎使用本系统”,否则显示“密码错误,您无权使用!”。 自己写 13、从键盘输入1字节的两位十六进制数据,并分别用二进制、八进制、十进制、十六进制显示出来其等价的值。 自己写
第6章 Intel 8086/88微处理器
1、8086/88 和传统的8位计算机相比在执行指令方面有什么不同?有什么优点?
答:总线接口部分和执行部分是分开的,每当EU执行一条指令时,造成指令队列空出2个或空出一个指令字节时 ,BIU马上从内存中取出下面一条或几条指令,以添满他的指令队列。这样,一般情况下,CPU在执行完一条指令后,便可马上执行下一条指令,不像以往8位CPU那样,执行完一条指令后,需等待下一条指令。即EU从指令队列中取指令、执行指令和BIU补充指令队列的工作是同时进行的。这样大大提高了CPU利用率,降低了系统都对存储器速度的要求。 2、8086有哪两种工作模式?其主要区别是什么?
答:答:8086有最大和最小两种工作模式,最小工作模式是指MN/MX引脚为高电平,系统中只有8086/8088微处理器,系统中的所有控制信号都直接由CPU产生。最大工作模式是指MN/MX引脚为低电平,它是相对于最小模式而言的,系统中除了8086/8088作为处理器外,还包含数值运算协处理器8087、输入/输出协处理器8089,以及总线控制器8288和总线仲裁控制器8289等支持芯片,从而可以完成更复杂的运算或控制任务。 3、请画出8086/88 CPU功能模块图
4、请说明8088与8086的主要区别。 答:教材P81、P82和P91
5、请画出8088CPU最小模式核心示意图。
参考P85图6.8最小模式的8086CPU子系统图 6、请画出8088CPU最大模式核心示意图。
参考P87图6.10最大模式的8086CPU子系统
7、8284时钟发生器的功能是什么?它产生哪些信号?这些信号有何作用? 教材P83
8、8086/8088的基本总线周期由几个时钟周期组成?IBM PC/XT机中CPU的时钟周期包括多少?一个输入或输出总线周期包括多少个时钟周期? 答:8086/8088的基本总线周期由4个时钟周期组成。mM PC/XT机中CPU的时钟周期是210 nS,一个输入或输出总线周期至少是4个时钟周期。
说明:总线周期——CPU的BIU取指令和传送数据需要的时间。一个基本的总线周期由4个时钟周期(T状态)组成,即T1、T2、T3、T4状态。
(1)在T1状态,CPU向地址/数据复用线(ADl5~ADO)和地址/状态复用线(AldS6~A1dS3)上发送地址信息,产生本次操作的地址。
(2)在T2状态,CPU从总线上撤销地址信息,并向地址/状态复用线(A19/S6~AldS3)上发送本次操作的状态信息(S6~S3);在读操作下,地址/数据复用
线(ADl5~ADO)浮空(高阻),为接收数据做准备;在写操作下,地址/数据复用线出现本次操作的数据。
(3)在T3状态,地址,状态复用线仍为状态信息,地址/数据复用线出现本次操作的数据(读或写数据)。
(4)在有些情况下,外设或存储器数据传输的速度跟不上CPU,则向CPU发出“未准备好\"信号(READY=0),CPU在T3状态后自动插入1个至多个等待周期TW,直至READY=1为止,进入T4状态。
(5)在T4状态,总线周期结束。
(6)若CPU不执行总线操作(不访问存储器或I/O),系统总线则执行空闲周期Ti;在执行空闲周期时,总线高4位保留前一个总线周期的状态信息;若前一个总线周期为写操作,则地址/数据复用线仍保留写数据,若为读操作,则地址/数据复用线浮空。
9、在T1状态下,8086/8088数据/地址线上传送的是什么信息?用哪个信号可将此信息锁存起来?数据信息是在什么时候送出的?在IBMPC/XT机中是怎样使系统地址总线和系统数据总线同时分别传送地址信息和数据信息的?
答:在T1状态下,8086/8088数据/地址线上传送的是地址信息Al5~A0,地址锁存信号ALE引脚为高电平时,地址被锁存。数据信息是在DEN信号有效的时候送出,即主要在T2至乃期间。地址数据分时复用主要是用到地址锁存器(ALE有效)锁存地址送上数据总线,DEN有效数据缓冲器开通实现数据总线与CPU相通。
10、简述读内存的基本过程。
答:读内存的过程其实就是取指令(或取数)的过程,具体如下:
(1)CPU先将待取指令(数据)的地址送上地址总线并译码指定到对应的内存单元。
(2)CPU再发出读信号。
(3)内存单元内容的送出指令到数据总线。 (4)指令(数据)通过数据总线送到CPU。
(5)因为是取指令,CPU内部存入指令队列(取指特有)。 11、简述写内存的基本过程。 教材P90
12、根据8086内存读/写时序图,回答如下问题: (1)地址信号在哪段时间内有效?
T1周期
(2)读操作与写操作的区别?
教材P89、P90
(3)内存读写时序与I/O读写时序的区别?
读写控制引脚有效性不同,要给出具体引脚。 (4)什么情况下需要插入等待周期TW? 教材P89
13、请画出8088最大模式读内存时序图。
参考P90图6.13 8086读总线周期时序图(最大模式),根据地址引脚和数据引脚的区别进行修改(8088只有8个数据引脚) 14、请画出8088最小模式写IO时序图。 参考P91图6.14 8086写总线周期时序图(最小模式),根据下面提到的8088
和8086的最小模式读写内存或者IO时序的区别进行修改。 15、总线响应的条件是什么? 教材P92
16、简述总线请求/响应的基本过程。 教材P92 17、RESET信号来到后,8086/8088系统的CS和IP分别为什么内容?复位时执行的第一条指令的物理地址是多少?
答:RESET信号来到后,8086,8088系统的CS和IP分别为0F'FFFH和0000H。 18、编写使计算机软启动的功能程序段。
第7章 内存组成、原理与接口
1、存取周期是指(C)。
A.存储器的读出时间 B.存储器的写入时间
C.存储器进行连续读和写操作所允许的最短时间间隔 D.存储器进行连续写操作所允许的最短时间间隔
2、某计算机的字长是16位,它的存储器容量是64KB,若按字编址,那么它的最大寻址范围是(B)。
A.64K字 B.32K字 C.64KB D.32KB
3、某一RAM芯片的容量为512×8位,除电源和接地线外,该芯片的其他引脚数最少应为(D)。
A.25 B.23 C.21 D.19
注:地址线9根,数据线8根,控制线2根。 4、EPROM是指(D)。
A.随机读写存储器 B.只读存储器
C.可编程的只读存储器 D.可擦除可编程的只读存储器 5、下列RAM芯片各需要多少个地址引脚和数据引脚?
(1)4K×8位 (2)512K×4位 (3)1M×l位 (4)2K×8位 答:SRAM:(1)12和8 (2)19和4 (3)20和1 (4)11和8
DRAM:(1)6和16 (2)5和8 (3)10和2 (4)6和16 。 6、下列ROM芯片各需要多少个地址引脚和数据引脚?
(1)16×4位 (2)32× 8位 (3)256×4位 (4)512× 8位 答:(1)4和4 (2)5和8 (3)8和4 (4)9和8
7、存储器按功能、性质和信息存取方式分别可分为哪些类型?
教材P95
8、计算机的内存和外存有什么区别?
答:内存用于存放当前正在运行的程序和正在使用的数据,CPU可以直接对它进行访问。相对于外存而言,内存主要特点是存取速度快、存储容量较小、成本较高,通常使用半导体存储器组成。外存用于存放当前暂不使用的或需要永久性保存的程序、数据和文件,在需要重用时才成批地调入,调出内存。外存的主要特点是存储容量大、成本较低、存取速度较慢,必须使用专门的设备(如磁盘驱动器、光盘驱动器、磁带机)才能访问,一般使用磁性介质如磁盘、磁带)或光介质(如光盘)实现。
9、微机中为什么要使用层次结构的存储系统? 教材P97
10、简要回答以下问题:
(1)按信息存储的方式,RAM可分为哪三种? 只读、直接存取、顺序存取
(2)只读存储器按功能可分为哪四种? 教材P96
(3)SRAM和DRAM主要有哪些区别? SRAM特点:
SRAM的基本存储单元是6管双稳态触发电路存储信息。
每个基本存储元存储二进制数一位,许多个基本存储元形成行列存储矩阵。 SRAM一般采用“字结构”存储矩阵: 每个存储单元存放多位(4、8、16等) 速度快(<5ns),不需刷新,外围电路比较简单,但集成度低(存储容量小,约1Mbit/片),功耗大。
在PC机中,SRAM被广泛地用作高速缓冲存储器Cache DRAM特点:
DRAM的存储元主要由电容构成;
存储信息不稳定,需要“读出再生放大电路”定时刷新。 每次同时对一行的存储单元进行刷新 DRAM一般采用“位结构”存储体: 每个存储单元存放一位 存储容量高(集成度高),功耗低,存取速度较低,价格便宜,主要用作主内存。
(4)闪存Flash ROM的主要优点是什么? 教材P96 11、用下列芯片构成存储系统,各需要多少个RAM芯片?需要多少位地址作为片外地址译码?设系统为20位地址线,采用全译码方式。
(1)512×4位RAM构成l6KB的存储系统。 (2)1024×1位RAM构成l28KB的存储系统。
(3)2K×4位RAM构成64KB的存储系统。 (4)64K×1位RAM构成256KB的存储系统。
答:(1)需要64片RAM和11位地址作为片外地址译码。
(2)需要l024片RAM和10位地址作为片外地址译码。 (3)需要64片RAM和9位地址作为片外地址译码。 (4)需要32片RAM和4位地址作为片外地址译码。
12、已知某微机控制系统中的RAM容量为4K×8位,首地址为4800H,求其最后一个单元的地址。
答:最后一个单元地址=起始地址+容量一1
4800H+1000H一1=57FFH 、
13、某微机系统中内存的首地址为3000H,末地址为63FFH,求其内存容量。 答:容量=最后一个单元地址一起始地址+1
63FFH~3000H+1=3400H=13KB
14、某微机系统中ROM为6KB,最后一个单元的地址为9BFFH,RAM为3KB。已知其地址为连续的,且ROM在前,RAM在后,求该内存系统的首地址和末地址。 答:9BFFH--1800H+1=8400H,所以ROM的首地址为8400H、末地址为9BFFH。RAM的首地址为9C00H,末地址为9C00H+C00H一1=A7FFH。
15、用半导体存储器芯片组成内存子系统时需注意哪些问题?三总线AB、DB、CB的一般接法?
教材P110
16、内存系统的芯片选择通常有哪几种形式,各有何特点?
答:有全译码法、部分译码法和线选法三种。在内存译码电路中,系统的全部地址总线都参与地址译码,对应存储器芯片中的每一个存储字都有唯一的确定地址,称之为“全译码”法。如果仍使用集成译码器,但片外地址中有一部分不参加对
内存的片选译码,称为“部分译码”法。如果只使用一些基本的逻辑门电路——与门、或门和非门的组合,对若干位片外地址译码实现对内存的片选,称为“线选法”。
17、相对于SRAM,DRAM需要解决哪些特殊问题? 教材P113
18、在图7.23中,如果将片选控制信号从。。。。。依次改接到。。。。。,各芯片的地址范围为多少?
注:高位地址没变,只有地位片内译码地址变了,列表画出来各芯片的地址表即可找出地址范围。
19、使用2732、6116和74LSl38构成一个存储容量为12KB ROM(地址00005H~02FFFH)、8KB RAM地址(03000H 04FFFH)的内存系统。设系统地址总线20位,数据总线8位,全译码。请画出原理图。
答:习题l9的内存连接原理图下图所示。
第8章 输入输出(I/O)系统
1、简述I/O接口的基本功能。
答:I/O接口是主机和外设的通信桥梁,主要有数据的寄存和缓冲功能、对外设的控制和监测功能、设备选择功能、信号转换功能、中断管理或DMA管理功能、可编程功能。
2、数据信息有哪几类?CPU和输入输出设备之间传送的信息有哪几类?相应的端口称为什么端口?
答:数字信息有数字量、模拟量和开关量三种。CPU和外设主要传送数据信息、状态信息和控制信息,相应的为数据端口、状态端口和控制端口。 3、简述I/O端口独立编址方式和存储器映射方式的特点及优缺点。 教材P123
4、CPU和外设之间的数据传送方式有哪几种?各种传送方式通常用在什么场合? 答:CPU和外设之间的数据传送方式有以下几种:无条件传送方式、查询传送方式、中断传送方式、DMA(直接存储器存取)方式、lOP(输入输出处理机)方式。 无条件I/O:适合于外设总是处于准备好或准备好时间相对固定的设备。 查询I/O:在传送前先查询一下外设的状态,当外设准备好了才传送;若未准备好,则CPU等待。适合较复杂且准备好时间相对较短的设备。
中断I/O:采用中断方式则可以免去CPU的查询等待时间,当外设没有准备好时,CPU可以去做自己其他的工作;当外设准备好时,主动向CPU提出请求。故在中断方式中,CPU和外设以及外设与外设之间是并行工作。适合较复杂且准备好时间相对较长的设备。 DMA方式I/O:直接用硬件控制数据在外设和存储器之间的传送,适合快速且成块的数据传输。
IOP方式:IOP可以和CPU并行工作,提供高速的DMA处理能力,实现数据的高速传送,但成本较高,适合要求I/O速度很高的场合,如3D图形显示等。 5、何为全译码方式?何为部分译码方式?其优缺点各是什么?
答:全译码方式:CPU的全部地址总线都参与地址译码,因此一个端口对应唯一的一个地址,使用的地址线比较多,电路比较复杂。部分译码方式:CPU输出的地址信号只有部分参与地址译码,另一部分(一般为高位或低位地址)未参与,因此一个译码输出对应若干个端El地址,这就是地址重叠现象。这种方法使用地址线少,电路简单。
6、分析下图所示的译码电路,当地址信号Al5~A7是多少时,74LSl38才能允许工作?Y0~Y7有效(为低电平)时对应的地址各是什么?
答:分析译码电路采用逆向分析的方法:或门输出无效,则输入必须全无效;与门输出有效,则输入必须全有效。
译码器74LSl38要工作,两低一高控制端必须同时有效,所以Al5~A7的数值为010001100。A6、A5、A4作为译码输入,A3~A0未参加译码,所以74LSl38的译码地址为010001100000XXXX~010001100111XXXX,即Y0至Y7分别对应端口地址4600H~460FH、4610H~461FH、4620H~'462FH、4630H~463FH、4640H~464FHl 4650H~465FH、4660H~466FH、4670H~467FH。 7、设计一个外设端口地址译码器,使CPU能寻址四个地址范围:(1)240~247H,(2)248~24FH,(3)250~257H,(4)258~25FH。
答:如果是重叠地址则译码电路如图8.2所示,如果是可变译码则译码电路如图8.3所示。
8、试用74LS244作为输入接口,读取三个开关的状态,用74LS273作为输出接口,点亮红、绿、黄三个发光二极管,示意图如图8.23所示。请画出PC/XT机系统总线的完整接口电路(包括端口地址译码的设计),端KI地址如图中所示(340H和348H),并编写能同时实现以下三种功能的程序: (1)K0、Kl、K2全部合上时,红灯亮; (2)K0、Kl、K2全部断开时,绿灯亮; (3)其他情况黄灯亮。 答:程序如下:
AGAIN:MOV DX,340H
IN AL,DX ;开关采样 AND AL,07H ;屏蔽无效位 CMP AL,0
JE RED ;全合上,转红灯亮 CMP AL,07H
JE GREEN ;全合上,转绿灯亮 MOV AL,01H ;否则,黄灯亮 JMP NEXT
RED:MOV AL,04H JMP NEXT
GREEN:MOV AL,02H NEXT:MOV DX,348H OUT DX,AL
JMP AGAIN
9、图8.24为一个LED接口电路,写出使8个LED管自上至下依次发亮2S的程序,并说明该接口属于何种输入输出控制方式?为什么?
答:该接口驱动的是发光二极管,属始终准备好的简单外设,所以可用无条件I/O。程序如下:
MOV AL,07FH MOV CX,8
AGAIN:OUT 20H,AL ROR AL,l
CALL DELAY2S LOOP AGAIN
0亮 2S子程序
;共阳接法,送;调用延迟第9章中断技术
1、什么叫中断?简述一个中断的全过程。
答:中断是指CPU正在执行某个程序,因为某种原因被打断,转去为这种原因服务,服务完后返回继续执行被暂时中断的程序。中断过程主要有中断请求、中断判优及响应、中断服务和中断返回。
2、确定中断的优先级(权)有哪两种方法?各有什么优缺点?IBM PC系列微机中断判优用的是什么方法?
答:确定中断优先级方法主要有查询法、请求链队法、响应链队法、编码比较法等。
查询法主要由查询的先后次序决定其优先级。请求链队法主要由其排队的先后次序决定其优先级,只有级别高无请求时,级别低才可以提出请求。响应链队法主要由其排队的先后次序决定其优先级,均可提出请求,但只响应排在最前面的请求。编码比较法主要是用于中断嵌套,判断是否有比当前正在服务的中断请求更高级别的中断请求,有则响应,无则屏蔽。 IBM PC系列微机中断判优用的是中断控制器8259A,其内部集成了可编程改变的请求优先级电路及编码比较电路,既可以处理中断的优先级、也可以处理中断嵌套的优先级。
3.8086/8088的中断分类?什么是中断向量?什么是中断向量表?8086/8088总共有多少级中断?它们的中断类型号是多少?中断向量表设在存储区的什么位置?
答:中断分类如图所示。
中断向量是指中断服务程序的入口地址。所有指中断服务程序的入口地址依次存放的区域称为中断向量表。8086/8088总共有256级中断,中断类型号从0至255。中断向量表设在存储区最起始的1 KB位置,每个中断向量占用4字节。 4、什么是不克屏蔽中断?什么是可屏蔽中断?它们得到CPU响应的条件是什么? 答:屏蔽和非屏蔽是指CPU接收到中断请求后,能否不响应中断请求,可以不响应的请求称为可屏蔽中断,必须响应的称为不可屏蔽中断。
非屏蔽中断响应的条件是:A.无总线请求;B.当前指令执行完毕。
可屏蔽中断响应的条件是:A.无总线请求;B.无不可屏蔽中断请求;C.IF----1;D.当前指令执行完毕。
5、8086/8088 CPU怎样得到中断服务程序地址?
答:8086/8088 CPU依据中断号乘以4找到中断向量表的位置,即从0段偏移中断号乘以4处连续取两个字,低字是中断服务程序的偏移地址,高字是中断服务程序的段地址。
6、8259A的中断屏蔽寄存器IMR和8086/8088的中断允许标志IF有什么差别?在中断响应过程中,它们怎样配合起来工作?
答:8259A的中断屏蔽寄存器IMR设置的是中断请求线路上的屏蔽,即请求能否送出。8086/8088的中断允许标志IF是站在CPU的角度,即CPU接收到请求可否不去响应。
若IF=0,则CPU不会有中断响应过程,即不再理会8259A送给CPU的中断请求;若IF=1,CPU在合适的时候对8259A的中断请求给出响应,再由8259A内部去决定响应的哪个请求(8259A的排队电路及编码比较电路及屏蔽工作,IMR位为l的中断请求不参加排队),而后由8259A送可响应的最高级别请求的中断号给CPU。
7、简述8259A的主要功能。对8259A的编程有哪两类?它们分别在什么时候进行?
功能见书145页, ICW初始化编程,OCW操作控制,编程流程参考149~152页
8、8259A仅有两个端口地址,如何识别4条ICW命令和3条OCW命令? 教材P148表9.1和图9.15
9、有关优先级,8259A有哪几种操作方式?其含义是什么? 教材P153
10、8259A的特殊屏蔽方式和普通屏蔽方式相比,有什么不同之处?特殊屏蔽方式一般用在什么场合? 教材P154
11、8259A有几种结束中断处理的方式?各自应用在什么场合?在非自动结束中断方式中,如果没有在中断处理程序结束前发中断结束命令,会出现什么问题? 参考152页,中断结束方式 12、怎么用8259A的屏蔽命令字来禁止IR3和IR5引脚上的请求?又怎样撤销这一禁止命令?设8259A的端口地址为93H,94H,写出有关命令。 答:禁止IR3和IR5中断:
IN AL,93H OR AL,28H OUT 93H,AL
撤销禁止IR3和IR5中断:
IN AL,93H AND AL,D7H OUT 93H,AL
13、若8086系统采用单片8259A,其中断类型码为46H,则其中断向量表的中断向量地址指针是多少?这个中断源应连向瓜的哪一个输入端?若中断服务程序入口地址为0ABC00H,则其向量区对应的4个单元的数码依次为多少?
答:其中断向量表的中断向量地址指针是0:46H'4,即0:ll8H。这个中断源应连向IR的IR6输入端。若中断服务程序入口地址为0ABC00H,则其向量区对应的4个单元的数码依次为00、0C、00、AB,这只是其中一种方案,其实答案很多。
14、若8086系统采用级联方式,主8259A的中断类型码从30H开始,端口地址为20H,2lH,从8259A的INT接主片的IR7,从片的中断类型码从40H开始,端口地址为22H,23H。均不要ICW4。试对其进行初始化编程。
答:根据上述使用要求和硬件连接情况,对8259A的主片和从片分别编程如下。 (1)主8259A初始化
INTA00 EQU 20H INTA01 EQU 21H MOV AL,0001000B OUT INTA00,AL
JMP SHORT $+2 MOV AL,0011000B OUT INTA01,AL JMP SHORT $+2
MOV AL,10000000B OUT INT01,AL (2)从8259A初始化
INTB00 EQU 22H INTB01 EQU 23H MOV AL,00010000B OUT INTB00,AL JMP SHORT $+2
MOV AL,01000000B OUT INTB01,AL JMP SHORT $+2
MOV AL,00000111B OUT INTB01,AL
15、自己定义一个软中断,中断类型码为 答案略
8259A主片端口0 8259A主片端口l
ICWl:边沿触发、级联、不要ICW4 I/O端口延时要求(下同)
ICW:设置中断类型号的高5位为00110B ;ICW,主片的IR2接从片的INT ;从8259A端口0 ;从8259A端口l :ICWl :ICW2:中断类型号的高5位为01000B ;ICW3:从片的INT接主片的IR2
79H
;;;;;第10章 可编程接口芯片及其应用
1、8255A的三个端口的基本特点是什么?
答:PA口工作于三种工作方式(方式0、方式1、方式2),PB口可工作于两种工作方式(方式0、方式1),PC口只可工作于一种工作方式(方式0)或部分引脚作为PA口或PB口工作非方式0时的联系信号线。 2、请画出8255A的内部结构及引脚图。 教材P165图10.1和10.2
3、请简述8255A的三种工作方式的主要特点。 教材P166
4、请画出8255A PB口工作于方式1输入时的引脚连接图。 参考教材P168图10.7
5、请画出8255A PA口工作于方式2时的引脚连接图。 参考教材P170图10.14
6、请写出8255A的工作方式控制字及置位/复位控制字各位的含义。 参考教材P171 7、请用8255A及相关器件设计一个具有8个按键,依次按下各键对应指示灯亮,未按下键以跑马灯的方式显示,每个显示500 ms后下一个显示,设延时500 ms的子程序为DELAY500,并编程实现。 答:设计如图l0.1所示。
微机组成原理练习试题带答案
五:分析判断题(判断对错,并指出错误原因)
1.下面哪些指令是非法的?(假设OPl,OP2是已经用DB定义的变量) (1)CMP l5,BX (2)CMP OPl,25 (3)CMP OPl,OP2
(4)CMP AX,OPl 答:(1) CMP 15,BX
非法,两个操作数不能一个为字,一个为字节 (2)CMP OP1,25 正确 (3)CMP OP1,OP2 正确 (4)CMP AX,OP1
非法,两操作数不能一个为字,一个为字节
2.假设下列指令中的所有标识符均为类型属性为字的变量,请指出下列指令中哪些是非法的?它们的错误是什么? (1)MOV BP,AL
(2)MOV WORD_OP[BX+4*3][DI],SP (3)MOV WORD_OPl,WORD_OP2 (4)MOV AX,WORD_OPl[DX] (5)MOV SAVE_WORD,DS
(6)MOV SP,SS:DATA_WORD[BX][SI] (7)MOV [BX][SI],2
(8)MOV AX,WORD_ OPl+WORD_OP2 (9)MOV AX,WORD_ OPl-WORD_OP2+100 (10)MOV WORD_ OPl,WORD_ OPl-WORD_OP2 答:(1)MOV BP,AL
非法,BP为16位 AL为八位 (2)MOV WORD_OP[BX+4*3][DI] ,SP 正确
(3)MOV WORD_OP1 ,WORD_OP2 非法,两个操作数不能都是变量 (4)MOV AX , WORD_OP1[DX]
非法,[DX]应改为[BX],[BP],[SI]或[DI],则为寄存器相对寻址。 (5)MOV SAVE_WORD ,DS
非法,未指明数据段地址DS的偏移量 (6)MOV SP,SS:DATA_WORD[BX][SI]
非法,SS与[BX],[SI]不匹配,SS的偏移量用SP (7)MOV [BX][SI] ,2 正确
(8) MOV AX,WORD_OP1+WORD_OP2 正确
(9) MOV AX, WORD_OP1—WORD_OP2+100 正确 (10)MOV WORD_OP1,WORD_OP1—WORD_OP2 非法
3.假设VAR1和VAR2为字变量,LAB为标号,试指出下列指令的错误之处: (1)ADD VAR1,VAR2 (2)SUB AL,VAR1 (3)JMP LAB[SI] (4)JNZ VARl (5)JMP NEAR LAB 答:(1) ADD VAR1,VAR2
ADD指令中,目的操作数必须是寄存器或存储单元。 (2)SUB AL,VAR1
AL为8位的,而VAR为字变量16位 (3)JMP LAB [SI]
格式不对,LAB处应为一偏移量,而不是标号。
(4)JNZ VAR1
JNZ 为非零转移,应转移到某个程序段,故后面应为一个标号。 (5)JMP NEAR LAB
段内直接转移,格式应为 JMP NEAR PTR LAB
六、简答题:
1、设一个8字节数据存放在内存中,它的起始单元的物理地址为223A0H,若当前的段基址DS=2000H,由该数据起始单元的偏移地址是多少? 答:为23A0H
1、假定(SS)=2000H,(SP)=0100H,(AX)=2107H,执行指令PUSH AX后,存放数据 21H的物理地址是多少? 解答:
07H 21H
<—原栈顶20100
存放数据21H的物理地址是200FFH
2、 8086CPU与8088CPU有哪些相同之处?又有哪些区别?
答:两者的内部结构基本相同,内部都采用16位字进行操作及存储器寻址,两者的软件完全兼容,程序的执行也完全相同,两种处理器都封装在相同的40脚双列直插组件(DIP)中。
但它们的外部性能有区别。8086是16位数据总线,而8088是8位数据总线,在处理一个16位数据字时,8088需要两步操作而8086只需要一步。
3、中断入口地址表的功能是什么?已知中断类型码分别为84H,它们的中断入口在中断入口地址表的什么位置上?
答:中断入口地址表的功能是存放中断服务程序的入口地址。
84H(1000 0100 B)的中断入口在中断入口地址表的0010 0001 0000 B,即0210 H处,即其偏移地址放在0210H和0211H两个单元中,而段地址放在0212H和0213H两个单元中。
4、什么叫总线周期?8086CPU的一个总线周期包括多少时钟周期,什么情况下要插入TW等待周期?插入多少个TW取决于什么因素?
答:总线周期是CPU或其他总线控制设备访问一次存储器或I/O端口所需的时间。 在总线周期中需要利用总路线。
8086CPU的一个标准总线周期包括4个时钟周期。当4个时钟周期不能完成所规定的操作时,可以插入一个或多个等待时钟周期TW。
插入多少个TW取决于所访问的存储器或者I/O设备是否准备就绪,此信号由引脚READY发出。
5、假如8086系统中的CS=2000H,IP=2100H其物理地址应是多少? 答:物理地址为20000H+2100H=22100H。
6、若将某8259A芯片的ICW2定义为39H,则该8259A的8级中断类型码是多少?
答:39H即为:0011 1001,故其类型码最低的为0011 1000,即38H;最高为0011 1111,即3FH。
故其中断类型码为:38H---3FH
7、8086 CPU从功能上分为几部分?各部分的功能是什么? 答:8086CPU从功能上分外两大部分,一是执行部件(EU),二是总线接口部件(BIU)。 执行部件是由以下四部分组成:(1)4个通用寄存器AX,BX,CX,DX。(2)4个专用寄存器BP,SP,XI,DI。(3)标志寄存器FR。(4)算术逻辑部件ALU。功能是负责执行所以的指令,向总线接口部件(BIU)提供指令执行的结果数据和地址,并对通用寄存器和标志寄存器进行管理。 总线接口部件(BIU)由以下部件组成:(1)四个段寄存器,代码段寄存器,数据段寄存器,附加段寄存器,堆栈段寄存器。(2)指令指针寄存器。(3)地址加法器。(4)指令领队列。功能:执行外部总线周期,负责存储器与I/O端口传送数据。也就是负责CPU与存储器和外设之间的信息交换。
8、 什么是最大模式(或最大组态)?什么是最小模式(或最小组态)?用什么方法将8086/8088置于最大模式和最小模式?
答:最小模式,即系统中只有一个微处理器,所有的总线控制信号都直接由8086/8088,因此,系统总线控制电路被减到最小。
最大模式,即系统里包括两个或多个微处理器,主处理器就是8086/8088,其它均为协助主处理器工作的协处理器。它主要用于中等规模或大型的8086/8088系统中。
将8086/8088的第33脚接地时,系统处于最大模式,接+5V时,为最小模式
9、 什么是地址锁存器?8086/8088系统中为什么要用地址锁存器?锁存的是什么信息? 答:地址锁存器就是一个暂存器,它根据控制信号的状态,将总线上地址代码暂存起来。8086/8088数据和地址总线采用分时复用操作方法,即用同一总线既传输数据又传输地址。当微处理器与存储器交换信号时,首先由CPU发出存储器地址,同时发出允许锁存信号ALE给锁存器,当锁存器接到该信号后将地址/数据总线上的地址锁存在总线上,随后才能传输数据。
10、 8086/8088系统中的8286是什么器件?起什么作用? 答:8286为总线驱动器(收发器,双向数据缓冲器),当一个系统中所含外设接口较多时,用来增强数据总线的驱动能力。
11、. 指出下列各指令中源操作数的寻址方式 1)MOV DI,100 2)MOV [SI],AX
3)ADD AX, [BX+SI] 4)MOV DX, [1000H] 5)AND DH,[BP+4]
12、.什么叫做中断源?1片8259A最多能管理几级中断?3片8259A级联起来,最多可管理几级中断? 答:
13、有符号定义语句如下: BUFF DB 1,2,3,‘123’ EBUFF DB 0
L EQU EBUFF-BUFF 问L的值为多少? 解答:L=6
14、类型号为17H中断的中断处理子程序的入口地址为1234:5678H,求该入口地址在中断向量表中如何放置?
答:0段中5CH、5DH、5EH和5FH四个单元中的值分别为:78H、56H、34H、12H。
15、8086/8088系统中引入了哪些中断?是如何引入的?
答:通过NMI引脚引入非屏蔽中断;通过INTR引脚引入可屏蔽中断;通过指令 INT 引入软中断。
16、标志寄存器FR的状态标志有何作用?写出6个状态标志。
答:FR的状态标志反映上次运算结果的状态(1分); CF,PF,AF,ZF,SF,OF(1分)
17、.8086/8088系列违纪在存储器中寻找存储单元时,逻辑地址由哪两个部分组成的? 答:由段地址和偏移地址两部分构成。 5.设IBM PC微机内存中某个单元的物理地址是12345H,试完成下列不同的逻辑地址表示:
(1) 1234H:___H (2) ____H:0345H
答:(1)1234H:05H (2) 1200H:0345H 18、.假设某程序执行过程中,(SS)=0950H,(SP)=64H,试问该用户程序的堆栈底部物理地址是多少?
答:(SS)*10H+(SP)=09564H 19、设堆栈段寄存器(SS)=0E4BH,程序中设堆栈长度为200H个字节。试计算出堆栈底部字单元物理地址,堆栈指针SP初始值(即堆栈中没有数据时)和SP初始值指向的物理地址。 答:物理地址为:3E4B0H, SP的初始值为200H,指向的物理地址为:3E6B1H.。
3.什么叫做中断源?
5. 某外部可屏蔽中断的类型码为12H,它的中断服务程序的入口地址为1000H:2000H,请将中断服务程序入口地址填在中断向量表中。
答:12H中断对应的中断向量放在向量表的0000:0048H处,其中0048H、0049H、004AH与004BH这4个单元中的值分别为00H、20H、00H、10H
2.某外部可屏蔽中断的类型码为12H,它的中断服务程序的入口地址为1000H:2000H,请将中断服务程序入口地址填在中断向量表中.
因篇幅问题不能全部显示,请点此查看更多更全内容