delay70:
mov r6,#70
D2: mov R7,#248
d1: djnz R7,d1 //248*70次
djnz R6,D2
ret
delay5:
mov r6,#5 //消抖。
F7: mov R7,#248
F8: djnz r7,F8 //248*5次
djnz r6,F7
ret
注意:248=28 ,约等于1ms。delay为延时程序。
温馨提示:在汇编中���序代码的大小写不受影响,但在C语言中就有影响了。
思考1:ret 和 reti都是程序返回指令,有什么区别?
我的回答:ret是子程序返回指令,reti是中断子程序返回指令。区别在于如果是acall 、lcall指令调用的子程序,返回指令就用ret;如果地址是0003,0013,000B,001B,0023调用的子程序,返回指令就用reti。
思考2:mov 20h,#0h 和 setb 20h 都是加1,用什么区别?
我的回答:mov指令中的20h指字节,setb中的20h是位。
旅途结束!
还记得前段时间我一直纠结于汇编语言中的各种指令的语法和功能,直到一个阳光明媚的中午,我一手拿着已经写好的两页半的C语言代码,一手拿着一本单片机的汇编指令查询手册,开始一行一行的翻译,可能汇编代码会在调试中有所错误,但基本逻辑是对的。而且这次C——>汇编,使我更加深入地理解了数据在计算机中的存储与调用。在此期间班主任和同学也给我答疑解惑,相信在以后的道路上,我会更加更深入地理解计算机。越努力,越幸运!