80C51指令表
80C51单片机指令集

80C51指令系统数据传送指令助记符指令功能字节数周期数对标志位影响P OV AC CYMOV A , #data A←DATA 8位立即数送A 2 1 √×××MOV direct ,#data data←Direct 8立即数送直接寻址单元 3 2 ××××MOV @Ri ,#data (Ri)←Data 8位立即数送Ri间接寻址单元 2 1 ××××MOV Rn ,#data Rn←Data 8位立即数送寄存器 2 1 ××××MOV DPTR ,#data16 DPTR←Data16 16位立即数送DPTR高8位送DPH,低8位DPL3 2 ××××MOV direct2,direct1 Direct2←(direct1) 直接寻址单元送直接寻址单元 3 2 ××××MOV direct ,@Ri direct←((Ri)) 间接寻址数据送直接单元 2 2 ××××MOV direct ,Rn direct←(Rn) 寄存器内容送直接寻址单元 2 2 ××××MOV @Ri ,direct (Ri)←(direct) 直接寻址数据送Ri间接寻址单元 2 2 ××××MOV Rn ,direct Rn←(direct) 直接寻址数据送寄存器 2 2 ××××MOV A ,direct A←(direct) 直接寻址数据送累加器 2 1 ××××MOV A ,@Ri A←((Ri)) Ri间接寻址数据送累加器 1 1 ××××MOV A ,Rn A←(Rn) 寄存器类容送累加器 1 1 ××××MOV direct ,A direct←(A) 累加器内容送直接寻址单元 2 1 ××××MOV @Ri ,A (Ri)←(A) 累加器内容送Ri间接寻址单元 1 1 ××××MOV Rn ,A Rn←(A) 累加器内容送寄存器 1 1 ××××MOVX A ,@Ri A←((Ri)) Ri间接寻址的外部RAM单元读 1 2 ××××MOVX @Ri ,A (Ri)←(A) Ri间接寻址的外部RAM单元写 1 2 ××××MOVX A ,@DPTR A←((DPTR)) DPTR间接寻址的外部RAM单元读 1 2 ××××MOVX @DPTR ,A (DPTR)←(A) DPTR间接寻址的外部RAM单元写 1 2 ××××X代表外部,外部数据存储器读/写只能通过累加器A使用间接寻址方式进行,间接寄存器可是Ri或DPTR MOVC A ,@A+DPTR A←((A)+(DPTR)) 程序存储器读 1 2 √×××MOVC A ,@A+PC A←((A)+(PC)) 程序存储器读 1 2 √×××程序存储器只能读,不能写,包括内部存储器及外部存储器,通过累加器A进行XCH A ,Rn (A)⇔(Rn) 寄存器寻址字节交换 1 1 √×××XCH A ,direct (direct) ⇔(A) 直接寻址字节交换 2 1 √×××XCH A ,@Ri ((Ri)) ⇔(A) Ri间接寻址字节交换 1 1 √×××XCHD A ,@Ri ((Ri))3~0⇔(A)3~0 Ri间接寻址低半字节交换 1 1 √×××SWAP A (A)3~0⇔(A)7~4 累加器内容高低半字节交换 1 1 ××××PUSH direct SP←(SP)+1 , (SP)←(direct) 进栈 2 2 ××××POP direct direct←((SP)) , SP←(SP)-1 出栈 2 2 ××××进出栈只能写为“PUSH ACC”和“POP ACC”,不能用“A”算术运算类指令算术运算指令都按8位二进制无符号数执行助记符指令功能字节数周期数对标志位影响P OV AC CYADD A ,#data A←(A)+data 立即数加法 2 1 √√√√ADD A ,direct A←(A)+(direct) 直接寻址加法 2 1 √√√√ADD A ,@Ri A←(A)+((Ri)) 间接寻址加法 1 1 √√√√ADD A ,Rn A←(A)+(Rn) 寄存器寻址加法 1 1 √√√√ADDC A ,#data A←(A)+data+(CY) 立即数带进位加法 1 1 √√√√ADDC A ,direct A←(A)+(direct)+(CY) 直接寻址带进位加法 2 1 √√√√ADDC A ,@Ri A←((Ri))+(A)+(CY) 间接寻址带进位加法 1 1 √√√√ADDC A ,Rn A←(Rn)+(A)+(CY) 寄存器寻址带进位加法 1 1 √√√√SUBB A ,#data A←(A)-data-(CY) 立即数带借位减法 2 1 √√√√SUBB A ,direct A←(A)-(direct)-(CY) 直接寻址带借位减法 2 1 √√√√SUBB A ,@Ri A←(A)-((Ri))-(CY) 间接寻址带借位减法 1 1 √√√√SUBB A ,Rn A←(A)-(Rn)-(CY) 寄存器寻址带借位减法 1 1 √√√√INC A A←(A)+1 累加器加1 1 1 √√××INC direct direct←(direct)+1 直接寻址单元加1 2 1 ××××INC @Ri (Ri) ←((Ri))+1 间接寻址单元加1 1 1 ××××INC Rn Rn←(Rn)+1 寄存器加1 1 1 ××××INC DPTR DPTR←(DPTR)+1 16位数据指针加1 1 2 ××××DEC A A←(A)-1 累加器减1 1 1 √×××DEC direct direct←(direct)-1 直接寻址单元减1 2 1 ××××DEC @Ri (Ri) ←((Ri))-1 间接寻址单元减1 1 1 ××××DEC Rn Rn←(Rn)-1 寄存器减1 1 1 ××××MUL AB AB←(A)*(B) 乘法 1 4 √√×√乘法:CY总是被清0,OV与乘积有关。
80C51控制转移类指令及位操作指令101101

