1、5、弹出操作,使用POP ACC指令。二、程序分析题(共20分,每题10分)1、程序如下2506H M5: MOV SP,#58H; 2509MOV 10H,0FH; 250CH MOV 11H,#0BH; 250FH ACALL XHD; 2511H MOV 20H,11H 2514H M5A: SJMP M5A XHD: PUSH 10H PUSH 11H POP 10H POP 11H RET问:()执行后堆栈内容?()执行:后,()?()? 2、解读下列程序,然后填写有关寄存器内容(1) MOV R1,#48H MOV 48H,#51H CJNE R1,#51H,00H JNC NEX
2、T1 MOV A,#0FFH SJMP NEXT2 NEXT: MOV A,#0AAH NEXT2: 累加器 A=( )(2) MOV A,#0FBH MOV PSW,#10H ADD A,#7FH若,当执行完上述程序段后,将各位状态填入下表:三、编程题(共60分,每题30分)1、 将片内RAM2单元(如20H)的内容分成两段,并将它们分别存入2单元和3单元。(高位清零)。(1) 输入程序。参考程序:MOV R0,#21HMOV A,20HANL A,#0FHMOV R0,AINC R0SWAP AMOV R0(2) 在某单元(如20H)存入待分字的某数(如5BH)。(3) 单步或带断点运行该
3、段程序。(4) 运行过程中注意检查程序的变化,并在最后检查(21H)= , (5) (22H)= 。2、编程实现字符串长度统计:设在单片机内RAM中从STR单元开始有一字符串以ASC II码存放,该字符串以$结束,试统计该字符串的长度,其结果存于LON单元。 (1)输入所编程序 START: CLR A ;计数单元清零 MOV R0,#STR LOOP: CJNE R0,#24H,NEXT ;判断字符串是否结束 SJMP COMP NEXT: INT A INC R0 SJMP LOOP COMP: MOV LON,A ;将长度存入LON单元 SJMP $ (2)在以STR为首的地址内部RAM
4、单元开始存放待统计长度的数据块(自设),并以24作为数据块的结束标志。(3)单步或断点运行所编程序,注意观察每次转移后PC及统计长度单元LON的变化,并做好记录。(4)验证运行结果。(5)改变数据块长度,重做。单片机原理与应用试题010答案二、 填空题(共20分,每题4分) 解1) 执行指令时:()()()()子程序返回时,点地址弹出,所以()执行后,堆栈内容如左图所示5C 0B5B 0F5A 2559 1158()执行:后,(), ()() MOV R1,#48H ;48H 送 R1 MOV 48H,#51H ;51H送(48H) CJNE R1,#51H,00H ;(R1)GN #51相比,相等,顺序执行 JNC NEXT1 ;没借位转,NEXT1 MOV A,#0FFH ;有借位,FFH送A NEXT1 MOV A,#0AAH ;0AAH送A NEXT2 SJMP NEXT2 累加器 A=(0AAH) (2) MOV A,#0FBH MOV PSW,#10H 00010000送PSW ADD A,#7FH由 11111011 + 01111111 _ 1 01111010所以,有进位CY=1,C6 7=110,=0; A中有奇数个1,=1;有辅助进位位2、 将片内RAM2单元(如20H)的内容分成两段,并将它们分别存入2单元和3单元。