《单片机汇编》期末考试、考研常见考题、习题,题型汇总(四)

此篇文章中涉及的新指令如下:

数量     助记符     说明	     字节数	    执行时间	   指令代码
26,MOV direct,A		将累加器A中的内容送至direct地址单元中	2	1	F5H,direct
27,ADDC A,@Ri	    间接寻址RAM内容加到累加器A中(带进位)	1	1	36H-37H
28,SUBB A,direct	累加器中的内容减去直接寻址字节direct(带借位)	2	1	95H,data
29,MOV A,@Ri		寄存器Ri内为RAM地址,将该地址单元内的数据送累加器A中	1	1	E6H-E7H
30,ADD A,@Ri		间接寻址RAM内容加到累加器A中	1	1	26H-27H

题6

设两个16位二进制数分别存放在地址为44H、45H和46H、47H的内部RAM单元中(低8位先存),求:
(1)两数相加,其和存放地址为48H、49H
(2)两数相减(设存放地址高的16位二进制数为被减数,且结果不产生溢出,即差>=0),其差存放地址为4AH、4BH

解析:此种题考查对16位二进制数的运算

程序源码:
注:方便验证程序正确性,通过手动赋值:
(44H)=90/5AH (45H)=1/01H (46H)=200/C8H(47H)=3/03H
计算结果应该为:
1314,即(48H)=34/22H(49H)=5/05H
(1)

	ORG 0000H
	MOV 44H,#90
	MOV 45H,#1
 	MOV 46H,#200
	MOV 47H,#3
	;上述地址内容通过手动赋值,用于测试
	CLR C
	MOV R0,#44H
	MOV R1,#46H
	MOV A,@R0
	ADD A,@R1
	MOV 48H,A
	INC R0
	INC R1
	MOV A,@R0
	ADDC A,@R1
	MOV 49H,A
	SJMP $
	END

查看内存值:由此可知程序正确
在这里插入图片描述
(2)
注:方便验证程序正确性,通过手动赋值:
(44H)=90/5AH (45H)=1/01H (46H)=200/C8H(47H)=3/03H
计算结果应该为:
622,即(4AH)=110/6EH(4BH)=2/02H

	ORG 0000H
	MOV 44H,#90
	MOV 45H,#1
 	MOV 46H,#200
	MOV 47H,#3
	;上述地址内容通过手动赋值,用于测试
	CLR C
	MOV A,47H
	SUBB A,45H
	MOV 4BH,A
	MOV A,46H
	SUBB A,44H
	MOV 4AH,A
	SJMP $
	END

查看内存值:由此可知程序正确
在这里插入图片描述

发布了26 篇原创文章 · 获赞 23 · 访问量 5744

猜你喜欢

转载自blog.csdn.net/liuxianfei0810/article/details/105486254