磨砺当如百炼之金,急就者,非邃养;
例:从P1.7引脚输出5个方波
MOV R2,#11
;5个方波,10个状态
LOP:
CPL P1.7
;P1.7状态变反
LCALL Delay
DJNZ R2 ,LOP
HERE:SJMP HERE
Delay:
所调用的子程序的首地址可以在64 KB范围内。
磨砺当如百炼之金,急就者,非邃养;
例:设(SP)=60H,(PC)=0123H,子程序 SUBRTN的首地址为3456H。 执行指令为 LCALL SUBRTN
磨砺当如百炼之金,急就者,非邃养;
3.5.5 返回指令
例:设(SP)=62H,RAM中的(62H)=0lH,(61H)=26H。 子程序SUBRTN的首地址为3456H。 执行指令:LCALL SUBRTN 执行结果:(PC)+3=0123H+3=0126H→(PC)。
执行指令:
MOV
DPTR,#800H
MOV
R0,#20H
MOV
R7,#10H
AGAIN:MOV A,@R0
MOVX @DPTR,A
INC R0
INC DPTR
DJNZ R7,AGAIN
?:请将以上循环控制改用CJNE指令来实现 ?:请将以上循环控制改用JZ指令来实现
磨砺当如百炼之金,急就者,非邃养;
无条件转移指令
指令 SJMP rel AJMP addr11 LJMP addrl6 JMP @A+DPTR 这类指令的功能是程序无条件地转移到各自指定 的目标地址去执行,不同的指令形成的目标地址不同。
磨砺当如百炼之金,急就者,非邃养;
3_80C51单片机指令系统

