1.2506H M5:MOV SP,#58H 2509H MOV 10H,#0FH 250CH MOV 11H,#0BH
?SP?1?SP,PC7~0?SP?250FH ACALL XHD ;PC+2?PC , ??
SP?1?SP,PC?SP??15~8?addr?PC?10~0??MOV 20H,11H
2514H M5A:SJMP M5A XHD:PUSH 10H PUSH 11H POP 10H POP 11H RET
问:(1)执行POP 10H后堆栈内容?
(2)执行M5A:SJMP M5A后,(SP)= (20H)= 2.A程序存储空间表格如下:
地址 内容
已知:片内RAM的20H中为01H,执行下列程序后(30H)= MOV A,20H INC A
MOV DPTR,#2000H MOVC A,@A+DPTR CPL A MOV 30H,A SJMP $
3.(R0)=4BH,(A)=84H,片内RAM(4BH)=7FH,(40)=20H
MOV A,@R0 MOV @R0,40H MOV 40H,A MOV R0,#35H
问执行程序后,R0= A= 4BH= 40H= 4.若PSW=00, 执行下列程序后,PSW的各位状态如何?
MOV A,#0FBH MOV PSW,#10H ADD A,#7FH CY AC OV P OF RS1 2000H 3FH 2001H 06H 2002H 5BH 2003H 4FH 。。。。。 。。。。。 五. 程序填空(10分)
1.数据块传送,将RAM从30H开始的连续32个单元的内容传递给片内RAM从60H开始的连续32个单元。 ORG 1000H MOV R7,_____
MOV R0, #30H
MOV R1,#60H
LOOP:MOV A,@R0 MOV _____,A INC R0 INC R1 DJNZ R7, _____ SJMP $ END
2. 将4个单字节数放片内30H~~33H,它们求和结果放在片内40H,41H单元。
ORG 1000H MOV R7,#04H MOV R0,30H CLR A MOV 41H,A
LOOP: ADD A,@R0 JNC NEXT
INC _____
NEXT:INC _____
DJNZ R7,LOOP MOV 40H,A SJMP $ END
3. RAM中40H单元内存有一个十六进制数,把这个数转换为BCD码的十进制数,BCD码的十位和个位放在累加器A中,百位放在R2中。
ORG 2200H MOV A,_____ MOV B,#64H DIV AB MOV R2,A MOV A,_____ XCH A,B DIV AB SWAP _____ ORL A,B SJMP $ END
4. 编程序将片内40H-46H单元内容的高4位清零,保持低4位不变。 ORG 1000H MOV R7,#07H
MOV R0,_____
LOOP:MOV A,@R0 ANL A,_____ MOV @R0,A INC R0 DJNZ R7,LOOP SJMP $
END
机模拟试卷008参考答案 一:单选题:(30分) 题号 答案 题号 答案 题号 答案 1 D 11 D 21 D 2 A 12 B 22 A 3 B 13 A 23 A 4 C 14 B 24 D 5 A 15 B 25 D 6 C 16 C 26 C 7 D 17 A 27 C 8 D 18 B 28 C 9 C 19 A 29 B 10 A 20 C 30 B 二.判断题:(10分) 题号 答案 1 √ 2 × 3 √ 4 × 5 √ 6 × 7 × 8 × 9 × 10 × 三.计算题:(22分)
(1)(A)=1AH (CY)=不受影响 (2)REL=40H
(3)(A)= 6DH (CY)= 1 (OV)=1 (AC)=0 (4)(A)=00H (B)=32H (CY)= 总为0 (OV)=1 (5)目标地址=EFF9H 四:阅读并分析程序(28分)
(1)1)执行POP 10H后堆栈内容?(SP)=5AH
2)执行M5A:SJMP M5A后,(SP)=58H (20H)=0FH (2)(30H)=5BH
(3)R0=35H A=7FH 4BH=20H 40H=7FH (4)
CY 1 AC 1 五、 程序填空(10分)
1._#20H_ __R1___ _LOOP____ 2.__41H___ __R0___
3.__40H___ _#0AH____ __A___ 4._#40H____ __#0FH___
机模拟试卷009
OV 0 P 1 OF 0 RS1 1 一、 填空题(共20分,每题4分)
1、 单片机试验系统与微机是通过 相连。
2、 若想进入全屏幕编辑界面,按下 功能键,按ALT+F建立新文件,即可开始输入源文件。 3、 当程序输入错误或需要调整时,使用 命令完成。 4、 将立即数#33H送20H单元使用 指令。 5、 入栈指令使用 指令。
二、 程序分析题(共20分,每题10分) 1、位地址为M、N、Y,程序如下:
MOV C,M ;(M) ?C ANL C, ;(M) MOV Y,C ;(Y)=(M) MOV C,M ;(M) ?C ANL C,N ;(M)
ORL CY ; MOV Y,C 求程序功能表达式:
2、阅读下列程序并回答问题
CLR C MOV A,#9AH SUBB A,60H ADD A,61H, DA A MOV 62H,A
(1) 请问该程序执行何种操作?
(2) 已知初值:(60H)=23H,(61H)=61H,请问运行程序后:(62H)=( )? 三、
编程题(共60分,每题30分)
1、将31H、32H单元与41 H、40H单元的双字节十进制无符号数相加,结果存入32H,31H,30H单元。即(31H)(30H)+(41H)(40H) 32H31H、30H。 (1) 输入程序 参考程序
、
MOV R0,#30H
MOV R1,#40H MOV R2,#02H CLR C L1: MOV A,@R0
ADDC A,@R1 DA A MOV @R0,A INC R0 INC R1 DJNZ R2,L1 CLR A MOV ACC.0,C MOV @R0,A
(2) 在31H、30H单元存入加数如3018,在41H,40H单元存入被加数如8975。 (3)输入程序首地址,(从处为2000H),然后开始单步或断点运行该段程序。
(4)运行过程中检查数据的变化,并在最后检查(32H)= ,(31H)= , (30H)= 。
2、 编程实现逻辑运算:Q=(U *(V+W))+X.Y)+Z。设U~Z的位地址为00H~05H.Q的位地址为07H。《实际中U~Z可以是外部输入端口信号或软件设定的一些控制位》。 实习步骤:
(1)输入所编程序。
MOV C,01H O RL C,02H ANL C,00H
MOV F0,C ;暂存U*(V+W)的值 MOV C,03H ANL C,/04H ORL C,F0 ORL C,/05H
MOV 07H,C ; 保存结果
单片机原理及应用期末考试题试卷及答案大全



