
2012-2013学年第1学期微机原理与接口技术课程试卷(期中卷)
本试卷共页;考试时间 120 分钟;任课教师陈逸菲;出卷时间 2012 年 10 月信息与控制学院自动化专业 10 年级班
学号姓名得分
一、选择题(每小题2分,共20分,答案请写在下面的表格中)
1 2 3 4 5 6 7 8 9 10
C C
D C A D C C B C
1、RESET信号有效后,CPU执行的第一条指令地址为(C)
D、0FFFFH
B、FFFFFH
C、FFFF0H
A、00000H
分析:根据书p29 表2-6可知,复位后CS为FFFFH,IP为0000H,CS:IP指
向的地址为FFFFH:0000H,即物理地址为FFFF0H ,CS:IP指向的位置就是
要执行的指令所在处,所以这是复位后执行的第一条指令地址。
2、以下哪个选项对应的操作数不是内存操作数(C )
D、[BX +02H][SI]
A、[BX+SI+02H]
B、[BX+SI]
C、BX
分析:A、为相对基址变址寻址,B为基址变址寻址,D和A等价,是相对基址
变址寻址另一种表示形式,A、B、D中的操作数都在内存中,属于内存操作数。书上介绍的7种寻址方式中,后5种都是内存操作数。只有C是寄存器寻址,
操作数在寄存器中
3、以下哪条指令是正确的(D)
A、MOV AL, [CX+2]
B、MOV DS, 1000H
[1000H],19H D、MOV DX, [SI]
C、MOV
分析:A错误,相对寄存器寻址中不能用CX;B错误,不能给段寄存器送立即数;C错误,目的操作数类型不明,应该改成MOV BYTE PTR[1000H],19H,或MOV WORD PTR[1000H],19H,显式地说明操作数类型。
4、当8086执行MOV DX, [0000H]指令时,以下无效的引脚信号是(C)
A、M/IO
B、RD
C、WR
D、DEN
分析:该指令是将内存数据段中偏移地址为[0000H]的字数据读入CPU内的寄存
器DX,所以是CPU的读操作,因此为高电平,无效。M/IO应该是高电平,对应于寄存器访问。RD有效,为低电平。DEN有效为低电平,数据缓冲器工作。
5、当8086执行OUT DX, AL指令时,DX寄存器的值(注是端口号)输出到(A)
A、地址总线
B、数据总线
C、控制总线
D、控制字寄存器
分析:OUT DX, AL中DX存放的是端口号,该指令的功能是将AL中的内容输出到相应的端口中,因此DX中是端口地址,在端口访问过程中,端口号应该通过地址总线的低16位传送,所以答案是A。
6、执行“MOV DL, 2AH”和“SHR DL,1”两条指令后,寄存器DL与CF标志分别为(D)
A、DL=10110110
B、DL=00110101 CF=0
CF=1
D、DL=00010101 CF=0
B、DL=00110100
CF=1
分析:2AH=00101010B,SHR为逻辑右移指令,答案为D
7、字符串操作指令的实质是对一片连续存储单元进行处理,这片存储单元是由隐含指针(C)来指定的。
A、ES:SI
B、DS:IP
C、DS:SI或ES:DI
D、ES:SI或ES:IP 分析:见书4.7.1节
8、存储器是计算机中的记忆设备,它主要用来(C)
A、存放数据
B、存放程序
C、存放数据和程序
D、存放微程序
9、以下时间单位中最大的是(A)
A、时钟周期
B、指令周期
C、总线周期
D、机器周期
分析:8086CPU没有机器周期的概念,剩余的选项应该是A A. 数据线较先有效 B. 二者同时有效 C. 地址线较先有效 D. 同时高电平 分析:见书p27/30 最小/大工作模式时序 二、 填空题(每空1分,共10分) 1、设某台微处理器有20根地址总线,16根数据总线,若存储器寻址空间和I/O 地址的寻址空间是分开的,则存储器空间大小为 1MB ,经数据线一次可传送的带符号数的范围是−215~+215−1分析:存储空间与地址线根数n的关系为,存储空间=2n Byte 数据线为m根,则用m位二进制位表示带符号数,最高位为符号位,剩余位参 于数值权重,带符号数−2m-1~+2m-1−1 2、将35H和76H相加,则SF= 1 , CF= 0 ,OF= 1 分析:见作业本 3、假定某8086CPU的时钟频率为12 MHZ,则它的一个基本总线周期是 1/3us 分析:一个基本总线周期包含4个时钟周期,1个时钟周期为1/12us,所以一个 基本总线周期是 1/3us 4、八位二进制补码1111 0110B对应的真值-10 分析:该数的原码计算过程为:10001001->10001010 ,最高为是符号位,剩余 的是绝对值,所以真值是-10 5、调用程序、子程序传送参数的方法通常寄存器 、内存单元 和堆栈三种方法 分析:见书4.6节 三、 指令分析题(15分) 1.指出下列指令源操作数的寻址方式(4分) (1)MOV BX,100H 立即寻址 (2)MOV AX,DAT[BX][DI] 相对基址变址寻址 (3)ADD AX,BX 寄存器寻址 (4)MOV BX,[100] 直接寻址 2.指出下列指令的错误(5分) (1)MOV AH,BX 源操作数和目的操作数类型长度不一致(2)ADD 15H,BX 目的操作数不能是立即数 (3)MOV CS,AX 段寄存器CS的值不能修改 (4)MOV AX,[SI][DI] SI和DI不能同时使用 (5)MOV BYTE PTR[BX],1000 源操作数超出目的操作数的范围 3、说出下列各组指令的区别(假设BUF为字型变量)(6分) (1) OR AX,00FFH OR AX,[00FFH] 第一条指令是将AX中的内容与立即数00FFH按位相或 第二条指令是将AX中的内容与数据段偏移地址为00FFH处的字数据按位相或(2) LEA BX,BUF MOV BX,BUF 第一条指令是将BUF的偏移地址送BX,第二条指令是将BUF变量的值送BX 四、 问答题(15分) 1、请写出8086和8088CPU的主要不同之处(答出3点不同即可)。(6分)答:(1) 8086的数据线是16根,8088是8根 (2) 8086 BIU中指令队列是6个字节,8088是4个字节 (3) 8086的存储器分奇体和偶体,8088不分 (4) 8086 的存储器和I/O访问引脚状态与8088刚好相反 2、在存储器中存放的信息如图所示,试读出20042H单元的字节内容和20041H 字单元的内容。(4分) 20041H 20042H 20043H 答:20042H单元的字节内容为32H,20041H字单元内容为329AH 分析:20041H字单元,表示从20041H开始连续取出两个字节的数据,注意低地址单元内容为低字节,高地址单元内容为高字节。 3、执行下述指令后DAT2中前5个数据是什么?(5分) DAT1 DB 0,1,2,3,4,5,6,7,8,9 DAT2 DB 10 DUP(?) ...... MOV CX, 5 MOV BX, 5 MOV SI, 0 MOV DI,0 N1: MOV AL, DAT1[BX+SI] MOV DAT2[DI], AL INC SI INC DI LOOP N1 答:分别是5,6,7,8,9分析:第一次进入循环时指令“MOV AL, DAT1[BX+SI]”的源操作数“DAT1[BX+SI]”地址为DAT1+5,即指向数字5,AL的值就是5。指令MOV AL的目的操作数“DAT2[DI]”的地址就是DAT2+0,指向DAT2 DAT2[DI], 的第1个字节。接着指针SI和DI分别加1,依次将后面4个数也复制到DAT2中,所以循环结束后DAT2中前5个数据分别是5,6,7,8,9 五、 设计题(27分) 1、写出完成下列功能的指令或伪指令。(16分) (1) 将ES段编移地址为0500H的存储单元的内容传送到BL中。 MOV BL, ES:[0500H] (2) SF=1时,程序转移到NEXT处。 JS NEXT (3) 将AX的值传送到堆栈栈顶。 PUSH AX (4) AX与70进行减法运算,但不改变AX的值,只影响状态标志。 70 CMP AX, (5) 存STRING开始的存储单元定义字符串“HELLO!” STRING DB ‘HELLO!’ (6) 写出指令序列,把AX中的最右4位置1,AX中最左3位清0,并且把AX 中的7,8,9位取反。(6分) OR AX, 000FH AND AX, 1FFFH 0380H XOR AX, 2、请编制一个程序,求出下列公式中的值,并将S值存放在RESULT单元中。 S=(x-y)2/z 其中x,y,z 均为8位无符号数,分别存放在V ARx、V ARy、V ARz的存储单元中。(9分) (要求各段定义完整) DATA SEGMENT(1分) (1分) ? RESULT DB V ARx DB ? (1分)V ARy DB ? V ARz DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA(1分);装入数据段段地址 AX MOV DS, MOV AL, V ARx(1分) SUB AL, V ARy(1分);x-y AL MOV BL, MUL BL(1分);(x-y)2 ->AX V ARz(1分) MOV BL, DIV BL(1分);(x-y)2/z->AL AL(1分) MOV RESULT, 4CH MOV AH, INT 21H CODE ENDS END START(1分) 六、(13’)用1K×4的2114芯片组成2K×8的存储器系统(见图) (1)试求每组芯片组的地址范围 (2)若要构成4K×8的存储器,共需多少芯片,分几组,地址线如何选择,说明片选和片内地址线的根数和具体分配情况。 答: (1) 4分,每个地址1分 A11A10A9A8A7~A0地址 第1组0 0 0 0 0~0 000H 0 0 1 1 1~1 3FFH 第2组0 1 0 0 0~0 400H 0 1 1 1 1~1 7FFH (2) 需要4K/1K=4组芯片(1),每组8/4=2片(1’),总共4×2=8片(1’)。其中片内地址线为log24K=10根地址线(2’),选用A9~A0(1’), 片选地址线为log24=2根(2’),选用A11~A10(1’)。 第 7 页共 7 页
