汇编语言中 JNB的用法是什么啊?
ORG 1000H
START:MOV A,40H
JNB ACC.7,POST
SJMP $
POST:MOV A,#01H 展开
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 位操作类指令
参考资料来源:百度百科--条件转移指令
大概看来,你这程序是要判断一个数是否为正,但程序不完整
JB和JNB为位操作指令,根据后面的第一操作数(位地址)的情形,进行跳转或顺序执行
ACC是可以位寻址的SFR,对应各位是ACC.0~ACC.7,绝对不可以写成A.0~A.7
如:CMP AX,BX。
JNB CHECK(check为某标号)。
也就是如AX >=BX,则转移到CHECK。
转移条件是:CF=0(针对无符号数)。
JNB:位状态不为1时转移目标程序,否则不转移。