③特殊功能寄存器符号加位的表示方法。例如: MOV C,ACC.6 该指令是将累加器A位六的值赋给位累加器C。 ④位名称表示方法,特殊功能寄存器中的一些寻址 位是有名称的。例如: MOV C,F0 该指令等同于MOV C,PSW.5,因为PSW寄存器位 5为F0标志位。 ⑤利用伪指令定义位地址。有关伪指令的内容参见 4.1节。 位寻址方式是80C51单片机的特有功能,丰富的位操 作指令为逻辑运算、逻辑控制以及各种状态标志的设置提 供了方便。
相关寄存器
寻址空间 程序存储器 片内RAM低128B和SFR
R0~R7,A,B,DPTR, CY @R0,@R1,SP @R0,@R1,@DPTR @A+DPTR,@A+PC PC+rel CY,SFR 片内RAM 片外RAM 程序存储器 程序存储器 片内RAM的位寻址区 可以位寻址的特殊功能寄 存器
③注意直接地址和位地址之间的区别。例如: MOV A,30H MOV C,30H 第一条指令是将直接地址30H中的内容(8位二进制 数)送给累加器A;第二条指令是将位地址30H中的内容 (1位二进制数)送给进(借)位标志位CY。 ④直接寻址是访问特殊功能寄存器的惟一方法。
(3)寄存器寻址 此处的寄存器指R0~R7、累加器A、通用寄存器B、 数据指针寄存器DPTR和位累加位C(即进位标志位C)。 寄存器寻址是指在指令中将指定寄存器的内容作为 操作数。因此指定了寄存器就能得到了操作数。例如: MOV A,R0 此指令的功能是将R0中的内容送入累加器A中(如图 3-3所示),即 (A)←(R0) 如通用寄存器R0中的内容为80H,则执行该指令后, 累加器A中的内容为80H。
3 80C51单片机指令系统 单片机指令系统
3.1 概述
指令是计算机能够直接识别和执行的命令,一台计 算机所能执行的全部指令的集合称为指令系统。80C51系 列单片机完全继承了MCS-51的指令系统,共有111条指 令。
80c51指令定义详解

附录C 指令定义详解①符号说明符 号说 明←表示数据传送方向()表示单元的内容(())表示间接寻址的内容rrr8个工作寄存器之一;000=R0,001=R1等dddddddd数据位aaaaaaaa地址位bbbbbbbb表示某个位的地址i通过R0 (i =0) 或R1 (i =1)间接寻址eeeeeeee 8位的相对地址偏移量ACALL addrll功能:绝对调用。
说明:ACALL 指令实现无条件调用位于addr11参数所表示地址的子例程。
在执行该指令时,首先将PC 的值增加2,即使得PC 指向ACALL 的下一条指令,然后把16位PC 的低8位和高8位依次压入栈,同时把栈指针两次加1。
然后,把当前PC 值的高5位、ACALL 指令第1字节的7~5位和第2字节组合起来,得到一个16 位目的地址,该地址即为即将调用的子例程的入口地址。
要求该子例程的起始地址必须与紧随ACALL 之后的指令处于同1个2KB 的程序存储页中。
ACALL 指令在执行时不会改变各个标志位。
示例:SP 的初始值为07H ,标号SUBRTN 位于程序存储器的0345H 地址处,如果执行位于地址0123H 处的指令:ACALL SUBRTN那么SP 变为09H ,内部RAM 地址08H 和09H 单元的内容分别为25H 和01H ,PC 值变为0345H 。
指令长度(字节数):2。
指令执行周期:2。
指令二进制编码:aaa10001 aaaaaaaa注意:aaa 是11位目标地址addr11的A10~A8位,aaaaaaaa 是addr11的A7~A0位。
385指令的操作:(PC) ←(PC)+2(SP) ←(SP)+1((SP)) ←(PC7-PC0)(SP) ←(SP)+1((SP)) ←(PC15-PC8)(PC10-PC0) ←页面地址ADD A ,<src-byte>功能:加法。
说明:ADD 指令可用于完成把src-byte 所表示的源操作数和累加器A 的当前值相加。
第3章 80C51系列单片机指令系统

