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与存储器和外设之间的信息交换。
21
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级联起来,最多可管理几
级中断?
答:
3、有符号定义语句如下: 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 引入软中断。
22
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,请将中断服务程序入口地址填在中断向量表中. 七、程序题
1. 编制程序段,要求实现:将0404H单元开始的256单元清零。 ( 6分) 答: CLD ;清方向标志
LEA DI,0404H ;DI指向字串地址 MOV CX,256 ; 共256个字节 XOR AX,AX ;AX清零 REP STOSB HLT
2.程序分析题。现有下列程序段:(6分) MOV SP, 2000H MOV AX, 3000H
MOV BX, 5000H :
PUSH AX PUSH BX POP AX
试回答:上述程序段执行后SP=___1FFEH______
(AX)=_____5000H______,(BX)=_____5000H______
23
3.程序分析题。现有下列程序段: (6分) MOV AX,6540H MOV DX,3210H MOV CL,04
SHL DX,CL ;DX=2100H MOV BL,AH ;BL=65H SHL AX,CL ;AX=5400H SHR BL,CL ;BL=06H
OR DL,BL ;DL=06H,故DX=2106H 试问上述程序段运行后,
(AX)=__5400H___________ (BL)=____06H_________ (DX)= _____2106H________
4.请完成如下程序段,使它完成求|AX-BX|,结果放在AX的功能。 CMP AX,BX(1分) JC AA (1分) SUB AX,BX
JMP AA1(2分)
AA:SUB BX(1分) , AX(1分)
MOV AX,BX AA1:HLT
5. 要求从外设71号中取一个数M,判断其值是否在10和20之间,即10≤M<20.如果M≥20H,则送0FFH给外设73H;如果M<10,则送00H给外设73H; 如果10≤M<20,则送88H给外设73H.
。要求编写完整源程序实现上述功能(9分) 答:程序如下:
; ---------程序段定义,不可省略 C1 SEGMENT
START: IN AL, 71H CLC
CMP AL, 10 JC LP1 CMP AL, 20 JC LP2 MOV BL, 0FFH LP3: MOV AL, BL
OUT 73H, AL
INT 21H
MOV AH, 4CH LP1: MOV BL, 00 JMP LP3 LP2: MOV BL, 88H JMP LP3 C1 ENDS
END START
24
6. 编一程序段,要求实现:求两个多字节数之和,这两个数在10050H地址开始的内存单元中,连续存放,低位在小地址一端,结果放在 这两个数之后。设这两个多字节数均为8个字节。(8分)
答: MOV AX, 1000H MOV DS, AX MOV SI, 50H MOV DI, 58H MOV BX, 60H MOV CX, 4 CLC
AA: MOV AX, [SI] ADC AX, [DI] MOV [BX], AX PUSHF
ADD SI, 2 ADD DI, 2 ADD BX, 2 POPF
LOOP AA HLT
7.要求编写完整源程序实现:求1+2+3+····+100的和,并将累加和保存在AX中。(7分)
答:程序如下:
; ------堆栈段定义,本段定义可省略 S1 SEGMENT STACK
DB 100 DUP(0) S1 ENDS
; ---------程序段定义,不可省略 C1 SEGMENT
ASSUME: CS:C1, SS:S1
START: MOV CX, 64H ;即将100给CX
XOR AX,AX CLC
A1: ADC AX,CX
LOOP A1
MOV AH,4CH INT 21H C1 ENDS
END START
8. 以NUM为首址的存储区中存有若干个字型数,其长度存于NUM1字节单元。求出数据中的最大值,存入NUM2字单元。
MOV SI, OFFSET NUM MOV CX, NUM1 AA2: MOV AX, [SI] AA3: INC SI
CMP AX, [SI] JC AA2 LOOP AA2 HLT
25