跳转指令总结(通用2篇)
篇1:跳转指令总结
JE;等于则跳转
JNE;不等于则跳转
JZ;为 0 则跳转
JNZ;不为 0 则跳转
JS;为负则跳转
JNS;不为负则跳转
JC;进位则跳转
JNC;不进位则跳转
JO;溢出则跳转
JNO;不溢出则跳转
JA;无符号大于则跳转 JNA;无符号不大于则跳转 JAE;无符号大于等于则跳转 JNAE;无符号不大于等于则跳转
JG;有符号大于则跳转 JNG;有符号不大于则跳转 JGE;有符号大于等于则跳转 JNGE;有符号不大于等于则跳转
JB;无符号小于则跳转 JNB;无符号不小于则跳转 JBE;无符号小于等于则跳转 JNBE;无符号不小于等于则跳转
JL;有符号小于则跳转 JNL;有符号不小于则跳转 JLE;有符号小于等于则跳转 JNLE;有符号不小于等于则跳转
JP;奇偶位置位则跳转 JNP;奇偶位清除则跳转 JPE;奇偶位相等则跳转 JPO;奇偶位不等则跳转
篇2:跳转指令总结
共性:
(1)立即数不能用作目的操作数。
(2)以累加器A为目的操作数的指令影响P标志位。
(3)Rn与Rn、Rn 与@Ri、@Ri与@Ri不能同时出现在指令的源、目的操作数中。
操作数的表现形式:
内部RAM:A、Rn、@Ri、direct、#data 外部RAM:@DPTR、@Ri 外部ROM:@A+DPTR、@A+PC
一、数据传送指令(5种/29条)
对标志位的影响:除以累加器A为目的操作数的数据传送指令对P标志位有影响外,其余数据传送指令均不影响标志位。
格式:
MOV
(一)内部RAM数据传送指令 1.指令操作码:MOV 2.源、目的操作数均在片内RAM、SFR中。
3.操作数A、Rn、@Ri、direct、#data之间,除Rn之间、Rn 与@Ri之间、@Ri之间不能直接传送外,其余均可直接传送。
4.源和目的操作数同为一种寻址方式只有直接地址direct。
(二)外部RAM数据传送指令 1.指令操作码:MOVX 2.源、目的操作数均在片外RAM中,其中有一个必须是A。
3.操作数为@DPTR、@Ri,只能通过累加器A,采用寄存器间接寻址方式。
@Ri:片外RAM的低256个单元,@ DPTR:片外RAM的全部64KB的空间。
(三)程序存储器(ROM)数据传送指令 1.指令操作码:MOVC,主要用于查表。
2.源操作数在片外ROM中,目的操作数在A中。
3.操作数为@A+DPTR、@A+PC,只能读入累加器A中。
@A+DPTR :远程查表表可以放在64KB ROM的任何地址。
@A+PC:近程查表,表只能在查表指令后的256B ROM的地址空间中。4.偏移量A的计算方法:
@A+DPTR:A=欲查数值距离表首地址的值
@A+PC: A=表首地址-当前指令的PC值-1
(四)数据交换指令 1.半字节交换
SWAP A
;(A)3~0←→(A)7~4
XCHD A , @Ri
;(A)3~0←→((Ri))3~0 2.字节交换
XCH A ,
(五)堆栈操作指令小结
1.指令操作码:PUSH,POP。
2.一个操作数在由SP设置的堆栈中,另一个在内部RAM中。3.PUSH入栈,先加SP,后入; POP出栈,先出,后减 SP。
4.堆栈操作指令是直接寻址指令,直接地址不能是寄存器名。堆栈操作以栈指针SP为间址寄存器的间址寻址方式。
5.用于执行中断、子程序调用、参数传递等程序的断点保护和现场保护。
(六)存储器中数据传送小结
1.CPU内部RAM用MOV指令,不能在两个Rn/@Ri之间直接传送。2.片外 RAM用MOVX指令:
低256B,可在A与@Ri之间传送;
64KB范围内,可在A与@DPTR之间传送。
3.ROM用MOVC指令,只能用MOVC A,@A+DPTR/MOVC A,@A+PC。
二、算术运算指令(6种/24条)
对标志位的影响:除加
1、减1指令外,均影响标志位。
(一)加法运算:(ADD ——4条)
(二)带进位加法运算:(ADDC——4条)
(三)带借位减法运算:(SUBB ——4条)
所有的加法、带进位加法、带借位减法运算的目的操作数均是A,即最终结果应存入 A,源操作数为Rn、@Ri、direct、#data。
加法运算(ADD);(A)(A)+(第二操作数)
带进位加法(ADDC);(A)(A)+(Cy)+(第二操作数)
带借位减法(SUBB);(A)(A)-(Cy)-(第二操作数)
(四)加1/减1操作:(INC,DEC——9条)
INC, DEC与用加/减法指令做加1/减1 操作不同之处在于INC、DEC不影响标志位,DPTR无减1。操作数为A、Rn、direct、@Ri、DPTR。
(五)单字节乘/除运算:(MUL,DIV——2条)
两个单字节数的乘/除法运算只在A与B之间进行。MUL AB:
(A)与(B)相乘, 积为16位数,(B)积的高8位;(A)积的低8位 DIV AB:
(A)除以(B),结果用2字节表示,(A)商的整数部分;(B)余数
(六)十进制调整:(DA
A——1条)
用于两个BCD码之间的相加,这条指令只能跟在 ADD 或 ADDC 之后。
三、逻辑运算和移位指令 对标志位的影响:目的操作数是A时影响P标志位。除了两条带进位的循环移位指令影响C标志外,其余均不影响PSW中的各标志位。
(一)逻辑与、或、异或:与(ANL—6条),或(ORL—6条),异或(XRL—6条)
操作码:ANL、ORL、XRL 格式:操作码
A,
操作码
direst ,
功能:与(清0或者保留某些位)、或(置1或者保留某些位)、异或(取反或者保留某些位)。模拟各种数字逻辑电路的功能,进行逻辑电路的设计。
(二)循环移位指令(4条)
不带进位的循环左、右移位(为RL, RR)
带进位的循环左、右移位(RLC, RRC)格式: 操作码
A 左移一位相当于乘2,右移一位相当于除以2。
(三)累加器清0与取反指令(2条)
格式:CLR/ CPL
A
标志位:CLR只影响P标志位,CPL 不影响标志位。
四、控制转移指令(4种/17条)
功能:改变程序的执行顺序——改变当前PC值。
对标志位的影响:除了CJNE影响PSW的进位标志位Cy外,其余均不影响PSW的各标志位。
地址偏移量rel的计算:
rel = 转移目标地址-转移指令地址(当前PC值)- 2
(一)无条件转移(4条)
长转移指令LJMP addr16 : 64KB
绝对转移指令AJMP addr11 :2KB
相对(短)转移指令SJMP rel : -128~+127(补码表示)
间接(散)转移指令JMP @A+DPTR : 64KB
在编程中经常使用短转移指令SJMP和相对转移指令AJMP,以便生成浮动代码。
(二)条件转移(判0跳转)(2条): JZ /JNZ rel;结果是否为0判断
(三)比较转移指令(4条):CJNE A, direct / #data, rel;比较,不相等则转
CJNE Rn /@Ri, #data, rel 标志位:影响Cy标志位,不影响其他标志位。
(四)循环(减1条件)转移指令(2条):DJNZ Rn /direct, rel;减1不等于0则转
(五)子程序调用与返回(4条)
绝对短调用指令
ACALL addr11
绝对长调用指令
LCALL addr16
子程序返回指令
RET
中断返回指令
RETI
注意子程序调用过程中的入出口参数。
(六)空操作:(NOP——1条)“耗时”一个机器周期。
五、位操作指令(4种17条)
对标志位的影响:对Cy的操作影响C标志位,其余均不影响PSW的各标志位。寻址范围:片内RAM位寻址区20H~2FH,SFR中的11个可位寻址特殊寄存器中的83个可寻址位。
注意:以Cy作为位累加器。正确表示位地址。
(一)位传送(2条): MOV C, bit /MOV bit, C
(二)位清零/置位(4条):CLR/
SETB
(三)位逻辑与/或/非运算(6条):ANL/ ORL C ,
CPL
;
(四)位条件转移(5条):JC/ JNC rel
;进位是否为1判断
【跳转指令总结】相关文章:
数控车床螺纹加工指令总结04-17
Linux学习中vi指令的总结05-07
步进阶梯指令范文05-23
手机指令秘籍范文05-31
微机原理指令小结07-18
实验一 指令功能训练04-22
英语简单课堂指令语05-07
指令系统部分考试题04-07
劳动监察指令整改报告01-13
普通高考考试指令内容01-28