《微机原理与接口技术》期中试卷答案
专业班级:_________学号:_________姓名:__________总分
一、填空。(30分 1分/空)
1.-32的补码是 E0H 。字节补码CAH所代表的真值是 -54 。 2.压缩BCD数1000H所对应的十进制数为 1000 ;十六进制数为 3E8 H; 二进制数为 1111101000 B;ASCII码为 31303030 。
3.微型计算机主要由 CPU 、 存储器 、 I/O接口 、 I/O设备 总线 组成。
4.8086微处理器的地址总线有 20 根,数据总线有 16 根。 5.已知AX=1234H,BX=5678H,SP=0040H,顺序执行下列程序段并填空:
PUSH AX ;(SS:003FH)= 12 H;(SS:003EH)= 34 H;SP= 003EH ;
装 订 线
PUSH BX ;(SS:003DH)= 56 H;(SS:003CH)= 78 H;SP= 003CH ; 6.8086/8088的寻址方式中,操作数在存储器中的寻址方式有 直接寻址 、 间接寻址 基址寻址 、 变址寻址 、 基址变址寻址 。
7.若将AL的高4位清零,低4位保持不变,可用指令 AND AL,0FH 实现。 若将AL的高4位取反,低4位保持不变,可用指令 XOR AL,0F0H 实现。 若将AL的高4位置1,低4位保持不变,可用指令 OR AL,0F0H 实现。 8.写出执行下列程序段的中间结果: (1) MOV AX, 5634H
ADD AL,AH ;AX= 568AH DAA ;AX= 5690H
9.AX中有一个负数,欲求其绝对值,则用指令 NEG AX ;
二、单项选择题。(10分 1分/题)
(1)8086/8088指令OUT 80H,AL表示( C ) A.将80H送给AL
B.将80H端口的内容送给AL C.将AL的内容送给80H端口 D.将AL内容送给80H内存单元
(2)8088CPU的标志寄存器中,( D )标志位用于反映带符号数运算结果是否溢出。
A.IF B.DF C.TF D.OF
(3)指令一般包括( B )两部分。 A.操作码和地址码 B.操作码和操作数 C.操作数和地址码 D.操作码和数据码
(4)二进制数11001100逻辑左移两位,所得的数与11001100进行“与”运算,最终 结果为( A )。 A.00H B.80H C.03H D.0FFH
(5)当8086访问存贮器0010:4000H单元时,其物理地址为( A ) A.04100H B.40010H C.10400H D.01040H
(6)指令MOV [BX+SI+5], AX,其中目的操作数的寻址方式为( C ) A.间接寻址 B.基址寻址 C.基址变址寻址 D.变址寻址
(7)下列8086指令中,对AX的结果与其他三条指令不同的是 ( D ) A.MOV AX,0 B.XOR AX,AX C.SUB AX,AX D.OR AX,0
(8)计算机系统总线中,可用于传送读、写信号的是 ( C ) A、地址总线 B、数据总线 C、控制总线 D、以上都不对
(9)若用128*8的RAM芯片组成1K字节的存储器,则需要( B )这样的芯片 A.4片 B.8片
C.12片 D.6片
(10) 已知AL,BL中为无符号数, 若使AL≤BL时转到标号AGAIN, 哪个程序段不能实现 此功能 ( D )
A. CMP AL, BL B. CMP AL, BL JC AGAIN JBE AGAIN C. CMP BL, AL D. CMP AL, BL
JNC AGAIN JNB AGAIN
三、判断下列指令是否正确,如不正确,说明原因。(10分 2分/题) (1)MOV AX, DL
错。目的操作数和源操作数的类型不一致。 (2)MOV BX, [DX+10]
错。用于基址或变址寻址的寄存器只能为BX、BP、DI、SI。 (3)SHR AX, 4
错。在移位操作中,移位次数为多次时,必须将移位次数存放到CL寄存器中。 (4)MOV [BX], [SI]
错。目的操作数和源操作数不能同时为存储单元。 (5)MOV CX, 1000H 对
四、设AX=1122H,BX=3344H,CX=5566H,SP=0040H,下述程序执行后AX,BX,CX,DX等通用寄存器的内容各是多少?画出堆栈存储器的逻辑地址及其存储内容和SP指向的示意图。(10分)
PUSH AX PUSH BX PUSH CX POP BX POP AX
POP DX
解: BX=5566H
AX=3344H CX=5566H
DX=1122H
堆栈存储器的逻辑地址、堆栈指示器的指向及栈区的内容如图1-1所示。
五、简答题。(10分)
1.分别指出下列指令中目的操作数的寻址方式。(5分) (1) MOV AX, 1000H (2) MOV AX, ES:1000H (3) ADD AX, [BX+4] (4) SUB AX, [BX+DI+5] (5) MOV [BX], AL (1).立即寻址 (2).直接寻址 (3).基址寻址 (4).基址变址寻址 (5).寄存器寻址
六、编程将下面数据段以$结束的字符串中的小写字母改为大写字母,并应用DOS系统功能调用显示转换后的字符串。(10分) DATA SEGMENT
STR DB‘ heLLo,eveRyboDY!’,‘$’ DATA ENDSC 解答: CODE SEGMENT
ASSUME DS:DATA;CS:CODE START:MOV AX,DATA MOV DS,AX LEA BX,STR A1: MOV AL,[BX]
CMP AL,‘$’;是$,则结束 JE DONE
CMP AL,‘a’
JB NEXT;低于,则为大写字母 CMP AL,‘z’
JA NEXT;高于,则不是字母
SUB AL,20H;将小写字母改为大写字母 MOV [BX].AL NEXT:INC BX JMP A1 LEA DX,STR MOV AH,09H INT 21H DONE:MOV AX.4C00H INT 21H CODE ENDS END START
七、一数据段定义如下: ORG 0000H
DATA SEGMENT S1 DB 1,2,3,4,5 S2 DB ‵12345′ COUNT EQU $-S1 NB DB 3 DUP (2) NW DW -120,-3 P DW -2, S2
DATA ENDS
画出该数据段中数据的存储形式。(10分)
S10102030405S23132333435NB020202NW88FFFBFFPFEFF0500
八、问答题:(10分)
1、在8086/8088的通用寄存器AX、BX、CX、DX中,用作存储器间址的寄存器为?(BX) 2、用作I/O端口间址的寄存器为? (DX) 3、用作循环控制指令(LOOP)的寄存器为?(CX)
4.8086/8088有几个段寄存器?写出其名字。(4个,CS,DS,ES,SS) 5、其中用来存放数据段段首地址的段寄存器为?(DS) 用来存放代码段段首地址的段寄存器为?(CS) 用来存放堆栈段段首地址的段寄存器为?(SS)