变址寻址示图
内部ROM 内部RAM
3AH 0046H 65H
操作数
寄存器
目的地
3AH 0046H
A
DPTR PC
基址寄存器 0012H
变址寄存器 34H
MOVC A, @A+DPTR
• 6.位寻址方式
•
80C51具有位处理功能,可以对数据位进行操作。 位寻址指令中应直接使用位地址,它属于直接寻址方式, 因此与直接寻址执行过程基本相同,但参与操作的数据 是1位,而不是8位。
指令一般由两部分组成,即操作码(表示指令的操作功能)和 操作数(参加操作的数据或数据地址)。 •由于计算机只能识别二进制数,所以计算机的指令均由二进制 代码组成。为了阅读和书写方便,常把它写成十六进制形式, 通常称这样的指令为机器指令。
• 机器语言级指令格式: • 1、单字节指令:对于单字节指令有两种情况:一种是 操作码、操作数均包含在这一个字节之内;另一种情况 是只有操作码无操作数;格式为: • 操作码 • 如:“MOV A,R0”所对应的机器语言指令为“E8H”。 • 2、双字节指令:对于双字节指令,均为一个字节是操 作码,一个字节是操作数;格式为: • 操作码 操作数 • 如:“MOV A,20H”所对应的机器语言指令为“E520H”。 • 3、三字节指令:对于三字节指令,一般是一个字节为 操作码,二个字节为操作数;格式为: • 操作码 第一操作数 第二操作数 • 如:“MOV 20H,#46H”所对应的机器语言指令为 “E52046H”。()
• 为了便于记忆和使用,制造厂家对指令系统的每一条指令都 给出了助记符。助记符是根据机器指令不同的功能和操作对 象来描述指令的符号。由于助记符是用英文缩写来描述指令 的特征,因此它不但便于记忆,也便于理解和分类。这种用 助记符形式来表示的机器指令称为汇编语言指令。计算机的 指令一般用汇编语言指令来表示。 • 80C51汇编语言指令格式如下: • [标号:] 操作码 [目的操作数]
80c51汇编语言指令

80c51汇编语言指令80C51汇编语言是一种常用的低级程序设计语言,广泛应用于嵌入式系统中。
它是基于Intel 8051系列单片机的指令集架构,具有高效、灵活、可靠的特点。
本文将介绍80C51汇编语言的一些常用指令。
一、MOV指令MOV指令是80C51汇编语言中最基本、最常用的指令之一,用于将数据从一个寄存器或内存位置复制到另一个寄存器或内存位置。
例如,MOV A, #25H表示将立即数25H复制到A寄存器中。
二、ADD指令ADD指令用于执行两个操作数的相加运算,并将结果存储在目标操作数中。
例如,ADD A, R0表示将A寄存器和R0寄存器中的数据相加,并将结果存储在A寄存器中。
三、SUBB指令SUBB指令用于执行两个操作数的减法运算,并将结果存储在目标操作数中。
与ADD指令不同的是,SUBB指令会考虑进位位的值。
例如,SUBB A, R1表示将A寄存器中的数据减去R1寄存器中的数据,并将结果存储在A寄存器中。
四、MUL指令MUL指令用于执行两个操作数的乘法运算,并将结果存储在累加器A和可选的乘法寄存器B中。
例如,MUL AB表示将累加器A和B 中的数据相乘,并将结果存储在A和B中。
五、DIV指令DIV指令用于执行两个操作数的除法运算,并将结果存储在累加器A和可选的余数寄存器B中。
例如,DIV AB表示将累加器A和B 中的数据相除,并将商存储在A中,余数存储在B中。
六、JC、JNC指令JC指令用于在条件跳转时执行跳转操作,如果进位标志位(C)为1,则执行跳转。
JNC指令则相反,只有当进位标志位为0时才执行跳转。
七、JZ、JNZ指令JZ指令用于在条件跳转时执行跳转操作,如果零标志位(Z)为1,则执行跳转。
JNZ指令则相反,只有当零标志位为0时才执行跳转。
八、CJNE指令CJNE指令用于在条件跳转时执行跳转操作,它比较两个操作数的值,并根据比较结果来确定是否执行跳转。
如果两个操作数相等,则不执行跳转;如果不相等,则执行跳转。
80C51单片机指令系统

