内容发布更新时间 : 2024/11/19 6:31:25星期一 下面是文章的全部内容请认真阅读。
五:分析判断题(判断对错,并指出错误原因)
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
31
(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
32
六、简答题:
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两个单元中。
33
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时,为最小模式
34
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,求该入口地址在中断向量表中如何放置?
35