跳转指令总结

2024-05-02

跳转指令总结(通用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 ,

包括Rn、@Ri、direct。3.操作数在A、内部RAM中。

(五)堆栈操作指令小结

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,包括Rn、@Ri、direct、#data。

操作码

direst , 包括A、#data。

功能:与(清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 ;包括Cy、bit。

(三)位逻辑与/或/非运算(6条):ANL/ ORL C , 包括bit、/bit。

CPL

包括Cy、bit。

(四)位条件转移(5条):JC/ JNC rel

;进位是否为1判断

上一篇:武陵泛舟,武陵泛舟孟浩然,武陵泛舟的意思,武陵泛舟赏析下一篇:张居正传文言文翻译及阅读答案