80C51单片机指令汇总程序应用举例例1:MOV A, #60H将立即数60H(源操作数)送入累加器A(目的操作数)中;这是一条双字节指令,机器码为“74H 60H”,源操作数的寻址方式为立即寻址。
例2:MOV DPTR, #1808H将16位立即数1808H送入数据指针DPTR中;这是一条三字节指令,机器码是“90H 18H 08H”。
源操作数的寻址方式也使用立即寻址。
例3:MOV A, 40H将片内RAM40H单元中的内容送入累加器A;源操作数为直接寻址,40H为直接地址。
这是一条双字节指令,机器码是“E5H 40H”。
例4:MOV A, 0F0HMOV A, B以上两条指令功能完全相同,都是将寄存器B的内容送到累加器A中,前一条指令中第二个操作数采用B寄存器的单元地址表示;后一条指令中是直接用B寄存器的名称来表示。
但汇编后的机器码是完全一样的,由两个字节组成:“E5H F0H”。
例5:INC R2将当前工作寄存器R2的内容加1;这是一条单字节指令,机器码是“0AH”,指令中的操作数使用寄存器寻址方式。
该指令的机器码表示为0000 1rrr,其中的rrr与工作寄存器的编号有关,如本例中用到了R2,则rrr=010,指令执行时,会根据当前PSW寄存器中RS1、RS0的状态确定当前工作寄存器区,同时再根据机器码中rrr的值,确定所要访问的是哪一个工作寄存器,最后找到这个工作寄存器所在单元,将其中的内容加1。
例6:MOV A, @R0 ; A←((R0))该指令为单字节指令,机器码为“E6H”,指令中源操作数为间接寻址。
假设R0中的内容是3AH,而3AH单元的内容为37H,则指令的功能是,以R0寄存器的内容3AH为单元地址,把该单元中的内容37H送累加器A。
例7:设(32H)=10H,执行指令:MOV R0, #32HMOV A, @R0执行结果是:(R0)=32H,(A)=10H,(32H)=10H。
微机原理 单片机 第3章 80C51的指令系统

