微型计算机原理考试题答案

INT 21H CODE ENDS END START

====《汇编语言程序设计》模拟试卷18参考答案====

一 选择题(每题2分,共20分) A B D B D B A D A D 二 填空题(每空1分,共30分)

1.运算器,控制器,存储器,输入设备,输出设备 2.1110111,77 3.操作数,操作码 4.01100011 5.算术和逻辑运算 6.CS,IP

7.1B998,1999,2008 8.汇编

9.机器语言,汇编语言,高级语言 10.立即寻址 1390H 直接寻址 1100H 寄存器间接寻址 1200H 基址+变址相对寻址 1300H 寄存器相对寻址 1300H

三 判断下列指令是否正确,若错误,请给出原因(每小题2分,共20分) 1.(√) 2. (√) 3. (√)

4. (×)JMP跳转必须为字 5. (×)移位次数大于1,必须用CL 6. (×)1000大于字节存储容量 7. (√)

8. (×) BP和BX不能同时为地址计数器 9. (×) IN指令中,源操作数不能是存储单元 10. (×)乘法不能利用立即数

四、写出下面的程序片段(每小题5分,共10分)

1.MOV AX ,X

SUB AX, Y MOV DX, X+2 SBB DX, Y+2 ADD AX, 200 ADC DX, 0 ADD AX, Z ADC DX, Z+2 MOV W, AX MOV W+2, DX

2. MOV CH, 0

D1: SAR DX, 1 RCR AX, 1 LOOP D1

五、宏定义如下,试展开下面的宏调用。(共5分)

1 DB‘My score>90’,0DH,0AH,0 1 DB‘9’0DH,0AH,0 六 程序设计题(15分)

DATA SEGMENT

MESS DB ‘INPUT ERROR!’,OAH, ODH, 0 DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AH,01H INT 21H CMP AL,’A’ JB ERR CMP AL,’Z’ JA ERR ADD AL,20H MOV DL,AL MOV AH,02H INT 21H JMP EXIT

ERR: MOV DX,OFFSET MESS

MOV AH,09H

INT 21H

CODE ENDS END START

====《汇编语言程序设计》模拟试卷19参考答案====

一、单项选择题(每小题2分,共30分)

A B B B A D D A D B C B D C B 二、填空题(每空1分,共20分)

1.硬件系统,软件系统

2.程序员,计算机,机器语言,汇编语言,高级语言 3. 01110101 ,75,,8B 4.2100,0099,21099 5.22636,2263C ,1,0,0,1

三、计算题(每题2分,共20分)

1. (AX)=3200,(SF,ZF,OF,CF)=(0,0,0,0)

2. (AX)=0E00H,(SF,ZF,OF,CF)=(0,0,0,0)MOV [BX], AX 3. (31200H)=2000H,不影响条件码

4. (3FFFEH)=2000H,(SP)=0FFFEH,不影响条件码 5. (31200H)=4FH,(SF,ZF,OF,CF)=(0,0,0,/) 6. (31200H)= 0FDB0H,(SF,ZF,OF,CF)=(1,0,0,1) 7. (31202H)=0FBH, (SF,ZF,OF,CF)=(1,0,0,1) 8. (31203H)=21H, (SF,ZF,OF,CF)=(/,/,1,1) 9. (DX)=121EH,(AX)=0E000H, (OF,CF)=(1, 1) 10. (AL)=38H,(AH)=80H,条件码无定义

四、改错题(10分)下列程序中至少有10个语法错误,请将这些错误找出来。

第一行注释缺分号; 第五行END应为ENDS 第六行SEGENT应为SEGMENT 第七行分号应为逗号

第八行DATA未定义 第十行类型不匹配

第十八行移位次数大于1,不能用立即数 第二十二行ONE的后面应加冒号

第二十四行ABS1后少冒号,指令NEG格式错

第二十五行MOVE后少冒号,传送指令的两操作数类型不匹配 第二十六行停机指令错 第二十七行ENDP应为ENDS]

第二十八行ENDS应为END

五.写出下面的程序片段(不必写完整的上机程序,只写出完成此功能的程序片段)。(5分)

MOV DL,AL NOT DL

TEST DL,01000000B JE EXIT

XOR AL,00010100B

六、程序设计题(15分)

data Segment

X DW 88 S DW

data Ends code segment

assume cs:code, ds:data start: mov ax, data

mov ds,ax mov ax,X cmp ax,0 jl doub cmp ax,10 jle trib sal ax,1 jmp exit

doub: sal ax,1

jmp exit

trib: sal x,1

add ax,X

exit: mov S,ax

mov ah,4ch int 21H

code ends

end ====《汇编语言程序设计》模拟试卷20参考答案====

一、单项选择题(每小题2分,共20分) D B B C C D D D A B 二、填空题(每空1分,共30分)

1.运算器,控制器,输入设备,输出设备,存储器 2.01111010,75 0F8 3.2000,2008,22008 4.22636,2263A 5.汇编 6.1,1,0,0,1

7.立即寻址 2450H 直接寻址 1234H 寄存器间接寻址 5678H 基址+变址相对寻址 2008H 寄存器相对寻址 2008H

三、判断下列指令是否正确,若错误,请说明原因。(20分)

1. (√) 2. (√)

3. (×) 类型不匹配 4. (√)

5. (×) 类型不匹配

6. (×)相对基址变址寻址方式形成的值在汇编指令时是未知的 7. (×) AX不能为地址计数器 8. (√)

9. (×) 立即数不能为目的操作数 10.(×) CX不能为目的操作数 四、写出下面的程序片段(5分) MOV CX, M

LEA SI, Array MOV AX,0 START: ADD AX,[SI] ADD SI,2 LOOP START MOV Total,AX

五.阅读下列程序,回答下列问题:(10分)

(2)不可以,因为ADD指令影响进位标志CF的状态 (3)MOV SI,OFFSET DATA1

(4) 清进位,以便在数据最低字节相加时,可以用ADC指令。

(1)该程序用来将存放在DATA1和DATA2开始的单元中的两个多字节数据相加,并将结果存放在SUM开始的连续单元中

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4