——————————————————————————————
    跳转命令
    ——————————————————————————————-
    根据条件作出是否跳转的决定,通常前面会有一个判断语句,例如:
    CMP AX,BX
    JZ XX //jump zero
    上面两条命令意为用 AX 减 BX ,它的值如果为 0 则跳转到 XX 的标号行。
    常用的跳转命令有:
    JZ/JE 相等或为零为则跳转
    JNZ/JNE 不相等或不为零则跳转
    JL/JLE 小于/小于或等于则跳转
    JG/JGE 大于/大于或等于则跳转
    JMP 无条件跳转
    ——————————————————————————————-
    比较语句
    ——————————————————————————————-
    CMP AX , BX //AX 寄存器减去 BX 寄存器的内容
    AND AX , BX //AX 与 BX 做“与运算 ”
    OR AX , BX //AX 与 BX 做“或运算 ”
    TEST AX , BX 与 AND AX,BX 命令有相同效果
    XOR AX , AX 使 AX 的内容清零,每个寄存器与自己作异或运算等于清零动作
    ——————————————————————————————-
    子程序
    ——————————————————————————————-
    一个子程的模样长得像这个样子
    CALL 15F:334422
    子程式是个很重要的概念,它是主程式的一个分支,用来做特定动作。
    打个比方:你要上班,先你是走路到车站,然后上车,然后下车,然后走到自己的办公室。
    这里如果要把上班编为一段程式的话,那么就可以把 “走路 ”、 “搭车 ”、 “走到办公室 ”做为分支程式来处理。
    说得再通俗一点就是 : 你要 破解 的程式不可能就是一条主程式到底, 肯定会呼叫下面的子程式,由子程式来处理你发送的注册信息,然后比较,然后标记是否注册正确,这些都是靠它来完成的。所以说,破解的关键在于,你找准程式在哪儿将会作注册判断,并进入那个注册子程式,仔细观察,你就成功了。(子程式的返回码是 RET )
    ——————————————————————————————-
    算术运算
    ——————————————————————————————-

    ADD AX,BX 加法运算 AX=AX+BX
    SUB AX,BX 减法运算 AX=AX-BX
    INC AX 寄存器加一 AX=AX+1
    DEC AX 寄存器减一 AX=AX-1
    MUL 乘法运算
    DIV/idiv 除法运算

    ——————————————————————————————-
    数据操作
    ——————————————————————————————-
    MOV AX,BX 数据传送指令,将 BX 的值移送到 AX 中
    XCHG AX,BX 将 AX 与 BX 的值互换
    8086/8088 指令集
    为了便于查询,这里分类列出 8086/8088 汇编指令:
    数据传送指令
    MOV
    功能 : 把源操作数送给目的操作数
    语法 : MOV 目的操作数 ,源操作数
    格式 : MOV r1,r2 或 MOV r,m 或 MOV m,r 或 MOV r,data
    XCHG
    功能 : 交换两个操作数的数据
    语法 : XCHG
    格式 : XCHG r1,r2 或 XCHG m,r 或 XCHG r,m
    PUSH,POP
    功能 : 把操作数压入或取出堆栈
    语法 : PUSH 操作数 POP 操作数
    格式 : PUSH r 或 PUSH M 或 PUSH data POP r 或 POP m
    PUSHF,POPF,PUSHA,POPA // PUSHFD POPFD PUSHAD POPAD
    功能 : 堆栈指令群
    格式 : PUSHF POPF PUSHAPOPA
    LEA,LDS,LES
    功能 : 取地址至寄存器
    语法 : LEA r,m LDS r,mLES r,m
    XLAT(XLATB)
    功能 : 查表指令
    语法 : XLAT XLAT m
    算术运算指令
    ADD,ADC
    功能 : 加法指令
    语法 : ADD OP1,OP2 ADCOP1,OP2
    格式 : ADD r1,r2 ADDr,m ADD m,r ADD r,data
    影响标志 : C,P,A,Z,S,O
    SUB,SBB
    功能 :减法指令
    语法 : SUB OP1,OP2 SBB OP1,OP2
    格式 : SUB r1,r2 SUBr,m SUB m,r SUB r,data SUB m,data
    影响标志 : C,P,A,Z,S,O
    INC,DEC
    功能 : 把 OP 的值加一或减一
    语法 : INC OP DEC OP
    格式 : INC r/m DEC r/m
    影响标志 : P,A,Z,S,O
    NEG
    功能 : 将 OP 的符号反相 (取二进制补码 )
    语法 : NEG OP
    格式 : NEG r/m
    影响标志 : C,P,A,Z,S,O
    MUL,IMUL
    功能 : 乘法指令
    语法 : MUL OP IMUL OP
    格式 : MUL r/m IMUL r/m
    影响标志 : C,P,A,Z,S,O( 仅 IMUL 会影响 S 标志 )
    DIV,IDIV
    功能 :除法指令
    语法 : DIV OP IDIV OP
    格式 : DIV r/m IDIV r/m
    CBW,CWD //change byte word // change word dword
    功能 : 有符号数扩展指令
    格式 : CBW CWD
    AAA,AAS,AAM,AAD
    功能 : 非压 BCD 码运算调整指令
    格式 : AAA AAS AAM AAD
    影响标志 : A,C(AAA,AAS)S,Z,P(AAM,AAD)
    DAA,DAS
    功能 : 压缩 BCD 码调整指令
    格式 : DAA DAS
    影响标志 : C,P,A,Z,S
    字符串操作指令
    MOVSB,MOVSW,MOVSD
    功能 : 字符串传送指令
    格式 : MOVSB MOVSWMOVSD
    标志位 : 无
    CMPSB,CMPSW,CMPSD
    功能 : 字符串比较指令
    格式 : CMPSB CMPSWCMPSD
    标志位 : C,P,Z,S,O
    SCASB,SCASW //scansb
    功能 : 字符串搜索指令
    格式 : SCASB SCASW
    标志位 : C,P,Z,S,O
    LODSB,LODSW,STOSB,STOSW
    功能 : 字符串载入或存贮指令
    格式 : LODSB LODSWSTOSB STOSW
    标志位 : 无
    REP,REPE,REPNE
    功能 : 重复前缀指令集
    格式 : REP 指令 S REPE 指令 S REPNE 指令 S
    标志位 : 依指令 S 而定
    位运算指令集
    AND,OR,XOR,NOT,TEST
    功能 : 执行 BIT 与 BIT 之间的逻辑运算
    格 式 : AND r/m,r/m/dataOR r/m,r/m/data XOR r/m,r/m/data TEST
    r/m,r/m/data NOT r/m
    影响标志 : C,O,P,Z,S( 其中 C 与 O 两个标志会被设为 0) NOT 指令不影响任何标志位
    SHR,SHL,SAR,SAL
    功能 : 移位指令
    格式 : SHR r/m,data/CLSHL r/m,data/CL SAR r/m,data/CL SAL r/m,data/CL
    影响标志 : C,P,Z,S,O
    ROR,ROL,RCR,RCL
    功能 : 循环移位指令
    格式 : ROR r/m,data/CLROL r/m,data/CL RCR r/m,data/CL RCL r/m,data/CL
    影响标志 : C,P,Z,S,O
    程序流程控制指令
    CLC,STC,CMC
    功能 : 设定进位标志
    格式 : CLC STC CMC
    标志位 : C
    CLD,STD
    功能 : 设定方向标志
    格式 : CLD STD
    标志位 : D
    CLI,STI
    功能 : 设定中断标志
    格式 : CLI STI
    标志位 : I
    CMP
    功能 : 比较 OP1 与 OP2 的值
    格式 : CMP r/m,r/m/data
    标志位 : C,P,A,Z,O
    JMP
    功能 : 跳往指定地址执行
    格式 : JMP 地址
    JXX
    功能 : 当特定条件成立则跳往指定地址执行
    格式 : JXX 地址
    XX 为下列值 :
    A: ABOVE, 当 C=0,Z=0 时成立
    B: BELOW, 当 C=1 时成立
    C: CARRY, 当 CF=1 时成立
    CXZ: CX 寄存器的值为 0(ZERO) 时成立
    E: EQUAL, 当 Z=1 时成立
    G: GREATER( 大于 ), 当 Z=0 且 S=0 时成立
    L: LESS( 小于 ), 当 S 不为零时成立
    N: NOT( 相反条件 ), 需和其它符号配合使用
    O: OVERFLOW,O=1 时成立
    P: PARITY,P=1 时成立
    PE: PARITY EVEN,P=1 时成立
    PO: PARITY ODD,P=0 时成立
    S: SIGN,S=1 时成立
    Z: ZERO,Z=1 时成立
    LOOP
    功能 : 循环指令集
    语法 : LOOP 地址
    LOOPE(Z)
    格式: LOOPNE(Z) 地址
    标志位 : 无
    CALL,RET
    功能 : 子程序调用 ,返回指令
    语法 : CALL 地址 RET RET n
    标志位 : 无
    INT,IRET
    功能 : 中断调用及返回指令
    语法 : INT n IRET
    标志位 : 在执行 INT 时,CPU 会自动将标志寄存器的值入栈 ,在执行 IRET 时则会将堆栈中
    的标志值弹回寄存器
    处理器状态控制指令
    NOP
    功能 : 空操作指令。不执行任何操作,但要花费 CPU 一个机器周期
    格式 : NOP
    HLT
    功能 : 暂停指令。 CPU 不执行任何操作,一直处于暂停状态,但 IP 指向 HLT 的下一条指令。
    格式 : HLT
    脱离 HLT 状态的方式: 1 、 CPU 复位; 2 、 CPU 响应中断ESC, WAIT , LOCK
    功能 : 用于多处理器系统。其中 ESC 是交权指令; WAIT 是等待指令; LOCK 是总线封锁指令

    助记符 指令说明 字节数 周期数
    (数据传递类指令)
    MOV A, Rn 寄存器传送到累加器 1 1
    MOV A, direct 直接地址传送到累加器 2 1
    MOV A, @Ri 累加器传送到外部 RAM(8 地址 1 1
    MOV A, #data 立即数传送到累加器 2 1
    MOV Rn, A 累加器传送到寄存器 1 1
    MOV Rn, direct 直接地址传送到寄存器 2 2
    MOV Rn, #data 累加器传送到直接地址 2 1
    MOV direct , Rn 寄存器传送到直接地址 2 1
    MOV direct , direct 直接地址传送到直接地址 3 2
    MOV direct , A 累加器传送到直接地址 2 1
    MOV direct , @Ri 间接 RAM传送到直接地址 2 2
    MOV direct , #data 立即数传送到直接地址 3 2
    MOV @Ri, A 直接地址传送到直接地址 1 2
    MOV @Ri, direct 直接地址传送到间接 RAM 2 1
    MOV @Ri, #data 立即数传送到间接 RAM 2 2
    MOV DPTR, #data16 16 位常数加载到数据指针 3 1
    MOVC A, @A+DPTR 代码字节传送到累加器 1 2
    MOVC A, @A+PC 代码字节传送到累加器 1 2
    MOVX A, @Ri 外部 RAM(8 地址 ) 传送到累加器 1 2
    MOVX A, @DPTR 外部 RAM(16 地址 ) 传送到累加器 1 2
    MOVX @Ri, A 累加器传送到外部 RAM(8 地址 ) 1 2
    MOVX @DPTR , A 累加器传送到外部 RAM(16 地址 ) 1 2
    PUSH direct 直接地址压入堆栈 2 2
    POP direct 直接地址弹出堆栈 2 2
    XCH A,Rn 寄存器和累加器交换 1 1
    XCH A, direct 直接地址和累加器交换 2 1
    XCH A, @Ri 间接 RAM和累加器交换 1 1
    XCHD A, @Ri 间接 RAM和累加器交换低 4 位字节 1 1
    ( 算术运算类指令 )
    INC A 累加器加 1 1 1
    INC Rn 寄存器加 1 1 1
    INC direct 直接地址加 1 2 1
    INC @Ri 间接 RAM加 1 1 1
    INC DPTR 数据指针加 1 1 2
    DEC A 累加器减 1 1 1
    DEC Rn 寄存器减 1 1 1
    DEC direct 直接地址减 1 2 2
    DEC @Ri 间接 RAM减 1 1 1
    MUL AB 累加器和 B 寄存器相乘 1 4
    DIV AB 累加器除以 B 寄存器 1 4
    DA A 累加器十进制调整 1 1
    ADD A,Rn 寄存器与累加器求和 1 1
    ADD A,direct 直接地址与累加器求和 2 1
    ADD A,#data 立即数与累加器求和 2 1
    ADD A,@Ri 间接 RAM与累加器求和 1 1
    ADDC A,Rn 寄存器与累加器求和 ( 带进位 ) 1 1
    ADDC A,direct 直接地址与累加器求和 ( 带进位 ) 2 1
    ADDC A,@Ri 间接 RAM与累加器求和 ( 带进位 ) 1 1
    ADDC A,#data 立即数与累加器求和 ( 带进位 ) 2 1
    SUBB A,Rn 累加器减去寄存器 ( 带借位 ) 1 1
    SUBB A,direct 累加器减去直接地址 ( 带借位 ) 2 1
    SUBB A,@Ri 累加器减去间接 RAM(带借位 ) 1 1
    SUBB A,#data 累加器减去立即数 ( 带借位 ) 2 1
    ( 逻辑运算类指令 )
    ANL A,Rn 寄存器“与”到累加器 1 1
    ANL A,direct 直接地址“与”到累加器 2 1
    ANL A,@Ri 间接 RAM“与”到累加器 1 1
    ANL A,#data 立即数“与”到累加器 2 1
    ANL direct,A 累加器“与”到直接地址 2 1
    ANL direct, #data 立即数“与”到直接地址 3 2
    ORL A,Rn 寄存器“或”到累加器 1 2
    ORL A,direct 直接地址“或”到累加器 2 1
    ORL A,@Ri 间接 RAM“或”到累加器 1 1
    ORL A,#data 立即数“或”到累加器 2 1
    ORL direct,A 累加器“或”到直接地址 2 1
    ORL direct, #data 立即数“或”到直接地址 3 1
    XRL A,Rn 寄存器“异或”到累加器 1 2
    XRL A,direct 直接地址“异或”到累加器 2 1
    XRL A,@Ri 间接 RAM“异或”到累加器 1 1
    XRL A,#data 立即数“异或”到累加器 2 1
    XRL direct,A 累加器“异或”到直接地址 2 1
    XRL direct, #data 立即数“异或”到直接地址 3 1
    CLR A 累加器清零 1 2
    CPL A 累加器求反 1 1
    RL A 累加器循环左移 1 1
    RLC A 带进位累加器循环左移 1 1
    RR A 累加器循环右移 1 1
    RRC A 带进位累加器循环右移 1 1
    SWAP A 累加器高、低 4 位交换 1 1
    ( 控制转移类指令 )
    JMP @A+DPTR 相对 DPTR 的无条件间接转移 1 2
    JZ rel 累加器为 0 则转移 2 2
    JNZ rel 累加器为 1 则转移 2 2
    CJNE A,direct,rel 比较直接地址和累加器 , 不相等转移 3 2
    CJNE A,#data,rel 比较立即数和累加器 , 不相等转移 3 2
    CJNE Rn,#data,rel 比较寄存器和立即数 , 不相等转移 2 2
    CJNE @Ri,#data,rel 比较立即数和间接 RAM,不相等转移 3 2
    DJNZ Rn,rel 寄存器减 1, 不为 0 则转移 3 2
    DJNZ direct,rel 直接地址减 1, 不为 0 则转移 3 2
    NOP 空操作 , 用于短暂延时 1 1
    ACALL add11 绝对调用子程序 2 2
    LCALL add16 长调用子程序 3 2
    RET 从子程序返回 1 2
    RETI 从中断服务子程序返回 1 2
    AJMP add11 无条件绝对转移 2 2
    LJMP add16 无条件长转移 3 2
    SJMP rel 无条件相对转移 2 2
    ( 布尔指令 )
    CLR C 清进位位 1 1
    CLR bit 清直接寻址位 2 1
    SETB C 置位进位位 1 1
    SETB bit 置位直接寻址位 2 1
    CPL C 取反进位位 1 1
    CPL bit 取反直接寻址位 2 1
    ANL C,bit 直接寻址位“与”到进位位 2 2
    ANL C, /bit 直接寻址位的反码“与”到进位位 2 2
    ORL C,bit 直接寻址位“或”到进位位 2 2
    ORL C, /bit 直接寻址位的反码“或”到进位位 2 2
    MOV C,bit 直接寻址位传送到进位位 2 1
    MOV bit, C 进位位位传送到直接寻址 2 2
    JC rel 如果进位位为 1 则转移 2 2
    JNC rel 如果进位位为 0 则转移 2 2
    JB bit, rel 如果直接寻址位为 1 则转移 3 2
    JNB bit, rel 如果直接寻址位为 0 则转移 3 2
    JBC bit, rel 直接寻址位为 1 则转移并清除该位 2 2
    (伪指令)
    ORG 指明程序的开始位置
    DB 定义数据表
    DW 定义 16 位的地址表
    EQU 给一个表达式或一个字符串起名
    DATA 给一个 8 位的内部 RAM起名
    XDATA 给一个 8 位的外部 RAM起名
    BIT 给一个可位寻址的位单元起名
    END 指出源程序到此为止
    (指令中的符号标识)
    Rn 工作寄存器 R0-R7
    Ri 工作寄存器 R0 和 R1
    @Ri 间接寻址的 8 位 RAM单元地址( 00H-FFH)
    #data8 8 位常数
    #data16 16 位常数
    addr16 16 位目标地址,能转移或调用到 64KROM的任何地方
    addr11 11 位目标地址,在下条指令的 2K 范围内转移或调用
    Rel 8 位偏移量,用于 SJMP 和所有条件转移指令,范围 -128 ~+127
    Bit 片内 RAM中的可寻址位和 SFR 的可寻址位
    $ 指本条指令的起始位置

    Rn R0 ~ R7 寄存器 n=0 ~ 7
    Direct 直接地址,内部数据区的地址 RAM(00H ~ 7FH)
    SFR(80H ~ FFH) B , ACC , PSW , IP, P3, IE, P2 , SCON , P1 , TCON , P0
    @Ri 间接地址 Ri=R0 或 R1 8051/31RAM 地址 (00H ~ 7FH) 8052/32RAM 地址 (00H ~FFH)
    #data 8 位常数
    #data16 16 位常数
    Addr16 16 位的目标地址
    Addr11 11 位的目标地址
    Rel 相关地址
    bit 内部数据 RAM(20H ~ 2FH) ,特殊功能寄存器的直接地址的位指令介绍指令 字节 周期 动作说明算数运算指令
    1. ADD A,Rn 1 1 将累加器与寄存器的内容相加,结果存回累加器
    2. ADD A,direct 2 1 将累加器与直接地址的内容相加,结果存回累加器
    3. ADD A,@Ri 1 1 将累加器与间接地址的内容相加,结果存回累加器
    4. ADD A,#data 2 1 将累加器与常数相加,结果存回累加器
    5. ADDC A,Rn 1 1 将累加器与寄存器的内容及进位 C 相加,结果存回累加器
    6. ADDC A,direct 2 1 将累加器与直接地址的内容及进位 C 相加,结果存回累加器
    7. ADDC A,@Ri 1 1 将累加器与间接地址的内容及进位 C 相加,结果存回累加器
    8. ADDC A,#data 2 1 将累加器与常数及进位 C 相加,结果存回累加器
    9. SUBB A,Rn 1 1 将累加器的值减去寄存器的值减借位 C,结果存回累加器
    10. SUBB A,direct 2 1 将累加器的值减直接地址的值减借位 C,结果存回累加器
    11. SUBB A,@Ri 1 1 将累加器的值减间接地址的值减借位 C,结果存回累加器
    12. SUBB A,#data 2 1 将累加器的值减常数值减借位 C,结果存回累加器
    13. INC A 1 1 将累加器的值加 1
    14. INC Rn 1 1 将寄存器的值加 l
    15. INC direct 2 1 将直接地址的内容加 1
    16. INC @Ri 1 1 将间接地址的内容加 1
    17. INC DPTR 1 1 数据指针寄存器值加 1
    说明:将 16 位的 DPTR 加 1,当 DPTR 的低字节 (DPL) 从 FFH 溢出至 00H 时,会使高字节(DPH) 加 1,不影响任何标志位
    18. DEC A 1 1 将累加器的值减 1
    19. DEC Rn 1 1 将寄存器的值减 1
    20. DEC direct 2 1 将直接地址的内容减 1
    21. DEC @Ri 1 1 将间接地址的内容减 1
    22. MUL AB 1 4 将累加器的值与 B 寄存器的值相乘,乘积的低位字节存回累加器,高位字节存回 B 寄存器
    说明:将累加器 A 和寄存器 B 内的无符号整数相乘,产生 16 位的积,低位字节存入 A,高位字节存入 B 寄存器 。 如果积大于 FFH, 则溢出标志位 (OV) 被设定为 1, 而进位标志位为 0
    23. DIV AB 1 4 将累加器的值除以 B 寄存器的值,结果的商存回累加器,余数存回 B 寄存器
    说明:无符号的除法运算,将累加器 A 除以 B 寄存器的值,商存入 A,余数存入 B。执行本指令后,进位位 (C)及溢出位 (OV) 被清除为 0
    24. DA A 1 1 将累加器 A 作十进制调整,
    若(A) 3-0>9 或(AC)=1 ,则 (A) 3- 0←(A)3 -0+6
    若(A) 7-4>9 或 (C)=1 ,则 (A) 7- 4←(A)7 -4+6
    逻辑运算指令
    25. ANL A,Rn 1 1 将累加器的值与寄存器的值做 AND 的逻辑判断,结果存回累加器
    26. ANL A,direct 2 1 将累加器的值与直接地址的内容做 AND 的逻辑判断,结果存回累加器
    27. ANL A,@Ri 1 1 将累加器的值与间接地址的内容做 AND 的逻辑判断,结果存回累加器
    28. ANL A,#data 2 1 将累加器的值与常数做 AND 的逻辑判断,结果存回累加器
    29. ANL direct,A 2 1 将直接地址的内容与累加器的值做 AND 的逻辑判断,结果存回该直接地址
    30. ANL direct,#data 3 2 将直接地址的内容与常数值做 AND 的逻辑判断,结果存回该直接地址
    31. ORL A,Rn 1 1 将累加器的值与寄存器的值做 OR 的逻辑判断,结果存回累加器
    32. ORL A,direct 2 1 将累加器的值与直接地址的内容做 OR 的逻辑判断,结果存回累加器
    33. ORL A,@Ri 1 1 将累加器的值与间接地址的内容做 OR 的逻辑判断,结果存回累加器
    34. ORL A,#data 2 1 将累加器的值与常数做 OR 的逻辑判断,结果存回累加器
    35. ORL direct,A 2 1 将直接地址的内容与累加器的值做 OR 的逻辑判断,结果存回该直接地址
    36. ORL direct,#data 3 2 将直接地址的内容与常数值做 OR 的逻辑判断,结果存回该直接地址
    37. XRL A,Rn 1 1 将累加器的值与寄存器的值做 XOR 的逻辑判断,结果存回累加器
    38. XRL A,direct 2 1 将累加器的值与直接地址的内容做 XOR 的逻辑判断,结果存回累加器
    39. XRL A,@Ri 1 1 将累加器的值与间接地扯的内容做 XOR 的逻辑判断,结果存回累加器
    40. XRL A,#data 2 1 将累加器的值与常数作 XOR 的逻辑判断,结果存回累加器
    41. XRL direct,A 2 1 将直接地址的内容与累加器的值做 XOR 的逻辑判断,结果存回该直接地址
    42. XRL direct,#data 3 2 将直接地址的内容与常数的值做 XOR 的逻辑判断,结果存回该直接地址
    43. CLR A 1 1 清除累加器的值为 0
    44. CPL A 1 1 将累加器的值反相
    45. RL A 1 1 将累加器的值左移一位
    46. RLC A 1 1 将累加器含进位 C 左移一位
    47. RR A 1 1 将累加器的值右移一位
    48. RRC A 1 1 将累加器含进位 C 右移一位
    49. SWAP A 1 1 将累加器的高 4 位与低 4 位的内容交换。 (A)3- 0←(A)7 -4数据转移指令
    50. MOV A,Rn 1 1 将寄存器的内容载入累加器
    51. MOV A,direct 2 1 将直接地址的内容载入累加器
    52. MOV A,@Ri 1 1 将间接地址的内容载入累加器
    53. MOV A,#data 2 1 将常数载入累加器
    54. MOV Rn , A 1 1 将累加器的内容载入寄存器
    55. MOV Rn,direct 2 2 将直接地址的内容载入寄存器
    56. MOV Rn,gdata 2 1 将常数载入寄存器
    57. MOV direct,A 2 1 将累加器的内容存入直接地址
    58. MOV direct,Rn 2 2 将寄存器的内容存入直接地址
    59. MOV direct1, direct2 3 2 将直接地址 2 的内容存入直接地址 1
    60. MOV direct,@Ri 2 2 将间接地址的内容存入直接地址
    61. MOV direct,#data 3 2 将常数存入直接地址
    62. MOV @Ri,A 1 1 将累加器的内容存入某间接地址
    63. MOV @Ri,direct 2 2 将直接地址的内容存入某间接地址
    64. MOV @Ri,#data 2 1 将常数存入某间接地址
    65. MOV DPTR,#data16 3 2 将 16 位的常数存入数据指针寄存器
    66. MOVC A,@A+DPTR 1 2 (A) ←((A)+(DPTR)) 累加器的值再加数据指针寄存器的值为其所指定地址,将该地址的内容读入累加器
    67. MOVC A,@A+PC 1 2 (PC)←(PC)+1 ; (A) ←((A)+(PC)) 累加器的值加程序计数器的值作为其所指定地址,将该地址的内容读入累加器
    68. MOVX A,@Ri 1 2 将间接地址所指定外部存储器的内容读入累加器 (8 位地址 )
    69. MOVX A,@DPTR 1 2 将数据指针所指定外部存储器的内容读入累加器 (16 位地址 )
    70. MOVX @Ri,A 1 2 将累加器的内容写入间接地址所指定的外部存储器 (8 位地址 )
    71. MOVX @DPTR,A 1 2 将累加器的内容写入数据指针所指定的外部存储器 (16 位地址 )
    72. PUSH direct 2 2 将直接地址的内容压入堆栈区
    73. POP direct 2 2 从堆栈弹出该直接地址的内容
    74. XCH A,Rn 1 1 将累加器的内容与寄存器的内容互换
    75. XCH A,direct 2 1 将累加器的值与直接地址的内容互换
    76. XCH A,@Ri 1 1 将累加器的值与间接地址的内容互换
    77. XCHD A,@Ri 1 1 将累加器的低 4 位与间接地址的低 4 位互换布尔代数运算
    78. CLR C 1 1 清除进位 C 为 0
    79. CLR bit 2 1 清除直接地址的某位为 0
    80. SETB C 1 1 设定进位 C 为 1
    81. SETB bit 2 1 设定直接地址的某位为 1
    82. CPL C 1 1 将进位 C 的值反相
    83. CPL bit 2 1 将直接地址的某位值反相
    84. ANL C,bit 2 2 将进位 C 与直接地址的某位做 AND 的逻辑判断,结果存回进位 C
    85. ANL C,/bit 2 2 将进位 C 与直接地址的某位的反相值做 AND 的逻辑判断,结果存回进位 C
    86. ORL C,bit 2 2 将进位 C 与直接地址的某位做 OR 的逻辑判断,结果存回进位 C
    87. ORL C,/bit 2 2 将进位 C 与直接地址的某位的反相值做 OR 的逻辑判断,结果存回进位 C
    88. MOV C,bit 2 1 将直接地址的某位值存入进位 C
    89. MOV bit,C 2 2 将进位 C 的值存入直接地址的某位
    90. JC rel 2 2 若进位 C=1 则跳至 rel 的相关地址
    91. JNC rel 2 2 若进位 C=0 则跳至 rel 的相关地址
    92. JB bit,rel 3 2 若直接地址的某位为 1,则跳至 rel 的相关地址
    93. JNB bit,rel 3 2 若直接地址的某位为 0,则跳至 rel 的相关地址
    94. JBC bit,rel 3 2 若直接地址的某位为 1,则跳至 rel 的相关地址,并将该位值清除为 0程序跳跃
    95. ACALL addr11 2 2 调用 2K 程序存储器范围内的子程序
    96. LCALL addr16 3 2 调用 64K 程序存储器范围内的子程序
    97. RET 1 2 从子程序返回
    98. RETI 1 2 从中断子程序返回
    99. AJMP addr11 2 2 绝对跳跃 (2K 内)
    100 . LJMP addr16 3 2 长跳跃 (64K 内)
    101 . SJMP rel 2 2 短跳跃 (2K 内)-128 ~ +127 字节
    102 . JMP @A+DPTR 1 2 跳至累加器的内容加数据指针所指的相关地址
    103 . JZ rel 2 2 累加器的内容为 0,则跳至 rel 所指相关地址104 . JNZ rel 2 2累加器的内容不为0,则跳至 rel 所指相关地址105 . CJNE A,direct,rel32 将累加器的内容与直接地址的内容比较,不相等则跳至rel 所指的相关地址106 . CJNE A,#data,rel 32将累加器的内容与常数比较,若不相等则跳至rel 所指的相关地址107. CJNE @Rn,#data,rel3 2将寄存器的内容与常数比较,若不相等则跳至rel 所指的相关地址108 . CJNE@Ri,#data,rel3 2将间接地址的内容与常数比较,若不相等则跳至rel 所指的相关地址109 . DJNZ Rn,rel 2 2将寄存器的内容减1,不等于0 则跳至 rel 所指的相关地址110 . DJNZ direct,rel 32将直接地址的内容减1,不等于0 则跳至 rel 所指的相关地址111 . NOP 1 1无动作