无条件转移指令共有以下4条:1.LJMP addr16LJMP addr16指令是3个字节指令,其机器码为02H,addr15~8,addr7~0。3.SJMP relSJMP rel指令是相对寻址方式转移指令,其中rel为偏移量,偏移量rel是一个带符号的8位二进制补码数。因此,有时也称其为散转指令。4条无条件转移指令的功能相同,不同之处在于转移的范围。其中长转移指令LJMP的转移范围最大,为64KB。短转移指令SJMP的转移范围最小,仅为256字节。......
2023-11-17
无条件转移指令是对转移不设置任何的条件。
1.【例3-22】 P1口8个灯依次循环闪烁源程序
实例程序运行效果:在完成了源文件建立、汇编、下载的步骤后,单片机自动运行该程序。安装在P1口的8个灯从P1.0位开始到P1.7位逐一循环闪烁。
程序点评:本程序与例3-1效果一样,但在本程序中将P1口的每一个灯亮灭都设计成了子程序。
2.指令学习
无条件转移指令在MCS51系列单片机指令系统中共有4条,其中包含一组调用无条件转移指令。
1)长转移指令LJMP:LJMP指令的转移范围0000H~FFFFH可达24KB。
2)绝对转移指令AJMP:AJMP指令的转移范围000H~7FFH最大转移范围为2KB。(www.chuimin.cn)
3)短转移指令SJMP:SJMP指令的转移范围256B。其特点是可双向转移,既可向前转移,又可以向后转移。
4)长调用指令LCALL与调用返回指令RET。
在例3-22中共24次应用了长调用指令LCALL。每次所调用程序执行完后都有返回指令ret,以便返回到原调用点执行下一条指令。在例3-22的程序中,还使用了长转移指令(LJMP START)和绝对转移指令(AJMP START)。这两种转移指令的区别是可转移的范围不同。
【例3-23】 短转移指令
实例程序运行效果:在完成了源文件建立、汇编、下载的步骤后,单片机自动运行该程序。安装在P1.0位发光二极管亮。
程序点评:程序中使用了短转移指令SJMP。指令“SJMP $”使程序原地踏步。“$”代表当前程序计数器PC值。
有关零起点学习单片机多语言编程的文章
无条件转移指令共有以下4条:1.LJMP addr16LJMP addr16指令是3个字节指令,其机器码为02H,addr15~8,addr7~0。3.SJMP relSJMP rel指令是相对寻址方式转移指令,其中rel为偏移量,偏移量rel是一个带符号的8位二进制补码数。因此,有时也称其为散转指令。4条无条件转移指令的功能相同,不同之处在于转移的范围。其中长转移指令LJMP的转移范围最大,为64KB。短转移指令SJMP的转移范围最小,仅为256字节。......
2023-11-17
条件转移指令共有8条。1.累加器判零转移指令累加器判零转移指令共有两条:这组指令的功能是对累加器的内容为“0”和不为“0”进行检测并转移。当各自的条件满足时,程序转向指定的目标地址。目标地址的计算与SJMP指令情况相同。指令执行时对标志位无影响。例如,已知累加器=00H,执行指令:2.数值比较转移指令数值比较转移指令共有4条。利用这两条指令可实现循环控制,循环次数存放于寄存器中或直接寻址单元中。......
2023-11-17
程序中的语句通常是按顺序执行,但是需要改变程序的正常流向,可以使用转移语句,例如:如果循环条件需要中途退出循环时,可以考虑采用转移语句退出循环体。......
2023-11-04
MCS-51单片机的算术运算类指令包括加、减、乘、除、加1、减1等指令。这类指令有ADD、ADDC、INC、SUBB、DEC、DA、MUL、DIV共8种。表3-3算术运算类指令注:√表示该指令影响某一标志位。运算结果对PSW的影响同上述4条ADD指令。6.十进制调整指令十进制调整指令只有以下1条:该指令用于BCD码加法运算时,对BCD码的加法运算结果自动进行调整,但对BCD码的减法运算不能用此指令来调整。在运算过程中,单片机按二进制规则进行运算。......
2023-11-17
条件转移指令是对程序转移设置转移条件。执行条件转移指令时,若满足指令中规定的条件则程序转移,若不满足指令中规定的转移条件则程序按地址顺序逐条执行。不同的是所用数值比较条件转移指令不同,密码也可以不同。程序中用了“JNB Pm.n,REL”某口输入位状态判0条件控制转移指令。以累加位C的状态为条件的转移指令共有2条。......
2023-11-07
伪指令是程序员发给汇编程序的命令,用来设置符号值、保留和初始化存储空间、控制用户程序代码的位置。在汇编时伪指令自身不产生机器码,不属于指令系统。常用的伪指令有以下几种。1.汇编起始地址命令ORG该命令总是出现在源程序的开头位置,用于规定目标程序的起始地址。在END之后所写的指令,汇编程序不再处理。一个源程序只能有一个END指令,并放在所有指令的最后。例如:以上指令经汇编后,将对1000H开始的若干内存单元赋值。......
2023-11-17
MCS-51的所有指令均不超过3个字节,且多为单字节指令。为了使“乱飞”程序在程序区迅速纳入正轨,应在编程时多用单字节指令,并在关键的地方人为地插入一些单字节指令NOP,或将有效单字节指令重写,称之为指令冗余。需要注意的是,乱飞的PC必须指向程序运行区,并且必须执行到冗余指令才能使PC纳入正确轨道。......
2023-11-17
MCS-51单片机逻辑运算及移位类指令包括与、或、异或、清0、取反、移位等操作指令。1.逻辑“与”运算指令逻辑“与”运算指令共有以下6条:这组指令中的前4条指令完成源操作数与累加器的内容相与,并将结果送入累加器中。其寻址方式、标志位影响、端口操作与ANL指令相同。表3-4逻辑运算及移位类指令注:√表示该指令影响某一标志位。......
2023-11-17
相关推荐