OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2066|回复: 0

单片机基础汇编语言编程实例

[复制链接]

54

主题

143

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
363
金钱
363
注册时间
2019-3-14
在线时间
44 小时
发表于 2019-5-31 17:34:20 | 显示全部楼层 |阅读模式
单片机汇编语言编程
1.编写程序,用位处理指令实现“P1.4=P1.0∨(P1.1∧P1.2)∨P1.3”的逻辑功能。
MOV C,P1.1
ANL C,P1.2
ORL C,P1.0
ORL C,P1.3
MOV P1.3,C
2.编写程序,若累加器A的内容分别满足下列条件,则程序转到LABLE存储单元。设A中存放的的无符号数。
(1)A≥10;     (2)A>10;     (3)A≤10。
(1)
CJNE A,#10,NEXT
LJMP LABLE
NEXT:
JNC LABLE
(2)
CJNE A,#10,NEXT
LJMP NEXT2
NEXT:
JNC LABLE
NEXT2:
(3)
CJNE A,#10,NEXT
LJMP LABLE
NEXT:
JC LABLE
3.编写程序,查找片内RAM的30H~50H单元中是否有55H这一数据,若有,则51H单元置为FFH;若未找到,则将51H单元清0。
MOV R0,29H
NEXT:
INC R0
CJNE R0,#51H,NEXT2
MOV 51H,#0FFH
AJMP OVER
NEXT2:
CJNE @R0,#55H,NEXT
MOV 51H,#0
OVER:
4.编写程序,查找片内RAM的30H~50H单元中出现0的次数,并将查找的结果存入51H单元。
MOV R0,30H
MOV 51H,#0
NEXT:
CJNE @R0,#00H,NEXT2
INC 51H
NEXT2:
INC R0
CJNE R0,#51H,NEXT
5.在片外RAM中有一个数据块,存有若干字符、数字,首地址为SOURCE要求将该数据块传送到片内RAM以DIST开始的区域,直到遇到字符“$”时结束($也要传送,它的ASCII码为24H)。
MOV DPTR,#SOURCE
MOV R0,#DIST
NEXT:
MOVX A,@DPTR
MOV @R0,A
INC DPTR
INC R0
CINE A,#24H,NEXT
6.片内RAM的30H和31H单元中存放着一个16位的二进制数,高位在前,低位在后。编写程序对其求补,并存回原处。
CLR C
MOV A,#0
SUBB A,31H
MOV 31H,A
MOV A,#0
SUBB A,30H
MOV 30H,A
7.片内RAM中有两个4字节压缩的BCD码形式存放的十进制数,一个存放在30H~33H单元中,另一个存放在40H~43H单元中。编写程序将它们相加,结果的BCD码存放在30H~33H中。
CLR C
MOV R0,#30H
MOV R1,#40H
MOV R2,#4
NEXT:
MOV A,@R0
ADDC A,@R1
MOV @R0,A
INC R0
INC R1
DJNZ R2,NEXT
8.编写程序,把片外RAM从2000H开始存放的16字节数据,传送到片内从30H开始的单元中。
MOV DPTR,#2000H
MOV R0,#30H
MOV R1,#0
NEXT:
MOVX A,@DPTR
MOV @R0,A
INC DPTR
INC R0
INC R1
CINE R1,#16H,NEXT

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-17 11:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表