JNB指令的格式: JNB bit ,rel;用法是,判断bit位,即直接寻址位,为“0”则转移,否则顺序执行。
这段程序中JNB的用法是,判断ACC.7,即ACC的第7位,如果为“0”,则跳转到POST程序处,反之,顺序执行。
JNB指令是判位转移指令的一种,以标志位的状态或者以标志位的逻辑运算结果作为转移依据,如果满足转移条件,则转到目标地址所指示的指令,执行否则继续执行下一条指令。
必须指出,条件转移指令转移地址的偏移量限制在-128~+127字节范围内,采用相对转移方式(相对转移指令是指跳转时以当前地址为基准加上相对偏移量进行跳转,一般是在本地址段内跳转。如果需要跳转到较远的地方如跳到另一个地址段,就需要加上跳转的目标段地址)。
扩展资料
汇编语言优缺点:
优点
汇编语言作为机器语言之上的第二代编程语言:
1)可以轻松的读取存储器状态以及硬件I/O接口情况
2)编写的代码因为少了很多编译的环节,可以能够准备的被执行
3)作为一种低级语言,可扩展性很高 。
缺点
1)因为代码非常单调,特殊指令字符很少,所以造成了代码的冗长以及编写的困难
2)因为汇编仍然需要自己去调用存储器存储数据,很容易出现BUG,而且调试起来也不容易
3)就算完成了一个程序,后期维护时候也需要耗费大量的时间。
4)因为机器的特殊性造成了代码兼容性差的缺陷。
参考资料来源:《单片机初级教程--单片机基础》 张迎新 杜小平等编著 北京航空航天大学出版社
第四章 80C51的指令系统 4.7 位操作类指令
参考资料来源:百度百科--条件转移指令
JNB就是后边的位操作码为0则跳转到指定的行地址。
这是汇编指令,应该是JNB SWLOOP, NEXT
是JNB就应该有逗号,而且逗号后还有标号,而SWLOOP是引脚,指令意思为:SWLOOP脚为低电平则转到标号NEXT处,否则继续向下执行。
如果SWLOOP是标号,那应该是JNC SWLOOP
这指令意思就不同了,是不进位(Cy=0)则转到SWLOOP处,否则向下执行。
扩展资料:
模型为:JNB bit,rel,其中bit为直接寻址位,rel为要转移到的地方,通常是一个标号;它的意思是若bit为0,则转移到rel表示的标号处,否则不转移继续往下执行。
JNB是根据某一位的状态判断转移的,当检测位不是1(NB),即为0时就转移,通常用于判断引脚。例如:JNB P1.0, TEST;
功能:当引脚P1.0为0时,就跳转到TEST。
参考资料来源:百度百科-单片机系统指令
JNB转移条件:JNB al, bl ;al里的内容不等于bl时跳转。
JBE转移条件:JBE al, bl ;al里的内容小于或等于bl时跳转。
JGB和JLE是用于比较带符号数的转移指令
JGB转移条件:JGE al, bl ;al里的带符号内容大于或等于bl时跳转。
JLE转移条件:JLE al, bl ;al里的带符号内容小于或等于bl时跳转。
JNB, JBE, JGE, JLE 指令都是汇编语言里的条件转移指令,条件转移指令通常用PC加偏移量的寻址方式令PC指向目的地址。
扩展资料
JNB al, bl ;al里的内容不等于bl时跳转。
JBE al, bl ;al里的内容小于或等于bl时跳转。
同理,JGB是大于或等于,JLE是小于或等于;A(above)大于,B(below)小于,E(equal)等于,用于比较无符号数;G(great)大于,L(less than)小于, E(equal)等于,用于比较带符号数。
PS:cmp指令后用je test指令后用jz。
参考资料来源:百度百科-条件转移指令