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

单片机汇编语言编程

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

本文转自网络,版权归原作者,如果您觉得不好,请联系我们删除!

广告

关于立创商城

立创商城(WWW.SZLCSC.COM)成立于2011年,致力于为客户提供一站式电子元器件线上采购服务,成交量全国领先。拥有10000多平方米现代化元器件仓库,现货库存超100000种,集团电子全产业链自营服务涵盖:在线EDA(LCEDA)+行业领先的PCB打样/中小批量+元器件商城+钢网制造+SMT贴片+电子设计教育及方案。作为一家品种齐全、自营库存、质量有保障的电子元器件垂直商城,立创商城所有元器件均从原厂或代理商正规渠道采购,保证原装正品,为您提供专业的一站式元器件采购服务。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171230B06SYQ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券