NEXT: INT A INC R0 SJMP LOOP
COMP: MOV LON,A ;将长度存入LON单元 SJMP $
(2)在以STR为首的地址内部RAM单元开始存放待统计长度的数据块(自设),并以#24作为数据块的结束标志。 (3)单步或断点运行所编程序,注意观察每次转移后PC及统计长度单元LON的变化,并做好记录。 (4)验证运行结果。
(5)改变数据块长度,重做。
《单片机原理与应用》试题010答案
二、 填空题(共20分,每题4分)
1、我们使用的单片机试验箱型号是 TDN-MI 。
2、输入文件后,按F2保存程序,此时文件扩展名是 .ASM。
3、提示装载完毕后,使用U000命令进行反汇编 ,检查程序是否正确装入。
4、将30H单元的内容#67H送R1,用最少的指令实现,指令为:MOV 30H,#67H; MOV R1,30H。 5、弹出操作,使用POP ACC指令。 二、程序分析题(共20分,每题10分) 1、程序如下
2506H M5: MOV SP,#58H; 2509H MOV 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
问:(1)执行POP10H后堆栈内容?
(2)执行M5A:SJMP M5A后,(SP)=? (20H)=? 解
1) 执行ACALL指令时:PC+2?PC:
(SP)+1?SP PC0~PC7?(SP) (SP)+1?SP PC8~PC15?(SP)
2) 子程序返回时,点地址弹出,SP=58H
所以 (1)执行POP 10H后,堆栈内容如左图所示.
5C 0B 5B 0F 5A 25 59 11 58
(2)执行M5A:SJMP M5A后,(SP)=58H, (20H)=0FH
2、解读下列程序,然后填写有关寄存器内容
(1) MOV R1,#48H MOV 48H,#51H CJNE @R1,#51H,00H JNC NEXT1 MOV A,#0FFH SJMP NEXT2 NEXT: MOV A,#0AAH NEXT2: SJMP NEXT2 累加器 A=( )
(2) MOV A,#0FBH MOV PSW,#10H ADD A,#7FH 解
(1) 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 SJMP NEXT2
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,C ? C=1?1=0,OV=0; A中有奇数个1,P=1;
67
有辅助进位位AC=1
若PSW=00,当执行完上述程序段后,将PSW各位状态填入下表: PSW
CY 1
三、编程题(共60分,每题30分)
2、 将片内RAM-2单元(如20H)的内容分成两段,并将它们分别存入2单元和3单元。(高位清零)。
(1) 输入程序。
参考程序: MOV R0,#21H MOV A,20H ANL A,#0FH MOV @R0,A INC R0
AC 1 F0 0 RS1 1 RS0 0 OV 0 F1 0 P 1
MOV A,20H SWAP A ANL A,#0FH MOV @R0
(2) 在某单元(如20H)存入待分字的某数(如5BH)。 (3) 单步或带断点运行该段程序。
(4) 运行过程中注意检查程序的变化,并在最后检查(21H)= , (5) (22H)= 。
2、编程实现字符串长度统计:设在单片机内RAM中从STR单元开始有一字符串《以ASC II码存放》,该字符串以$<其值为24H>结束,试统计该字符串的长度,其结果存于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单元开始存放待统计长度的数据块(自设),并以#24作为数据块的结束标志。 (3)单步或断点运行所编程序,注意观察每次转移后PC及统计长度单元LON的变化,并做好记录。 (4)验证运行结果。
(5)改变数据块长度,重做。
《单片机原理与应用》试题011
三、 填空题(共20分,每题4分)
1、开启微机电源,在软件所在目录键入 命令,选择对应串口号,进入集成操作软件环境。 2、对源文件进行汇编,生成浮动目标文件,文件扩展名是 。 3、用 命令设置断点。
4、将立即数3052H送数据指针DPTR,使用 指令。 5、两寄存器交换数据,使用 指令。 二、程序分析题(共20分,每题10分) 1、程序存储器空间表格如下:
地址 2000H 2001H 2002H 2003H ... 内容 3FH 06H 5BH 4FH ... 已知:片内RAM的20H中为01H,执行下列程序后(30H)=?
MOV A,20H INC A MOV DPTR,#2000H MOVC A,@A+DPTR CPL A MOV 30H,A END: SJMP END 执行程序后,(30H)=
2、分析程序段:
CLR C
MOV A,#91H SUBB A,61H ; ADD A,61H ; DA A ; MOV 62H,A (1)程序执行何种操作?
(2)若已知初值:(60H)=24H,(61H)=72H,则运行后,(62H)= 。
三、
a)
编程题(共60分,每题30分)
编程实现下列逻辑运算Z=(M+N)*(O+P)。设M,N,O,P为片内RAM30H—33H单元,输出结果单元Z地址为34H。
(1) 将下列程序输入到实习装置 参考程序
START:MOV A,M