51单片机:汇编改C语言(一)

之前答应给同学帮忙做毕设,想着应该很简单。结果老师给了他一份汇编程序,由于自己之前做过汇编编程的工作,就胆(no)大(zuo)妄(no)为(dai)的说是给他翻译成C语言的。
当我仔细瞅了那份程序之后。额,好吧,我只能说我尽力而为吧!

东西只有一篇近2000行的汇编程序和一份原理图,程序中无任何变量,需要变量或者是标志位时,直接操作一个RAM地址,子程序起名也是相当佛系。目前我只注释了一小部分的程序,大概三四百行吧,贴出来,作为一个笔记,以供后面学习。
由于不是本人程序,所以会在程序中做删减,但不会影响汇编语言的学习。注释为?的,意思是我也没看懂到底什么意思……同样的内容,在前面注释过的,后面不再注释。最后,向那个年代用汇编写单片机程序的老师们致敬。嘻嘻!_!

	ORG 0000H	;程序起始地址
	LJMP MAIN
	ORG 0003H	;外部中断0	
	LJMP I0000
	ORG 000BH	;定时器0
	LJMP T0000
	ORG 0023H	;串行中断
	LJMP ES000
	ORG 0030H	;程序存储区(用户RAM)
MAIN:
	MOV R0,#7FH		;将数据7FH存入R0寄存器
MAIN1:
	MOV @R0,#00H	;将0存入7FH地址
	DJNZ R0,MAIN1	;给R0-1,若不为0,则跳转到MAIN1,上面这两条语句是一个小循环,意思是将00-7FH地址清0,以便后续使用。
	MOV SP,#60H		;将60H存入堆栈指针,即栈顶指针地址为60H	
	LCALL WR100		;转到WR100,写数据到外部器件,应该是初始
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值