汇编 JB 指令

作者&投稿:夕油 (若有异议请与网页底部的电邮联系)
汇编语言中JB,JA,是什么意思~

汇编语言中JB、JA都是条件转移指令,常用于比较两个无符号数的大小,判断条件是CF、ZF状态的组合。为确定CF、ZF状态,转移前用CMP指令设置标志位(CMP A,B)。
当计算机的硬件不认识字母符号,这时候就需要一个专门的程序把这些字符变成计算机能够识别的二进制数。因为汇编语言只是将机器语言做了简单编译,所以并没有根本上解决机器语言的特定性,所以汇编语言和机器自身的编程环境息息相关,推广和移植很难。

扩展资料由于汇编指令系统庞大,因而需构建指令系统体系,其指令数量庞大,格式复杂,可记忆性差等。指令中最难的是指令所支持的寻址方式,其实质就是指令中操作数如何获取。对于处理器而言,就是如何找到他所需的数据。
但对于计算机底层的汇编语言而言,这种寻址方式将涉及大量的计算存储格式,与 复杂的存储管理方式紧密相关,因而难以理解。最后,汇编指令还关系到如何影响标志位,但处理器标志位非常复杂,因而对其机制掌握就比较困难。
传送指令
包括通用数据传送指令MOV、条件传送指令CMOVcc、堆栈操作指令PUSH/PUSHA/PUSHAD/POP/POPA/POPAD、交换指令XCHG/XLAT/BSWAP、地址或段描述符选择子传送指令LEA/LDS/LES/LFS/LGS/LSS等。
逻辑运算
这部分指令用于执行算术和逻辑运算,包括加法指令ADD/ADC、减法指令SUB/SBB、加一指令INC、减一指令DEC、比较操作指令CMP、乘法指令MUL/IMUL、除法指令DIV/IDIV、符号扩展指令CBW/CWDE/CDQE、十进制调整指令DAA/DAS/AAA/AAS、逻辑运算指令NOT/AND/OR/XOR/TEST等。
参考资料来源:百度百科-汇编语言

就算跳转了也不知道的,两者的区别仅仅是R7的初值不同,最后都是进入死循环了,你也区分不出来的。这程序有一个严重的错误,DELAY里用ACALL D调子程序,而在子程序D里又
AJMP DELAY,又跳到了DELAY,这是死循环了,更严重的从子程序中跳转回子程序,永远也执行不到RET指令,最后造成堆栈溢出而死机。

JB是指判断位变量转移指令,JA(jump above)大于则转移到目标指令执行。

JB P1.3,L1意思就是说判断P1.3的值是不是“1” 如果是就跳转到L1程序执行,如果不是就顺序执行下一条指令。

JNAE: jump not above and equal 低于,即不高于且不等于则转移,但执行这条语句之前先用CMP来比较2个无符号数,CMP比较无符号数后影响的是CF,所以JB应该是通过CF来判断的(注意:无符号数的比较在这里用高于和低于,有符号数的比较在这里用大于小于)。

编译背景

任何一种微处理器(CPU)在设计时,就已规定好自己特定的指令系统,这种指令系统的功能也就决定了由该微处理器构成的计算机系统及其基本功能。指令系统中所设计的每条指令都对应着微处理器要完成的一种规定功能操作,即这些指令功能的实现都是由微处理器中的物理器件完成的。

要使计算机完成一个完整的任务,就需要执行一组指令,这组指令通常称为程序。计算机能够执行的各种不同指令的集合就称为处理器(CPU)的指令系统。

以上内容参考:百度百科-汇编指令



是8086的话``
JB其实就是 JNAE: jump not above and equal 低于,即不高于且不等于则转移

但执行这条语句之前先用CMP来比较2个无符号数,CMP比较无符号数后影响的是CF,所以JB应该是通过CF来判断的(注意:无符号数的比较在这里用高于和低于,有符号数的比较在这里用大于小于)

JB其实就是 JNAE: jump not above and equal 低于,即不高于且不等于则转移

