51单片机汇编基础——判断、循环结构汇编的写法

一、前言
为啥同学们觉得汇编入门难,C语言入门不难,无非就是C语言比较好理解而已,当你去理解汇编的语法,会发现汇编似乎更简单。
二、查手册
在STC的官方手册都会有这些指令的用法,大家可以先去自己查一下

指令解释
SETB寄存器某一位中置为1
CLR寄存器某一位置为0
JB如果寄存器某一位为1,则跳转
JNB如果寄存器某一位不为1,则跳转
AJMP短跳转
LJMP长跳转

三、语法解释(实战说明)
(1)根据标志位点灯
说明:假设我有一个变量displ1,它的第0位为1则点灯,为0灭灯
C语言案例:

while(1){
	if(displ1 & 0x01){
		P10 = 1;
	}
	else{
		P10 = 0;
	}
}

汇编案例

TEST1:
	JB		DISPL1.0 , TEST2		;判断displ1的第0位是否为1,为1则跳转去test2
	CLR		P1.0					;电平控制脚设置为0
	AJMP	TEST1					;跳转test1形成循环
TEST2:
	SETB	P1.0					;电平控制脚设置为1
	AJMP	TEST1					;跳转test1形成循环

查看注释,其实你们就会发现一些东西
a,汇编的执行也是严格从上到下,但是没有花括号那些规定执行域的东西
b,汇编靠什么实现二分支结构?就是类似JB、JNB这些是 1 / 0 就跳转的指令
c,汇编怎么实现循环?靠跳转,只要我跳转回去前面的标号(也就是test1、test2这些)就可以实现了(类似C语言的goto)

四、总结
今天就暂且不进行实例训练,但是我们今天已经学习了汇编的三大结构的常用写法,对于进行51单片机汇编学习已经迈出了一大步,很快就可以感受汇编的快乐了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值