《微型计算机原理与接口技术第三章习题及答案》由会员分享,可在线阅读,更多相关《微型计算机原理与接口技术第三章习题及答案(4页珍藏版)》请在金锄头文库上搜索。
1、第三章第三章 习题及答案习题及答案 2. DS=1000H, BX=0200H, SI=2, 内存 10200H-10205H 单元的内容分别是 10H, 2AH, 3CH, 46H, 59H, 6BH,下列指令执行后,AX=? (1) MOV AX,0200H (2) MOV AX,200H (3) MOV AX,BX (4) MOV AX,3BX (5) MOV AX,BX+SI (6) MOV AX,2BX+SI 答:(1)0200H (2)2A10H (3)0200H (4)5946H (5)463CH (6)6B59H 3. DS=1000H, ES=2000H, SS=3500H,
2、 SI=00A0H, DI=0024H, BX=0100H, BP=0200H,数据段 中变量名为 VAL 的偏移地址值为 0030H,说明下列源操作数的寻址方式和物理地址? (1) MOV AX,100H (2) MOV AX,VAL (3) MOV AX,BX (4) MOV AX,ES:BX (5) MOV AX,SI (6) MOV AX,BX+10H (7) MOV AX,BP (8) MOV AX,VALBPSI (9)MOV AX,VALBXDI (10) MOV AX,BPDI 答:(1) 直接,10100H (2) 直接,10030H (3) 寄存器间接,10100H (4)
3、 寄存器间接,20100H (5) 寄存器间接,100A0H (6) 寄存器相对,10110H (7) 寄存器间接,35200H (8) 相对基址变址,352D0H (9) 相对基址变址,10154H (10) 基址变址,35224H 6. 指出下列指令哪些是错误的,错在哪里 (1) MOV DL,AX (2) MOV 8650H,AX (3) MOV DS,0200H (4) MOV BX,1200H (5) MOV IP,0FFH (6) MOV BX+SI+3,IP (7) MOV AX,BXBP (8) MOV AL,ES:BP (9) MOV DL,SIDI (10) MOV AX,
4、OFFSET 0A20H (11) MOV AL,OFFSET TABLE (12)XCHG AL,50H (13) IN BL,05H (14) OUT AL,0FFEH 答: (1)长度不匹配 (2)立即数不能做目的操作数 (3)段寄存器不能用立即数赋值 (4)不能两个内存 (5)IP 不能用指令直接修改 (6)指令中不能出现 IP (7)BX/BP 应与 SI/DI 搭配 (8)对 (9)SI/DI 应与 BX/BP 搭配 (10)OFFSET 后应该内存 (11)应用 AX (12)不能立即数 (13)IN 必须用累加器 (14)操作数反 10. 某班有 7 个同学英语成绩低于 80
5、分, 分数存在字节类型 ARRAY 数组中, 编程完成:(1) 给每人加 5 分,结果存到 NEW 数组中 (2)把加分后的总分存到字类型 SUM 单元中 (3)把加分后的平均分存到字节类型 AVERAGE 单元中 答: 1 MOV CX,7 LEA SI,ARRAY MOV AX,0 NEXT: ADD BYTE PTRSI,5 ADD AL,SI ADC AH,0 INC SI LOOP NEXT MOV SUM,AX MOV BL,7 DIV BL MOV AVERAGE,AL 11. AX=2508H, BX=0F36H, CX=0004H, DX=1864H,下列指令执行后结果是多少
6、,标 志位 CF=? (1) AND AH,CL (2) OR BL,30H (3) NOT AX (4) XOR CX,0FFF0H (5) TEST DH,0FH (6) CMP CX,00H (7) SHR DX,CL (8) SAR AL,1 (9) SHL BH,CL (10) SAL AX,1 (11) RCL BX,1 (12) ROR DX,CL 答:(1) AX=0408H, CF=0 (2) BX=0F36H, CF=0 (3) AX=0DAF7H, CF 不变 (4) CX=0FFF4H, CF=0 (5) DX=01864H, CF=0 (6) CX=0004H, CF
7、=0 (7) DX=0186H, CF=0 (8) AX=2504H, CF=0 (9) BX=0F036H, CF=0 (10) AX=4A10H, CF=0 (11) BX=1E6C/1E6DH, CF=0 (12) DX=4186H, CF=0 12. 数据段定义如下: DATA SEGMENT STRING DB The Personal Computer & TV DATA ENDS 用字符串操作等指令完成以下功能: (1) 把该字符串传送到附加段中偏移量为 GET_CHAR 开始的内存单元中 (2) 比较该字符串是否与The computer相同,若相同则将 AL 寄存器的内容置
8、1, 否则置 0,并将比较次数送到 BL 寄存器 (3) 检查该字符串是否有&符,若有则用空格符替换 (4) 把大写字母传送到附加段中以 CAPS 开始的单元中, 其余字符传送到以 CHART 开始的单元,然后将数据段中存储上述字符串的单元清零。 答:(1) CLD LEA SI,STRING LEA DI,GET_CHAR MOV CX,26 REP MOVSB 2 (2) 补充在附加数据段定义 STRING1 DB The computer MOV AL,1 CLD LEA SI,STRING LEA DI,STRING1 MOV CX,12 REPZ CMPSB JCXZ SKIP MO
9、V AL,0 SKIP: MOV BX,12 SUB BX,CX (3) CLD MOV AL,& LEA DI,STRING MOV CX,26 NEXT: REPNE SCASB JCXZ SKIP MOV BYTE PTR DI-1, LOOP NEXT SKIP:. (4) LEA SI,STRING LEA DI,CAPS LEA BX,CHART MOV CX,26 NEXT: MOV AL, SI CMP AL,A JB OTHER CMP AL,Z JA OTHER MOV ES:DI,AL INC DI JMP SKIP OTHER: MOV ES:BX,AL INC BX
10、SKIP: MOV BYTE PTRSI,0 INC SI LOOP NEXT 13. 编程将编程将 AX 寄存器的内容以相反的次序传送到寄存器的内容以相反的次序传送到 DX 寄存器中,并要求寄存器中,并要求 AX 中的内容不被 破坏,然后统计 中的内容不被 破坏,然后统计 DX 寄存器中寄存器中 1 的个数是多少。的个数是多少。 答:答: MOV BL,0 PUSH AX 3 MOV DX,0 MOV CX,16 NEXT: SHL AX,1 JNC SKIP INC BL SKIP: RCR DX,1 LOOP NEXT STOP: POPAX 15在下列程序段中分别填入以下指令 (1)
11、LOOP NEXT (2) LOOPE NEXT (3) LOOPNE NEXT 程序执行完后,AX, BX, CX, DX 的内容分别是多少? START: MOV AX,01H MOV BX,02H MOV CX,04H MOV DX,03H NEXT: INC AX ADD BX,AX SHR DX,1 ( ) 答:(1) AX=5 BX=16 CX=0 DX=0 (2) AX=2 BX=4 CX=3 DX=1 (3) AX=3 BX=7 CX=2 DX=0 17. 类型 2 的中断服务程序的起始地址为 0485:0016H,它在中断向量表中如何存放? 答: 物理地址 内容 00008H 16H 00009H 00H 0000AH 85H 0000BH 04H 18. 中断向量表中地址为 0040H 中存放 240BH,0042H 单元存放 D169H,问: (1) 这些单元对应的中断类型是什么? (2) 该中断服务程序的起始地址是什么? 答: (1) 10H (2) D169H:240BH 4