但执行这条语句之前先用CMP来比较2个无符号数,CMP比较无符号数后影响的是CF,所以JB应该是通过CF来判断的(注意:无符号数的比较在这里用高于



不要纠缠在具体是哪几个bit.
jb是用来比较两个无符号整数时, 目标操作数小于源操作数时会发生的跳转.
b就是below的意思.


东安县13550823810: 单片机 JB指令 是什么意思 -
斗田加尔: 在51单片机中JB指令的意思是:直接地址位为1则转移.使用格式为:JB bit,rel执行步骤为:JB(PC)←(PC)+3IF (bit) =1 THEN(PC)←(PC)+rel比如:MAIN: MOV P0,#0FFH NOP NOP JB P0.0,NEXT SJMP MAINNEXT: JB P0.0,$ CPL P1.1 SJMP MAIN

东安县13550823810: 单片机汇编指令JBC和JC的区别是什么? -
斗田加尔: 一、作用不同: JBC指令判断该位为1则转移,同时将该位置0. JC指令判断有借位则转移,也就是说两数相减为负转移. 二、含义不同: JBC指令相当与JB和CLR (位) 二条指命的组合,它可在转移的同时清除被判位; JC指令只能对CY进...

东安县13550823810: 汇编语言中 resd 是什么意思 -
斗田加尔: JB是判断位变量转移指令.(汇编语言) 如 JB P1.3,L1 意思就是判断P1.3的值是不是“1” 如果是就跳转到L1程序执行,如果不是就顺序执行下一条指令.

东安县13550823810: 沈美明的汇编语言程序设计中对JB指令的解释是“低于,或者不高于或等于,或进位为1则转移”的理解 -
斗田加尔: “不高于或等于”----这里的 “不” 是否定后面的 “高于或等于” 的

东安县13550823810: 单片机汇编中什么是直接位,什么是进位位 这两条指令JC、JB我老是弄混起来 -
斗田加尔: 指令JC是检测检测进位是1时跳转 JB是检测检测指定位是1时跳转

东安县13550823810: 汇编语言JB是检查哪个标志位的值
斗田加尔: 检查CF的,JB是无符号数比较测试指令,条件是小于则转移,而CPU是通过测试CF是否等于1,如果等于1表示有借位,则说明前面这个数小于后面这个数. 在你所给的指令SHL是逻辑左移指令,每移一位,最高位就移到CF了,所以会对CF进行修改,测试它就可知最高位是0还是1了,但此时一般用JC或JNC来测就更直观了.

东安县13550823810: 单片机汇编指令:( INPUT: JB P1.3 , INPUT )是什么意思 -
斗田加尔: INPUT: JB P1.3 , INPUT;;;等待P1.3为低电平后再执行下一条指令8051单片机指令定义详解——JB bit,rel 说明:如果bit所代表的位数据为1,跳转到rel所指定的地址处去执行.如果bit所代表的位数据为0,则继续执行下一条指令.

东安县13550823810: 单片机汇编语言指令中,条件转移指令JBC与JC的区别是什么? -
斗田加尔: JC是判断C进位标志是否为1,为1则跳转到指定位置. JBC是判断可位寻址区域内指定位是否为1,为1则跳转到指定位置,并同时清除该位(置0).

东安县13550823810: 汇编语言中JB,JA,是什么意思 -
斗田加尔: JB就是转移指令 JB bit,rel 直接位为一则跳转

东安县13550823810: 单片机指令JNB字母各代表什么意思 -
斗田加尔: 这是51单片机的一条汇编语言指令,其中J 代表"跳转JUMP",N代表 "非NO",B代表"位BIT";合起来后该语句意思是:如果某一位或某个管脚的值不是1则程序跳转,是1则顺序执行;通用写法是:JNB bit,rel bit是位变量,rel是跳转时的相对偏移量如:JNB P1.0,20H执行过程如下:如果管脚P1.0是低电平,则跳转到本语句后32+3步之后的位置去执行,3是该语句所占的字节数,20H即10进制的32是偏移量,如果管脚P1.0是高电平,则按顺序执行本语句后的指令;与其类似的语句有:JB bit,rel JNZ rel .

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网