当前位置:问答库>考研试题

2017年兰州理工大学微机原理及接口(同等学力加试)复试仿真模拟三套题

  摘要

一、解答题

1. 8259A 的初始化命令字和操作命令字有什么差别?它们分别对应于编程结构中哪些内部寄存器?

【答案】初始化命令字通常在系统初始化阶段设置,从开始,按照固定的次序设置,一经设置完成,则在以后的操作中基本保持不变。操作命令字是在程序执行阶段向8259A 发出的命令字,实现以8259A 的状态、中断方式和过程的控制。操作命令字可在一个程序中多次设置,从而改变中断的方式。初始化命令字有4个,分别为

分别为

2. ROM 和RAM 各有何特点和用处?

【答案】(1)ROM 称为只读存储器,用于存放固定程序的存储器,一旦程序存放进去之后,即不可改变。也就是说,不能再“写”入新的字节,而只能从中“读”出其所存储的内容。

(2)RAM 称为随机存储器,分为静态RAM 和动态RAM 。不但能读取已存放在其各个存储单元中的数据,而且还能够随时写进新的数据,或者改写原来的数据。常用于主存的组成。

3. 写出一条能完成下述操作的指令。

(1)将AX 的高字节清零,低字节不变。

(2)将BX 的低字节置成“1”,高字节不变。

(3)将CX 的高字节变反,低字节不变。

【答案】(1)将AX 的高字节清零,低字节不变的指令如下:

(2)将BX 的低字节置成“1”,高字节不变的指令如下:

(3)将CX 的高字节变反,低字节不变的指令如下:

4. 什么是描述符?什么是描述符表?举例说明描述符的作用。

【答案】(1)描述符指一组64位的信息,它包括所需段的基址、长度及其他相关信息。

(2)描述符表是一个特殊的段,段内按8字节分组,即每8个字节为一个描述符,在描述符表中的每一个描述符均应有一个选择符与其对应。

(3)例如存储器状态的描述符,8个字节中,2, 3, 4, 7四个字节提供了段的基址32位。0, 1两个字节与6字节中的低4位共20位确定了段的长度。5, 6字节的其他12位指明该段的权限值,包括段长度、段类型、偏移量位数、操作类型等相关信息。

第 2 页,共 26 页 操作命令字有3个,

5. 80X86的指令有哪些寻址方式?它们的具体含义是什么?指令中如何表示它们?

【答案】(1)寄存器寻址

操作数是寄存器,操作的数据在指令指定的寄存器中。如:MOVBX ,AX

(2)立即寻址

操作数是数值表达式,操作数就是操作的数据,这样的操作数称为立即数。立即数就在指令中,实际上是不需要寻找的。如:MOV AL,5

(3)直接寻址

操作的数据在存储器中,其偏移地址由不含寄存器的地址表达式给出,段基址或段选择字(在不作专门说明时)由当前数据段寄存器DS 确定。如:MOV AX ,W ,其中字变量W 实在DS 中定义的。

(4)间接寻址

操作的数据在存储器中,其偏移地址在指令给出的方括号中的寄存器中,即方括号中的寄存器的内容为操作数据的偏移地址。如:MOV CX,[BX]

(5)基址寻址

操作的数据在存储器中,其偏移地址就是指令中给出的地址表达式的偏移地址,段基址或段选择字由变量和基址寄存器确定在哪一个段寄存器中。如:MOV[BX+BUF+2],AL

(6)变址寻址

变址寻址与基址寻址类似,只不过是用变址寄存器取代基址寄存器。如:MOV BX ,5MOV BUF[BX],,BH

(7)基址变址寻址

操作的数据在存储器中,其偏移地址是指令中给出的地址表达式的偏移地址,地址表达式中既有一个基址寄存器又有一个变址寄存器。如:MOV[BX+SI+5],AX

(8)比例变址寻址

操作的数据在存储器中,其偏移地址就是指令中给出的含有变址寄存器x 比例因子的地址表达式的偏移地址,段基址或段选择字的确定同变址寻址。如:MOV EBX,[ESI×4]

(9)基址比例变址寻址

操作的数据在存储器中,其偏移地址就是指令中给出的地址表达式的偏移地址,地址表达式中既有一个基址寄存器又含有变址寄存器X 比例因子。如:

6. 给定一个堆栈区,其地址为

请问:(1)栈顶地址的值;(2)栈底地址的值;(3)在堆栈段寄存器SS 中的段地址是多少?

(4)若存入数据245AI , 在堆栈存储区如何放置,此时SP 的值是多少?

【答案】(1)

第 3 页,共 26 页

(3)

(4)

二、编程题

7. 编写程序将DX 、AX 中的32位数据左移一位,低位补零。

【答案】DX 、AX 中的32位数据左移一位,低位补零,对AX 中的低字采用移位指令SHL ,移位后原AX 中的最高位移入到CF 中。再将CF 的值移到DX 中的最低位,然后依次左移,DX 中的最高位进入CF ,也就是说,DX 要CF 参加移位,所以只能使用带进位的循环左移指令RCL 指令。带进位的循环左移指令示意图如图所示。

图 带进位的循环左移指令示意图

指令如下:

8. 编写程序:给1A000H 开始的256个内存单元均减去1,若发现某个单元减为0则立即退出循环,其后的单元不再减1。

【答案】1A000H 是物理地址,我们可以设DS=1A00H,偏移地址则为0。程序如下:

9. 用串操作指令以外的其他8086指令改写下列指令,要求保持其功能不变。

①REPMOVSB

②REPSTOB

【答案】下列带重复前缀的串操作指令就是循环指令,它的循环次数为CX 的内容,当REP 指令与MOVSB 或STOB 指令一起使用时,若CX 的内容不为0, 则REP 指令是紧接在它后面的字符串操作指令重复执行(CX )次。每执行一次字符串操作指令,计数器CX 的内容自动减1, 直到CX=0时,退出串处理循环,转而执行下一条指令。

①REP MOVSB指令是将(CX )个字节从DS :SI 寻址的源串传送到由ES :DI 寻址的目的串。

第 4 页,共 26 页