论坛» 嵌入式开发» MCU

编写简单的8051汇编语言程序(用KEIL编程环境)

高工
2011-10-26 10:45 1楼

1、 试编程计算5678H+1234H的值,结果保存在R1、R2中。
2、.试编程,将片内RAM 30H~40H单元内容清零。
(有代码即可)谢了!

菜鸟
2011-10-26 10:49 2楼

ORG 0000H
AJMP START
ORG 0030H
START: MOV SP,#60H ;堆栈,本程序也可不要
MOV 30H,#56H ;求5678H+1234H
MOV 31H,#78H
MOV 32H,#12H
MOV 33H,#34H
MOV A,31H
ADD A,33H
MOV R2,A ;低8位在R2
MOV A,30H
ADDC A,32H
MOV R1,A ;高8位在R1

MOV R3,#10H ;30H至40H共10H个字节
MOV R0,#30H ;间接寻址模式起始地址为30H
CLR A
LOOP: MOV @R0,A
INC R0
DJNZ R3,LOOP

HERE: JMP HERE ;结束原地循环
END

专家
2011-10-27 07:48 3楼
楼上很给力啊!
助工
2011-11-07 13:24 4楼
不错啊
很经典啊
高工
2012-03-08 10:48 5楼
希望我的能帮到你
(1) 标号: BCDA 功能:多字节BCD码加法 入口条件:字节数在R7中,被加数在[R0]中,加数在[R1]中。 出口信息:和在[R0]中,最高位进位在CY中。 影响资源:PSW、A、R2 堆栈需求: 2字节 BCDA: MOV A,R7 ;取字节数至R2中 MOV R2,A ADD A,R0 ;初始化数据指针 MOV R0,A MOV A,R2 ADD A,R1 MOV R1,A CLR C BCD1: DEC R0 ;调整数据指针 DEC R1 MOV A,@R0 ADDC A,@R1 ;按字节相加 DA A ;十进制调整 MOV @R0,A ;和存回[R0]中 DJNZ R2,BCD1 ;处理完所有字节 RET
共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]