答案:INTR NMI 屏蔽
22.一台微机的CPU,其晶振的主振频率为8MHz,二分频后作为CPU的时钟频率。如果该CPU的一个总线周期含有四个时钟周期,那么此总线周期是_____us。 答案:0.125
23.某微处理器的主频为20MHz,由2个时钟周期组成一个机器周期,设平均3个机器周期可完成一条指令,其时钟周期和平均运算速度分别为_____。 答案:50ns,3.33MHz 三、问答题
1. 8086/8088CPU在结构上由哪两个独立的处理单元构成?这样的结构最主要的优点是什么?
答案:在微机中,一条机器指令由操作数和操作码构成,再由若干指令构成程序。微处理器执行一条指令的完整步骤需要两个阶段:取指和执行。取指是从内存中取出指令,执行是分析指令要求实现的功能,读取所需的操作数,执行指令规定的操作。传统的8位处理器采用顺序执行的方式,各条指令的执行按以上两个阶段交替执行。也就是说,首先取一条指令,然后执行该指令,之后再取下一条指令,再执行,如此重复,直到整个程序执行完毕。 在8086中,为了加快程序的执行速度,采用了重叠执行的方式,各条指令的执行过程是重叠进行的。每条指令的执行过程也包括取指和执行两个阶段,但是相邻两条指令的执行过程有一部分是同时进行的。在执行一条指令时,可以同时取出下一条指令。在当前指令执行完毕后,就可以立即执行下一条指令。显然,这种重叠执行的方式大大加快了程序的执行速度。 为了实现指令的重叠执行方式,8086/8088微处理器内部分为两个独立的功能部件:执行单元EU和总线接口单元BIU,执行单元EU专门负责指令的执行,总线接口单元BIU是从内存指定区域取出指令送到指令队列缓冲器的。EU和BIU两个功能部件并行工作,EU执行的BIU在前一时刻取出的指令,与此同时,BIU又取出下一时刻要执行的指令,由此能使大部分取指令和执行指令的操作重叠进行,大大缩短了等待指令所需的时间,提高了微处理器的利用率和整个系统的执行速度。
2.完成下列补码运算,并根据结果设置标志SF、ZF、CF和OF,指出运算结果是否溢出。 (1) 00101101B+10011100B (2)01011101B-10111010B (3) 876AH-0F32BH (4)10000000B+11111111B 答案:(1) C9H SF=1 ZF=0 CF=0 OF=0 未溢出
(2) 01011101B-10111010B =01011101B+01000110B A3H SF=1 ZF=0 CF=1 OF=1 有溢出 求-Y的补码,即正数-Y的真值
(3) 876AH-0F32BH =876AH+0CD5H 943FH SF=1 ZF=0 CF=1 OF=0 未溢出 (4) 7FH SF=0 ZF=0 CF=1 OF=1 有溢出 3.存储器采用分段方法进行组织有哪些好处?
答案:8086微处理器CPU中寄存器都是16位,16位的地址只能访问大小为64KB以内的内存。8086系统的物理地址由20根地址线形成,怎样用16位数据处理能力实现20位地址的寻址呢?要做到对20位地址空间进行访问,就需要两部分地址,在8086系统中,就是由段地址和偏移地址组成的。而这两个地址都是16位,将这两个地址采用相加的方式组成20位地址去访问存储器。
在8086系统的地址形成中,当段地址确定后,该段的寻址范围就已经确定,其容量不大于64KB。同时,通过修改段寄存器的内容,可达到逻辑段在整个1MB空间中浮动。各个逻辑段之间可以紧密相连,可以中间有间隔,也可以相互重叠。 采用段基址和偏移地址方式组成物理地址的优点是:满足对8086系统的1MB存储空间的访问,同时在大部分指令中只要提供16位的偏移地址即可。
4.Intel 8086/8088处理器芯片功能强大,但引脚数有限,为了建立其与外围丰富的信息联系,Intel8086/8088处理器引脚采用了复用方式,说明其采用了何种复用方式?
答案:8086CPU采用双列直插式的封装形式,具有40条引脚。由于受到引脚数量的限制,8086引脚安排采用了复用技术。它的复用方式有两种:一是采用分时复用技术,在不同的时刻通过相同的引脚传送不同的信息,从而减少了引脚的数量;二是采用了两种工作方式,在不同的工作方式下,部分引脚具有两种不同的引脚功能。
5.8086CPU是怎样解决地址线和数据线的复用问题的?ALE信号何时处于有效电平?
答案:为解决引脚少的问题,8086CPU内部采用一个多路开关,使低16位地址线和16位数据线共用引脚。因为当CPU访问存储器或外设时,先要给出访问单元的地址,然后才是读写数据,因此在时间上是可以区分的。在总线周期的第一个时钟周期(T1状态),输出低16位地址(记为A15~A0),而在总线周期的其他时钟周期内传送数据。当CPU处于“保持响应”状态时,这些引脚处于高阻隔离状态(即悬浮状态)。 ALE信号是地址锁存信号。8086在总线周期开始通过地址总线输出地址的同时,通过该引脚输出一个正脉冲,其下降沿用于将地址信息写入外部的地址锁存器中。在任何一个总线周期的第一个时钟周期时,ALE输出有效电平以表示在当前地址/数据复用总线上输出的是地址信息,ALE作为锁存信号,对地址进行锁存。ALE端不能被浮空。 6.8086/8088系统用的时钟发生器会产生哪些信号?
答案:8284A是一个专用的时钟发生器,产生4.77MHz的标准时钟信号CLK。此时钟信号作为系统时钟,并经CLK引脚直接送到8086,作为微处理器的时钟信号。同时8284A还对复位和就绪信号实现内部的时钟同步,然后再输出,实施对8086的控制。所以,8086/8088系统用的时钟发生器产生恒定的时钟信号CLK,复位信号RESET,准备就绪信号READY。 7.说明8086CPU的READY输入信号和 信号的作用是什么? 答案:READY输入信号实际上是由访问的存储器或外设发出的响应信号,高电平有效。READY信号有效时,表示内存或外设准备就绪,马上就可以进行一次数据传输。CPU在每个总线周期的T3状态开始对READY信号开始进行采样。如果检测到READY信号为低电平,则在T3状态后插入等待状态Tw,在Tw状态CPU也对READY信号进行采用,若READY信号仍为低电平,则会继续插入等待状态Tw,所以Tw状态可以插入一个或多个,直到READY变为高电平,才进入T4状态,完成数据传输过程,从而结束当前总线周期。 测试信号,低电平有效, 信号是和指令WAIT结合起来使用的,在CPU执行WAIT指令时,CPU处于等待状态,当 信号低电平时,等待状态结束,CPU继续往下执行被暂停的指令。
第四章习题答案
一、选择题
1.下列描述正确的是_______。 A.汇编语言源程序可直接运行 B.汇编语言属于低级语言
C.汇编程序是用汇编语言编写的程序,运行速度高,阅读方便,属于面向用户的程序语言。 D.汇编语言可以移植 答案:B
2. 分析下面的程序,变量VAR2的偏移地址是______。 DATA SEGMENT
ORG 2 VAR1 DB 2,3,4 ORG $+3 VAR2 DW 1234H DATA ENDS A.02H B.04H C.05H D.08H 答案:D
3.为了使MOV AX, VAR指令执行后,AX寄存器中的内容为4142H,下面哪一种数据定义会产生不正确的结果? A.VAR DW 4142H B.VAR DW 16706 C.VAR DB 42H, 41H D.VAR DW ‘AB’ 答案:C
4.下列伪指令中______是正确的。 A.ERR1:DW 99 B.ERR2 DB 25*60
C.COUNT EQU 20 D.ONE DB ONE
答案:C
5.执行下列指令后,寄存器CL的值是_______。 STR1 DW ‘AB’ STR2 DB 16 DUP(?) CNT A.10H
EQU $-STR1 MOV CX, CNT MOV AX, STR1 HLT B.12H C.0EH
D.0FH
答案:B
二、填空题
1.汇编语言的调试过程如下:建立以______为扩展名的源文件;生成以______为扩展名的目标文件;生成以______为扩展名的可执行文件;使用DEBUG调试程序,调试可执行目标程序。
答案:.asm .obj .exe 2.执行下列指令后,(AX)=______,(BL)=_______。 A DW ‘EF’ B DB ‘ABCDEF’ MOV AX, A MOV BL, B[3] HLT
答案:4546H 44H
3.执行下面程序段后,AL中的内容是______。 BUF DW 1234H, 5678H, 0001H MOV BX, OFFSET BUF MOV AL, 2 XLAT
答案:78H
4.若符号定义语句如下,则L=_______。 BUF1 DB 1, 2, ‘12’ BUF2 DB 0
L EQU BUF2-BUF1
答案:4
5.执行下列程序段后,BX寄存器间址单元的内容是______。 ORG 1FFFH
DB 4FH, 50H, 51H MOV BX, 1FFFH INC [BX] INC BX DEC [BX]
答案:4FH
6.对于下面的数据定义,各条MOV指令单独执行后,请填充有关寄存器的内容: TABLE1 DB ? TABLE2 DW 20 DUP(?) TABLE3 DB ‘ABCD’ ...... MOV AX, TYPE TABLE1; (AX)=___ MOV BX, TYPE TABLE2; (BX)=____ MOV CX, LENGTH TABLE2; (CX)=_____ MOV DX, SIZE TABLE2 ; (DX)=_____ MOV SI, LENGTH TABLE3; (SI)=_______ 答案:1 2 20 40 1
7.下面是多字节加法程序,第一个数是8A0BH,第二个数是D705H。请填写出正确结果。 DATA SEGNEBT FIRST DB _____, _____, 0H SECOND DB _____,______ DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS: DATA START: MOV AX, DATA MOV DS, AX MOV CX, _____ MOV SI, 0 _________ NEXT: MOV AL, SECOND[SI] ADC FIRST[SI], AL INC SI LOOP NEXT MOV AL, 0 ADC AL, ______ MOV FIRST[SI], AL MOV AH, 4CH INT 21H CODE ENDS END START
答案:0BH 8AH 05H D7H 2 CLC 0
8.下面程序的功能是求有符号数中绝对值最小的数,并将最小绝对值存放在DAT2字节中,填空使程序正确实现此功能。程序执行后,DAT2单元中的内容是______。 DATA SEGMENT DAT1 DB 65H, 88H, 20H, 0F6H N EQU $-DAT1 DAT2 DB ? DATA ENDS CODE SEGMENT _________________ START: MOV AX, DATA __________ LEA SI, DAT1 MOV CX, N-1 MOV AL, [SI] TEST AL, 80H JZ LP0 NEG AL LP0: MOV DAT2, AL LP1: _________ MOV BL, [SI] TEST BL, 80H JZ LP2 NEG BL LP2: ________ JB LP3 MOV DAT2, BL MOV AL, BL LP3: ________ MOV AH, 4CH INT 21H CODE ENDS END START 答案:
ASSUME DS:DATA, SS:STACK, CS:CODE MOV DS, AX INC SI
CMP DAT2, BL LOOP LP1
DAT2单元中的内容:0AH
9.填空说明在下列程序段执行过程中相应寄存器中的值。假设程序执行前DS=3000H,SS=2000H,SP=3000H,AX=4567H,BX=1234H,CX=6789H。 AND BX, 00FFH CALL MYSUB