记录:从零用汇编学习单片机 1.1.2置数程序设计

欢迎在评论区提出宝贵意见!

设计要求:
将片内RAM从20H开始的连续40个地址内容置为0FEH

汇编源码:

;置数程序设计
;设计要求:将片内RAM从20H开始的连续40个地址内容置为0FEH
		ORG    00H
		MOV    R0,#0D8H			;置位次数设置(256-40=0D8H)
		MOV    R1,#20H			;设置置数开始地址
   SETD:MOV    A,#0FEH			;将累加器A置数
        MOV    @R1,A			;将累加器的内容送入相应地址
		INC    R1				;指向下一个地址
		INC    R0				;次数加1
		CJNE   R0,#00H,SETD		;判断是否达到置位次数?若为否,继续置数
		SJMP   $
		END

C语言源码:

/*
置数程序设计
设计要求:将片内RAM从20H开始的连续40个地址内容置为0FEH
*/
#include 
#include 
#define uchar unsigned char
void main(void)
{
	uchar i;
	for(i=0;i<40;i++)
	{
		DBYTE[0x20+i]=0xFE;
	}
	while(1);
}

Proteus8.0仿真图
记录:从零用汇编学习单片机 1.1.2置数程序设计_第1张图片记录:从零用汇编学习单片机 1.1.2置数程序设计_第2张图片当程序运行完成是,ACC中的内容为FEH,R1中的地址48H,由于源程序中R1的初始值20H,这说明执行了40次(48H-20H=28H=40),20H~40H的单元内容均为FEH,如图所示。

你可能感兴趣的:(51单片机学习)