单片机第五章作业答案
5.试编制一个子程序将字符串‘51 ’装入外部8000H开始的显
示缓冲区。
0000H
0030H
: , #8000H
R1, #0
R0, #20
LOOP: A, R1
A, #5
A,
, A ;1B
;1B
R1 ;1B
R0, LOOP ;3B
: ‘M’,’C’,’S’,’-‘,’5’,’1’,’‘,’M’,’i’,’c’,’r’,’o’
‘c’,’o’,’m’,’p’,’u’,’t’,’e’,’r’
6.试设计一个n字节的无符号十进制数加法子程序,其功能为将(R0)和(R1)指出的内部中两个n字节压缩码无符号十进制数相加,结果存放于被加数单元中。子程序入口时,R0,
R1分别指向被加数和加数的低位字节,字节数n存于R2,出口时R0指向和的最高位字节,为进位位。
30
0000H
MAIN
0030H
MAIN: . #60H
R2,
$
: C
LOOP: A, 0
A, 1
A
0, A
R0
R1
R2, LOOP
8.试设计一个程序,其功能为判断(R2R3R4R5)中压缩码十进制最高位是否为零,若最高位为0,且该十进制数不为0,
则通过左移使最高位不为0。
0000H
MAIN
0030H
MAIN: A, R2
A, #80H
C
LOOP: A, R5
A
R5, A
A, R4
A
R4, A
A, R3
A
R3, A
A, R2
A
R2, A
A, #80H
LOOP
: $
9. 试设计一个双字节无符号整数乘法子程序,其功能为将(R3R2)和(R5R4)相乘,积存放于3033H 。
L L
L
×
L
+
: R7, #04 ;结果单元清0
R0, #33H
: 0,#00H R7,
A , R2 ;取被乘数低位字节
B , R4 ;取乘数低位字节R4
;R4×R2
;调用乘积相加子程序
A , R2
;取被乘数低位字节 R2
B,R5 ;取乘数高位字节R5
;R5×R2
R0 ;积字节指针减1
;调用乘积相加子程序
A,R4
B,R3
;R4×R3
R0
R0
A,R5
B,R3
;R5×R3
R0
R0
:A,0 ;累加子程序
0,A
A,B
R0
A,0
0,A
R0
A,0
A,#00H ;加进位
0,A
11.试设计一个子程序,其功能为将(R0)指出的内部中6个单字节正整数按从小到大的次序重新排列。
2: R4, #5
F0
00H 0入栈
01H ;出栈赋给R1
R1
0: A, R4
R5, A
1: A, 0
B, A
A, 1
A, B,
:
F0
0, A
A, B
1, A
: R0
R1
R5, 1
F0,
R4, 0
:
12.试设计一个子程序,其功能为查表指令:A,,求累加器(A)的平方值,结果送A,入口时(A)<15。
: A,#1
A,
: 0,1,4,9,…,225