(2)指令编码字节少。单字节指令有49 条,双字节指令有45条,三字节指令仅 有17条。 (3)位操作指令丰富,这使得80C51单 片机的控制功能方便灵活。
<
>
返回
三、指令编码格式
[标号]: 操作码 [目的操作数] [,源操作数] [;注释]
标号:表示指令的符号地址,可作为转移的目 标地址。 操作码:用来规定该指令要执行的操作性质, 如MOV,ADD,ORL,LJMP等,操作码通常可用1个 字节表示。 操作数:表示在执行过程中所完成的操作对象, 根据指令功能,可有0、1、2、3个操作数,用12个字节表示。 注释:方便用户阅读。
< > 返回
二、指令分类
80C51单片机系统共有111条指令,按指令 功能分为: ♦数据传送(28条) ♦算术运算(24条) ♦逻辑运算(25条) ♦控制转移(17条) ♦位操作指令(17条) 其指令系统的特点是: (1)执行时间短。单机器周期指令有64条,双 机器周期指令有45条,而四机器周期指令仅有 乘、除法2条。当主频为12MHz时,典型指令执 行时间为1us。
+5V C3 K R1 RST
89C51
相应程序:MOV P1,#00H;灯亮
ACALL delay ;延时 MOV P1,#01H;灯灭 ACALL delay
学习指导和要求
• 理解和掌握指令的 三种编码格式; • 熟练掌握七种寻址 方式; • 熟记各种类型的指 令格式及功能,并 能编写简单程序。
80C51的机器指令按编码的字节数可分为 如下三种指令编码格式:
1、单字节指令(49条)
7 0
opcode 7 opcode 3 2 reg 0 0 0 0 0 1 1 1 1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
80C51指令表一、数据传送指令MOV A,Rn ; (Rn)→AMOV A,direct ; (direct)→AMOV A,@Ri ; ((Ri))→AMOV A,#data ; #data→AMOV Rn,A ; (A)→ RnMOV Rn,direct ; (direct)→ RnMOV Rn,#data ; #data→ RnMOV direct,A ; (A)→directMOV direct,Rn ; (Rn)→directMOV direct1,direct2 ; (direct1)→direct2MOV direct,@Ri ; ((Ri))→directMOV direct,#data ; #data→directMOV @Ri,A ; ((Ri))→AMOV @Ri,direct ; (direct)→(Ri)MOV @Ri,#data ; #data→ ((Ri))MOV DPTR,#data16 ; dataH→ DPH,data → LDPL MOVX A,@DPTR ; ((DPTR))→AMOVX @DPTR,A ; (A)→(DPTR)MOVX A,@Ri ; ((Ri))→AMOVX @Ri,A ;(A) →(Ri)MOVC A,@A+PC ; (PC)+1→PC,((A)+(PC))→ A MOVC A,@A+DPTR ; (A)+(DPTR)→APUSH direct ; (SP)+1 → SP,(direct) → (SP) POP direct ;((SP)) → (direct), (SP)-1 → SP XCH A,Rn ; (A) ←→(Rn)XCH A,direct ; (A) ←→(direct)XCH A,@Ri ; (A) ←→((Ri))XCHD A,@Ri ; (A)0~3 ←→((Ri))0~3SWAP A ; (A)0~3 ←→(A)4~7二、算术运算指令ADD A,Rn ; (A) + (Rn)→ AADD A,direct ; (A) + (direct)→ AADD A,@Ri ; (A) + ((Ri))→ AADD A,#data ; (A) + #data→ AADDC A,Rn ; (A) + (Rn) + cy→ AADDC A,direct ; (A) + (direct) + cy→ AADDC A,@Ri ; (A) + ((Ri)) + cy→ AADDC A,#data ; (A) + # data + cy→ ASUBB A,Rn ; (A) - ( Rn) - cy→ ASUBB A,direct ; (A) - (direct) - cy→ ASUBB A,@Ri ; (A) - ((Ri)) - cy→ ASUBB A,#data ; (A) - # data - cy→ AINC A ; (A) + 1 → AINC Rn ; (Rn) + 1 →RnINC direct ; (direct) + 1 →directINC @Ri ; ((Ri)) + 1 → (Ri)INC DPTR ; (DPTR) + 1 → DPTRDEC A ; (A) - 1 → ADEC Rn ; (Rn) - 1 →RnDEC direct ; (direct) - 1 →directDEC @Ri ; ((Ri)) - 1 → (Ri)MUL AB ; (A)·(B) → ABDIV AB ; (A) / (B) 商→ A , 余数→ B DA A ; 对A进行十进制调整三、逻辑操作指令ANL A,Rn ; (A)∧(Rn) → AANL A,direct ; (A)∧(direct) →AANL A,@Ri ; (A)∧((Ri)) → AANL A,#data ; (A)∧#data → AANL direct,A ; (direct)∧(A) →directANL direct,#data ; (direct)∧#data →directORL A,Rn ; (A)∨(Rn) → AORL A,direct ; (A)∨(direct) → AORL A,@Ri ; (A)∨((Ri)) → AORL A,#data ; (A)∨#data → AORL direct,A ; (direct)∨(A) →directORL direct,#data ; (direct)∨#data →directXRL A,Rn ; (A)⊕(Rn) → AXRL A,direct ; (A)⊕(direct) → AXRL A,@Ri ; (A)⊕((Ri)) → AXRL A,#data ; (A)⊕#data → AXRL direct,A ; (direct)⊕(A) →directXRL direct,#data ; (direct)⊕#data →directCLR A ; 0 → ACPL A ; (A) → ARL A ; (A)循环左移1位RLC A ; (A)带进位循环左移1位RR A ; (A)循环右移1位RRC A ; (A)带进位循环右移1位SWAP A ;(A)半字节交换四、位操作指令CLR C ; 0 → cyCLR bit ; 0 → bitSETB C ; 1 → cySETB bit ; 1 → bitCPL C ; (cy) → cyCPL bit ; (bit) → bitANL C,bit ; (cy) ∧(bit) → cyANL C,/bit ; (cy) ∧(bit) → cyORL C,bit ; (cy) ∨(bit) → cyORL C,/bit ; (cy) ∨(bit) → cyMOV C,bit ; (bit) → cyMOV bit,C ; (cy) → bit五、控制转移指令ACALL addr11 ; (PC)+2 → PC , (SP)+1 → SP;(PCL) → (SP),(SP)+1 → SP;(PCH) → (SP),addr11 → PC10~0 LCALL addr16 ; (PC)+3 → PC , (SP)+1 → SP;(PCL) → (SP),(SP)+1 → SP;(PCH) → (SP),addr16 → PCRET ; (SP) → PCH,(SP) -1 → SP;(SP) → PCL,(SP) -1 → SPRETI ; (SP) → PCH,(SP) -1 → SP;(SP) → PCL,(SP) -1 → SPAJMP add11 ; (PC)+2 → PC,;addr11 → CP10~0 LJMP add16 ; addr16 → PCSJMP rel ; (PC)+2 → PC,(PC)+ rel → PC JMP @A+DPTR ; ((A)+(DPTR))→ PCJZ rel ; (A)=0 : (PC)+2 +rel =PC; (A)≠0 : (PC)+2 =PCJNZ rel ; (A)≠0 : (PC)+2 +rel =PC; (A)=0 : (PC)+2 =PCJC rel ; (C)=1 : (PC)+2+rel =PC; (C)=0 : (PC)+2 =PCJNC rel ; (C)=0 : (PC)+2+rel =PC; (C)=1 : (PC)+2 =PCJB bit,rel ; (bit)=1 : 则(PC)+3+rel =PC; (bit)=0 : 则(PC)+3 =PCJNB bit,rel ; (bit)=0 : 则(PC)+3+rel =PC; (bit)=1 : 则(PC)+3 =PCJBC bit,rel ; (bit)=1 : 则(PC)+3+rel =PC, 0 → bit; (bit)=0 : 则(PC)+3 =PCCJNE A,direct,rel ; (A) = (direct), 则(PC)+3 → PC; (A) > (direct), 则(PC)+3+rel → PC,0 → CY; (A) < (direct), 则(PC)+3+rel → PC,1 → CY CJNE A,#data,rel ; (A) = #data, 则(PC)+3 → PC; (A) > #data, 则(PC)+3+rel → PC,0 → CY; (A) < #data, 则(PC)+3+rel → PC,1 → CY CJNE Rn,#data,rel ; (Rn) = #ata , 则(PC)+3 → PC; (Rn) > #ata, 则(PC)+3+rel → PC,0 → CY; (Rn) < #ata, 则(PC)+3+rel → PC,1 → CY CJNE @Ri,#data,rel ; ((Rn)) = #data, 则(PC)+3 → PC; ((Rn)) > #ata, 则(PC)+3+rel → PC,0 → CY; ((Rn)) < #ata, 则(PC)+3+rel → PC,1 → CY DJNZ Rn,rel ; (Rn)-1 → Rn,(Rn)=0,则(PC)+2 → PC;(Rn)≠0,则(PC)+2+rel → PCDJNZ direct,rel ; (direct)-1 → (direct),;(direct) ≠0,则(PC)+3+rel → PC;(direct)=0,则(PC)+3 → PCNOP ; 空操作。