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

  • 格式:pdf
  • 大小:188.58 KB
  • 文档页数:5

NEXT: MOVX A,@DPTR MOV @R0,A INC DPTR INC R0 INC R1 CINE R1,#16H,NEXT
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
单片机基础汇编语言编程实例
单片机汇编语言编程 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: 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