汇编指令大全

合集下载

汇编指令大全

汇编指令大全

汇编指令大全汇编指令大全(DST:destination目的操作数/地址;SRC:source源操作数/地址;port:端口;ac:Accumulator累加器;reg:register寄存器;cnt:counter计数器;opr:除了立即数之外的所有寻址方式(寄存器);立即数:直接包含在代码中,作为代码的一部分,不需要保存在寄存器中的操作数,相当于高级语言中的常量;r8/r16:8位通用寄存器/16位通用寄存器;SR:segment register段寄存器,包括DS、SS、ES、CS;mem:memory,表示存储器操作数;addr:address,表示内存单元地址;) [数据传送指令]一、通用数据传送指令1、传送指令 MOV (move)指令的汇编格式:MOV DST,SRC指令的基本功能:(DST)←(SRC) 将原操作数(字节或字)传送到目的地址。

指令支持的寻址方式:目的操作数和源操作数不能同时用存储器寻址方式,这个限制适用于所有指令。

指令的执行对标志位的影响:不影响标志位。

指令的特殊要求:目的操作数DST和源操作数SRC不允许同时为段寄存器;目的操作数DST不能是CS,也不能用立即数方式。

2、进栈指令 PUSH (push onto the stack)出栈指令 POP (pop from the stack)指令的汇编格式:PUSH SRC ;POP DST指令的基本功能:PUSH指令在程序中常用来暂存某些数据,而POP指令又可将这些数据恢复。

PUSH SRC (SP)←(SP)-2 ;(SP)←(SRC)POP DST (DST)←((SP));(SP)←(SP)指令支持的寻址方式:push 和pop指令不能不能使用立即数寻址方式。

指令对标志位的影响:PUSH 和 POP指令都不影响标志位。

指令的特殊要求:PUSH 和 POP指令只能是字操作,因此,存取字数据后,SP的修改必须是+2 或者-2;POP指令的DST不允许是CS寄存器;3、交换指令 XCHG (exchange)指令的汇编格式:XCHG OPR1,OPR2指令的基本功能:(OPR1)←>(OPR2)指令支持的寻址方式:一个操作数必须在寄存器中,另一个操作数可以在寄存器或存储器中。

汇编指令大全(有注释)_IT计算机_专业资料

汇编指令大全(有注释)_IT计算机_专业资料

汇编指令大全(有注释)_IT计算机_专业资料汇编指令大全(有注释)为了方便开发者理解和使用汇编语言,本文汇编指令大全提供了对常用指令的详细注释。

汇编语言是一种低级编程语言,直接操作计算机的硬件和寄存器。

掌握汇编语言对于理解计算机底层原理和优化程序性能至关重要。

下面列举了一些常用的汇编指令,以供参考。

1. MOV指令:用于将一个数据从一个位置复制到另一个位置。

可以在寄存器和内存之间传输数据。

示例:MOV AX, 10h ; 将数据10h复制到寄存器AX中MOV [BX], AX ; 将寄存器AX中的数据复制到内存地址BX指向的位置2. ADD指令:用于将两个数据相加,并将结果存储在指定的位置。

示例:ADD AX, BX ; 将寄存器AX和BX中的数据相加,并将结果保存在AX中ADD [BX], CX ; 将内存地址BX指向的数据与寄存器CX中的数据相加,并将结果保存在内存地址BX指向的位置3. SUB指令:用于将两个数据相减,并将结果存储在指定的位置。

示例:SUB AX, BX ; 将寄存器AX的数据减去BX的数据,并将结果保存在AX中SUB [BX], CX ; 将内存地址BX指向的数据减去寄存器CX的数据,并将结果保存在内存地址BX指向的位置4. INC指令:用于将指定位置的数据加1。

示例:INC AX ; 将寄存器AX的数据加1INC [BX] ; 将内存地址BX指向的数据加15. DEC指令:用于将指定位置的数据减1。

示例:DEC AX ; 将寄存器AX的数据减1DEC [BX] ; 将内存地址BX指向的数据减16. JMP指令:用于无条件跳转到指定的代码位置。

示例:JMP label1 ; 无条件跳转到标签label1处JMP 100h ; 无条件跳转到内存地址100h处7. CMP指令:用于比较两个数据的大小,并根据比较结果设置条件码寄存器。

示例:CMP AX, BX ; 比较寄存器AX和BX的数据大小,并设置条件码寄存器CMP [BX], CX ; 比较内存地址BX指向的数据和寄存器CX的数据大小,并设置条件码寄存器8. JE指令:用于在两个数据相等时跳转到指定的代码位置。

汇编常用命令总结

汇编常用命令总结

汇编常用命令总结汇编语言是一种底层的计算机语言,通过使用汇编命令对机器指令进行编写和控制。

在学习和使用汇编语言时,掌握常用的汇编命令非常重要。

以下是汇编常用命令的详细总结:1.MOV:将数据从一个位置复制到另一个位置。

例如,将数据从寄存器复制到内存或者将数据从内存复制到寄存器。

2.ADD:将两个数相加,并将结果保存在目标位置。

可以用于寄存器之间的相加或者将寄存器和内存中的数据相加。

3.SUB:从一个数中减去另一个数,并将结果保存在目标位置。

与ADD命令类似,可以用于寄存器之间或者寄存器和内存之间的相减。

4.CMP:比较两个数,一些条件下,设置标志位用于后续的条件分支。

例如,当两个数相等时,设置零标志位。

6.JE、JNE、JG、JL、JA等:基于条件进行转移。

例如,JE用于当ZF标志位被设置为1时,跳转到指定位置,即上一次比较的结果是相等的。

7.AND、OR、XOR:对两个数位进行逻辑运算,并将结果保存在目标位置。

AND用于逻辑与运算,OR用于逻辑或运算,XOR用于逻辑异或运算。

8.NOT:对一个数位取反。

9.PUSH:将数据压入栈顶。

用于将寄存器、内存中的数据或者立即数压入栈中。

10.POP:从栈顶弹出数据。

用于将栈中的数据弹出到寄存器或者内存中。

11.CALL:调用子程序或函数。

将当前的程序状态保存到栈上,并跳转到子程序的入口地址。

12.RET:从子程序中返回。

将存储在栈上的返回地址弹出,恢复程序的现场,并返回到调用者。

13.LOOP:循环指令。

根据计数寄存器的值,重复执行指定的循环代码。

14.MOVZX:将一个无符号字节或无符号字进行零扩展,转换为更大的数据类型。

15.MOVSX:将一个有符号字节或有符号字进行符号扩展,转换为更大的数据类型。

16.LEA:将一个偏移地址加载到寄存器中。

17.INC、DEC:递增或递减寄存器或内存中的值。

18.NOP:空操作。

用于占位或延时。

19.INT:软中断。

汇编指令大全

汇编指令大全

汇编指令大全(DST:destination目的操作数/地址;SRC:source源操作数/地址;port:端口;ac:Accumulator累加器;reg:register寄存器;cnt:counter计数器;opr:除了立即数之外的所有寻址方式(寄存器);立即数:直接包含在代码中,作为代码的一部分,不需要保存在寄存器中的操作数,相当于高级语言中的常量;r8/r16:8位通用寄存器/16位通用寄存器;SR:segment register段寄存器,包括DS、SS、ES、CS;mem:memory,表示存储器操作数;addr:address,表示内存单元地址;) [数据传送指令]一、通用数据传送指令1、传送指令 MOV (move)指令的汇编格式:MOV DST,SRC指令的基本功能:(DST)←(SRC) 将原操作数(字节或字)传送到目的地址。

指令支持的寻址方式:目的操作数和源操作数不能同时用存储器寻址方式,这个限制适用于所有指令。

指令的执行对标志位的影响:不影响标志位。

指令的特殊要求:目的操作数DST和源操作数SRC不允许同时为段寄存器;目的操作数DST不能是CS,也不能用立即数方式。

2、进栈指令 PUSH (push onto the stack)出栈指令 POP (pop from the stack)指令的汇编格式:PUSH SRC ;POP DST指令的基本功能:PUSH指令在程序中常用来暂存某些数据,而POP指令又可将这些数据恢复。

PUSH SRC (SP)←(SP)-2 ;(SP)←(SRC)POP DST (DST)←((SP));(SP)←(SP)指令支持的寻址方式:push 和 pop指令不能不能使用立即数寻址方式。

指令对标志位的影响:PUSH 和 POP指令都不影响标志位。

指令的特殊要求:PUSH 和 POP指令只能是字操作,因此,存取字数据后,SP的修改必须是+2 或者 -2;POP指令的DST不允许是CS寄存器;3、交换指令 XCHG (exchange)指令的汇编格式:XCHG OPR1,OPR2指令的基本功能:(OPR1)←>(OPR2)指令支持的寻址方式:一个操作数必须在寄存器中,另一个操作数可以在寄存器或存储器中。

汇编指令大全

汇编指令大全

汇编指令大全(DST:destination目的操作数/地址;SRC:source源操作数/地址;port:端口;ac:Accumulator累加器;reg:register寄存器;cnt:counter计数器;opr:除了立即数之外的所有寻址方式(寄存器);立即数:直接包含在代码中,作为代码的一部分,不需要保存在寄存器中的操作数,相当于高级语言中的常量;r8/r16:8位通用寄存器/16位通用寄存器;SR:segment register段寄存器,包括DS、SS、ES、CS;mem:memory,表示存储器操作数;addr:address,表示内存单元地址;)[数据传送指令]一、通用数据传送指令1、传送指令MOV (move)指令的汇编格式:MOV DST,SRC指令的基本功能:(DST)←(SRC) 将原操作数(字节或字)传送到目的地址。

指令支持的寻址方式:目的操作数和源操作数不能同时用存储器寻址方式,这个限制适用于所有指令。

指令的执行对标志位的影响:不影响标志位。

指令的特殊要求:目的操作数DST和源操作数SRC不允许同时为段寄存器;目的操作数DST不能是CS,也不能用立即数方式。

2、进栈指令PUSH (push onto the stack)出栈指令POP (pop from the stack)指令的汇编格式:PUSH SRC ;POP DST指令的基本功能:PUSH指令在程序中常用来暂存某些数据,而POP指令又可将这些数据恢复。

PUSH SRC (SP)←(SP)-2 ;(SP)←(SRC)POP DST (DST)←((SP));(SP)←(SP)指令支持的寻址方式:push 和pop指令不能不能使用立即数寻址方式。

指令对标志位的影响:PUSH 和POP指令都不影响标志位。

指令的特殊要求:PUSH 和POP指令只能是字操作,因此,存取字数据后,SP的修改必须是+2 或者-2;POP指令的DST不允许是CS寄存器;3、交换指令XCHG (exchange)指令的汇编格式:XCHG OPR1,OPR2指令的基本功能:(OPR1)←>(OPR2)指令支持的寻址方式:一个操作数必须在寄存器中,另一个操作数可以在寄存器或存储器中。

汇编语言指令汇总

汇编语言指令汇总

汇编语言指令汇总汇编语言是一种底层编程语言,用于编写计算机程序。

在汇编语言中,指令是执行特定操作的基本单元。

以下是一些常见的汇编语言指令的汇总:1.数据传输指令:-MOV:将源操作数的值复制到目的操作数。

-PUSH:将数据压入栈中。

-POP:从栈中弹出数据。

-LEA:将源操作数的有效地址加载到目的操作数中。

2.算术和逻辑指令:-ADD:将两个操作数相加,结果存储在目的操作数中。

-SUB:将第二个操作数从第一个操作数中减去,结果存储在目的操作数中。

-MUL:将两个操作数相乘,结果存储在目的操作数中。

-DIV:将第一个操作数除以第二个操作数,商存储在目的操作数中。

3.分支和循环指令:-JMP:无条件跳转到指定的地址。

-CMP:比较两个操作数的值。

-JZ/JNZ:当比较结果为零/非零时,跳转到指定的地址。

-JE/JNE:当比较结果为相等/不相等时,跳转到指定的地址。

-JG/JGE/JL/JLE:当比较结果为大于/大于等于/小于/小于等于时,跳转到指定的地址。

-LOOP:循环指令,根据计数寄存器的值重复执行指定的代码块。

4.中断指令:-INT:引发中断,将程序控制权转移到中断服务程序。

-IRET:从中断服务程序返回到调用程序。

5.位操作指令:-AND/OR/XOR:按位与/或/异或操作。

-NOT:按位取反操作。

-SHL/SHR:逻辑左移/逻辑右移操作。

6.I/O指令:-IN:从输入端口读取数据。

-OUT:向输出端口写入数据。

7.标志位操作指令:-CLC:清除进位标志位。

-STC:设置进位标志位。

-CLI:禁用中断。

-STI:启用中断。

8.字符串指令:-MOVS:将一个字符串从源地址移动到目的地址。

-CMPS:比较两个字符串的内容。

-LODS:从源地址加载一个字符或一个字符串。

-STOS:存储一个字符或一个字符串到目的地址。

9.其他指令:-NOP:空操作指令。

-HLT:停止运行指令。

以上只是一些常见的汇编语言指令,汇编语言的指令集因计算机体系结构而异。

汇编语言常用指令大全

汇编语言常用指令大全

汇编语言常用指令大全汇编语言是一种计算机编程语言,使用指令来控制计算机硬件执行特定的操作。

在本文中,我们将介绍一些常用的汇编语言指令,以帮助读者更好地理解和学习汇编语言。

一、数据传输指令1. MOV:将数据从一个位置复制到另一个位置。

例子:MOV AX, BX 将寄存器BX中的值复制到寄存器AX中。

2. PUSH:将数据压入堆栈。

例子:PUSH AX 将寄存器AX中的值压入堆栈。

3. POP:从堆栈中弹出并获取数据。

例子:POP AX 从堆栈中弹出一个值,并将其存入寄存器AX中。

二、算术指令1. ADD:将两个操作数相加。

例子:ADD AX, BX 将寄存器AX和BX中的值相加,并将结果存入寄存器AX中。

2. SUB:将一个操作数从另一个操作数中减去。

例子:SUB AX, BX 将寄存器BX中的值从寄存器AX中减去,并将结果存入寄存器AX中。

3. MUL:将两个操作数相乘。

例子:MUL AX, BX 将寄存器AX和BX中的值相乘,并将结果存入寄存器AX中。

三、逻辑指令1. AND:进行逻辑与操作。

例子:AND AX, BX 对寄存器AX和BX中的值进行逻辑与操作,并将结果存入寄存器AX中。

2. OR:进行逻辑或操作。

例子:OR AX, BX 对寄存器AX和BX中的值进行逻辑或操作,并将结果存入寄存器AX中。

3. NOT:进行逻辑非操作。

例子:NOT AX 对寄存器AX中的值进行逻辑非操作。

四、条件分支指令1. JMP:无条件跳转到指定的地址。

例子:JMP label 跳转到标记为label的地址。

2. JZ:当操作数为零时跳转到指定的地址。

例子:JZ label 如果寄存器AX中的值为零,则跳转到标记为label 的地址。

3. JC:当进位标志为1时跳转到指定的地址。

例子:JC label 如果进位标志位为1,则跳转到标记为label的地址。

五、循环指令1. LOOP:当计数器不为零时,循环执行指定的代码块。

汇编语言最全指令表

汇编语言最全指令表

伪指令•1、定位伪指令ORG m•2、定义字节伪指令DB X1,X2,X3, (X)•3、字定义伪指令DW Y1,Y2,Y3,…,Yn4、汇编结束伪指令END寻址方式MCS-51单片机有五种寻址方式:1、寄存器寻址2、寄存器间接寻址3、直接寻址4、立即数寻址5、基寄存器加变址寄存器间接寻址6、相对寻址7、位寻址数据传送指令一、以累加器A为目的操作数的指令(4条)•MOV A,Rn ;(Rn)→A n=0~7•MOV A,direct ;(direct )→A•MOV A,@Ri ;((Ri))→A i=0~1•MOV A,#data ;data →A二、以Rn为目的操作数的指令(3条)MOV Rn ,A;(A)→ RnMOV Rn ,direct;(direct )→ RnMOV Rn ,#data;data → Rn•三、以直接寻址的单元为目的操作数的指令(5条)MOV direct,A;(A)→directMOV direct,Rn;(Rn)→directMOV direct,direct ;(源direct)→目的directMOV direct,@Ri;((Ri))→directMOV direct,#data;data→direct四、以寄存器间接寻址的单元为目的操作数的指令(3条)MOV @Ri,A;(A)→(Ri)MOV @Ri,direct;(direct)→(Ri)MOV @Ri,#data;data→(Ri)五、十六位数据传送指令(1条)MOV DPTR,#data16;dataH→DPH,dataL →DPL六、堆栈操作指令进栈指令PUSH direct ;(SP)+1 →SP ,(direct)→ SP 退栈指令POP direct七、字节交换指令(5条)•XCH A,Rn ;(A)→ß(Rn)•XCH A,direct ;(A)→ß(direct)•XCH A,@Ri ;(A)→ß((Ri))•八、半字节交换指令•XCHD A,@Ri ;(A)0~3→ß((Ri))0~3九、加器A与外部数据存贮器传送指令(4条)•MOVX A,@DPTR ;((DPTR))→A•MOVX A,@ Ri ;((Ri))→A i=0,1•MOVX @ DPTR ,A ;(A)→(DPTR)•MOVX @ Ri , A ;(A)→(Ri)i=0,1 十、查表指令(i)MOVC A ,@ A+PC ;((A)+(PC))→A•(ii)MOVC A ,@A+ DPTR ;((A)+(DPTR))算术运算指令一、不带进位的加法指令(4条)ADD A,Rn ;(A)+(Rn)→AADD A,direct ;(A)+(direct)→AADD A,@Ri ;(A)+((Ri))→AADD A,#data ;(A)+#data→A二、带进位加法指令(4条)ADDC A,Rn ;(A)+(Rn)+CY→AADDC A,direct ;(A)+(direct)+CY →AADDC A,@Ri ;(A)+((Ri))+CY →AADDC A,#data ;(A)+ #data +CY →A三、增量指令(5条)INC A ;(A)+1 →A•INC Rn ;(Rn)+1 → Rn•INC direct ;(direct)+1 → direct•INC @Ri ;((Ri))+1 →(Ri)•INC DPTR ;(DPTR)+1 →DPTR四、十进制调整指令(1条)DA A减法指令一、带进位减法指令SUBB A,RnSUBB A,directSUBB A,@RiSUBB A,#data二、减1指令(4条)DEC ADEC RnDEC directDEC @Ri乘法指令MUL AB除法指令DIV AB逻辑运算指令累加器A的逻辑操作指令一、累加器A清0CLR A二、累加器A取反CPL A三、左环移指令RL A四、带进位左环移指令RLC A五、右环移指令RR A六、带进位右环移指令RRC A七、累加器ACC半字节交换指令SWAP A两个操作数的逻辑操作指令逻辑与指令ANL A,RnANL A,direct ANL A,@Ri ANL A,#data ANL direct ,A ANL direct,#data逻辑或指令ORL A,RnORL A,directORL A,@RiORL A,#dataORL direct,AORL direct,#data逻辑异或指令XRL A,RnXRL A,directXRL A,@RiXRL A,#dataXRL direct,AXRL direct,#data 位操作指令位变量传送指令MOV C,bitMOV bit,C 位变量修改指令CLR CCLR bitCPL CCPL bitSETB CSETB bit位变量逻辑与指令ANL C,bitANL C,/bit位变量逻辑或指令ORL C,bitORL C,/bit控制转移指令无条件转移指令(4条)1、短跳转指令AJMP addr11 ;先(PC)+2→PC ;addr11→PC10~0 ,(PC15~11)2、跳转指令LJMP addr16 ;Addr16→PC3、转移指令4、SJMP rel ;先(PC)+2→PC;后(PC)+rel→PC4、寄存器加变址存器间接转移指令(散转指令)JMP @A+DPTR ;(A)+(DPTR)→PC条件转移指令(8条)一、测试条件符合转移指令JZ rel ;当A=0 时,(PC)+rel→(PC)转移;当A≠0时,顺序执行。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ORG 0000HNOP ;空操作指令AJMP L0003 ;绝对转移指令L0003: LJMP L0006 ;长调用指令L0006: RR A ;累加器A内容右移(先置A为88H)INC A ; 累加器A 内容加1INC 01H ;直接地址(字节01H)内容加1INC @R0 ; R0的内容(为地址) 的内容即间接RAM加1;(设R0=02H,02H=03H,单步执行后02H=04H)INC @R1 ; R1的内容(为地址) 的内容即间接RAM加1;(设R1=02H,02H=03H,单步执行后02H=04H)INC R0 ; R0的内容加1 (设R0为00H,单步执行后查R0内容为多少) INC R1 ; R1的内容加1(设R1为01H,单步执行后查R1内容为多少) INC R2 ; R2的内容加1 (设R2为02H,单步执行后查R2内容为多少) INC R3 ; R3的内容加1(设R3为03H,单步执行后查R3内容为多少) INC R4 ; R4的内容加1(设R4为04H,单步执行后查R4内容为多少) INC R5 ; R5的内容加1(设R5为05H,单步执行后查R5内容为多少) INC R6 ; R6的内容加1(设R6为06H,单步执行后查R6内容为多少) INC R7 ; R7的内容加1(设R7为07H,单步执行后查R7内容为多少) JBC 20H,L0017; 如果位(如20H,即24H的0位)为1,则转移并清0该位L0017: ACALL S0019 ;绝对调用S0019: LCALL S001C ;长调用S001C: RRC A ;累加器A的内容带进位位右移(设A=11H,C=0;单步执行后查A和C内容为多少)DEC A ;A的内容减1DEC 01H ;直接地址(01H)内容减1DEC @R0 ;R0间址减1,即R0的内容为地址,该地址的内容减1 DEC @R1 ; R1间址减1DEC R0 ; R0内容减1DEC R1 ; R1内容减1DEC R2 ; R2内容减1DEC R3 ; R3内容减1DEC R4 ; R4内容减1DEC R5 ; R5内容减1DEC R6 ; R6内容减1DEC R7 ; R7内容减1JB 20H,L002D;如果位(20H,即24H的0位)为1则转移L002D: AJMP L0017 ;绝对转移RET ;子程序返回指令RL A ;A左移ADD A,#01H ;A的内容与立即数(01H)相加ADD A,01H ; A的内容与直接地址(01H内容)相加ADD A,@R0 ; A的内容与寄存器R0的间址内容相加ADD A,@R1 ; A的内容与寄存器R1的间址内容相加ADD A,R0 ; A的内容与寄存器R0的内容相加ADD A,R1 ; A的内容与寄存器R1的内容相加ADD A,R2 ; A的内容与寄存器R2的内容相加ADD A,R3 ; A的内容与寄存器R3的内容相加ADD A,R4 ; A的内容与寄存器R4的内容相加ADD A,R5 ; A的内容与寄存器R5的内容相加ADD A,R6 ; A的内容与寄存器R6的内容相加ADD A,R7 ; A的内容与寄存器R7的内容相加JNB 30H,L0041 ;直接位(30H)为0相对转移L0041: ACALL S0100 ;绝对调用RETI ;中断返回指令RLC A ;带进位位左移ADDC A,#02H ;A带进位位与立即数(#02H)相加ADDC A,02H ; A带进位位与直接地扯(02H内容)相加ADDC A,@R0 ; A带进位位与R0间扯内容相加ADDC A,@R1 ; A带进位位与R1间扯内容相加ADDC A,R0 ; A带进位位与R0内容相加ADDC A,R1 ; A带进位位与R1内容相加ADDC A,R2 ; A带进位位与R2内容相加ADDC A,R3 ; A带进位位与R3内容相加ADDC A,R4 ; A带进位位与R4内容相加ADDC A,R5 ; A带进位位与R5内容相加ADDC A,R6 ; A带进位位与R6内容相加ADDC A,R7 ; A带进位位与R7内容相加JC L0095 ;进位为1转移NOPAJMP L0017 ;绝对转移ORL 02H,A ;直接地址内容与A或ORL 02H,#02H ; 直接地址内容与立即数或ORL A,#44H ;A与立即数或ORL A,02H ; A与直接地址内容或ORL A,@R0 ; A与R0间址内容或ORL A,@R1 ; A与R1间址内容或ORL A,R0 ; A与R0内容或ORL A,R1 ; A与R1内容或ORL A,R2 ; A与R2内容或ORL A,R3 ; A与R3内容或ORL A,R4 ; A与R4内容或ORL A,R5 ; A与R5内容或ORL A,R6 ; A与R6内容或ORL A,R7 ; A与R7内容或JNC L0017 ;进位为0转移ACALL L0017 ;绝对调用ANL 02H,A ; 直接地址与A与ANL 02H,#02H ; 立即数与直接地址与ANL A,#02H ; A与立即数与ANL A,02H ;A与直接地址与ANL A,@R0 ; A与R0间址与ANL A,@R1 ; A与R1间址与ANL A,R0 ; A与R0与ANL A,R1 ; A与R1与ANL A,R2 ; A与R2与ANL A,R3 ; A与R3与ANL A,R4 ; A与R4与ANL A,R5 ; A与R5与ANL A,R6 ; A与R6与ANL A,R7 ; A与R7与JZ L0084 ;A为零转移L0084: AJMP L0017 ;绝对转移XRL 01H,A ;直接地址与A异或XRL 02H,#01H ; 直接地址与立即数异或XRL A,#01H ;A与立即数异或XRL A,01H ; A与直接地址异或XRL A,@R0 ; A与R0间址址异或XRL A,@R1 ; A与R1间址址异或XRL A,R0 ; A与R0异或XRL A,R1 ; A与R1异或XRL A,R2 ; A与R2异或XRL A,R3 ; A与R3异或XRL A,R4 ; A与R4异或L0095: XRL A,R5 ; A与R5异或XRL A,R6 ; A与R6异或XRL A,R7 ; A与R7异或JNZ L0084 ;A不为零转L009A: ACALL L0084 ;绝对调用ORL C,01H ;直接位或到进位JMP @A+DPTR;相对于DPTR间接转MOV A,#01H ;立即数送AMOV 01H,#02H ;立即数送直接地址MOV @R0,#01H ;立即数送间址R0 MOV @R1,#02H ; 立即数送间址R1 MOV R0,#01H ; 立即数送R0MOV R1,#01H ; 立即数送R1MOV R2,#01H ; 立即数送R2MOV R3,#01H ; 立即数送R3MOV R4,#01H ; 立即数送R4MOV R5,#01H ; 立即数送R5MOV R6,#01H ; 立即数送R6MOV R7,#01H ; 立即数送R7SJMP L00BA ;短转移L00BA: AJMP L0095 ;绝对转移ANL C,02H ;直接地址与进位与ORG 00C0H ;MOV 02H,01H ;直接地址送直接地址MOV 01H,@R0;间址R0送直接地址MOV 01H,@R1; 间址R1送直接地址MOV 01H,R0 ; R0送直接地址MOV 01H,R1 ; R1送直接地址MOV 01H,R2 ; R2送直接地址MOV 01H,R3 ; R3送直接地址MOV 01H,R4 ; R4送直接地址MOV 01H,R5 ; R5送直接地址MOV 01H,R6 ; R6送直接地址MOV 01H,R7 ; R7送直接地址NOPMOV DPTR,#1234H;建立数据指针地址为1234HACALL L00BA ;绝对调用MOV 03H,C ;进位送03H位(即20H的03位)MOVC A,@A+DPTR ;由A+DPTR寻扯的程序存贮器字节送A SUBB A,#01H ;A减去立即数和进位位SUBB A,02H ; A减去直接地址内容和进位位SUBB A,@R0 ; A减去R0间接RAM和进位位SUBB A,@R1 ; A减去R1间接RAM和进位位SUBB A,R0 ; A减去R0和进位位SUBB A,R1 ; A减去R1和进位位SUBB A,R2 ; A减去R2和进位位SUBB A,R3 ; A减去R3和进位位SUBB A,R4 ; A减去R4和进位位SUBB A,R5 ; A减去R5和进位位SUBB A,R6 ; A减去R6和进位位SUBB A,R7 ; A减去R7和进位位ORL C,/00H ;直接位的反或到进位AJMP L0084 ;绝对转移MOV C,03H ;直接位数送进位INC DPTR ;数据指针加1MUL AB ;A乘以BNOP ;A5H为二字节空操作指令NOPMOV @R0,05H ;直接字芯送R0间接RAMMOV @R1,05H ; 直接字芯送R1间接RAMMOV R0,05H ; 直接字芯送R0MOV R1,05H ; 直接字芯送R1S0100: MOV R2,05H ; 直接字芯送R2MOV R3,05H ; 直接字芯送R3MOV R4,05H ; 直接字芯送R4MOV R5,05H ; 直接字芯送R5MOV R6,05H ; 直接字芯送R6MOV R7,05H ; 直接字芯送R7ANL C,/04H ; 直接位的反与到进位ACALL S0100 ;绝对调用CPL 04H ;直接位取反CPL C ;进位取反CJNE A,#01H,L0139 ;立即数与A比较,不相等则转移CJNE A,01H,L0139 ; 直接字节与A比较,不相等则转移CJNE @R0,#01H,L0139 ; 立即数与R0间接RAM比较,不相等则转移CJNE @R1,#01H,L0139 ; 立即数与R1间接RAM比较,不相等则转移CJNE R0,#01H,L0139 ; 立即数与R0比较,不相等则转移CJNE R1,#01H,L0139 ; 立即数与R1比较,不相等则转移CJNE R2,#01H,L0139 ; 立即数与R2比较,不相等则转移CJNE R3,#01H,L0139 ; 立即数与R3比较,不相等则转移CJNE R4,#01H,L0139 ; 立即数与R4比较,不相等则转移CJNE R5,#01H,L0139 ; 立即数与R5比较,不相等则转移CJNE R6,#01H,L0139 ; 立即数与R6比较,不相等则转移CJNE R7,#01H,L0139 ; 立即数与R7比较,不相等则转移PUSH 00H ;直接字节进栈,SP加1L0139: AJMP L0084 ;绝对转移CLR 04H ;直接位清零CLR C ;清零进位SWAP A ;A左环移四位(A的二个半字节交换)XCH A,05H ;交换A和直接字节XCH A,@R0 ; 交换A和R0间接RAMXCH A,@R1 ; 交换A和R1间接RAMXCH A,R0 ; 交换A和R0XCH A,R1 ; 交换A和R1XCH A,R2 ; 交换A和R2XCH A,R3 ; 交换A和R3XCH A,R4 ; 交换A和R4XCH A,R5 ; 交换A和R5XCH A,R6 ; 交换A和R6XCH A,R7 ; 交换A和R7POP 00H ;直接字节出栈,SP减1ACALL L0139 ;绝对调用SETB 03H ;置位直接位SETB C ;置位进位DA A ;A的十进制加法调熊DJNZ 01H,L0139 ;直接字节减1,不为零则转移XCHD A,@R0 ;交换A和R0间接RAM的低4位XCHD A,@R1 ; 交换A和R1间接RAM的低4位L0158: DJNZ R0,L0139 ; R0减1,不为零则转移DJNZ R1,L0158 ; R1减1,不为零则转移DJNZ R2,L0158 ; R2减1,不为零则转移DJNZ R3,L0158 ; R3减1,不为零则转移DJNZ R4,L0158 ; R4减1,不为零则转移DJNZ R5,L0158 ; R5减1,不为零则转移DJNZ R6,L0158 ; R6减1,不为零则转移DJNZ R7,L0158 ; R7减1,不为零则转移MOVX A,@DPTR ;外部数据(16位地址)送AL0169: NOPAJMP L0139 ;绝对转移MOVX A,@R0 ;R0间址即外部数据(8位地址)送A MOVX A,@R1 ; R1间址即外部数据(8位地址)送A CLR A ;清零AMOV A,05H ;直接字节送AMOV A,@R0 ;R0间接RAM送AMOV A,@R1 ; R1间接RAM送AMOV A,R0 ; R0送AMOV A,R1 ; R1送AMOV A,R2 ; R2送AMOV A,R3 ; R3送AMOV A,R4 ; R4送AMOV A,R5 ; R5送AMOV A,R6 ; R6送AMOV A,R7 ; R7送AMOVX @DPTR,A ;A送外部数据(16位地址)NOPACALL L0169 ;绝对调用MOVX @R0,A ;A送R0间址即外部数据(8位地址) MOVX @R1,A ; A送R1间址即外部数据(8位地址) CPL A ;A取反MOV 05H,A ;A送直接字节MOV @R0,A ; A送R0间址即间接RAMMOV @R1,A ; A送R1间址即间接RAMMOV R0,A ; A送R0MOV R1,A ; A送R1MOV R2,A ; A送R2MOV R3,A ; A送R3MOV R4,A ; A送R4MOV R5,A ; A送R5MOV R6,A ; A送R6MOV R7,A ; A送R7END51的汇编控制指令详细列表8051 INSTRUCTION SET1.Arithmetic operations:Mnemonic Byte CycADD A,@Ri 1 1ADD A,Rn 1 1ADD A,direct 2 1ADD A,#data 2 1ADDC A,@Ri 1 1ADDC A,Rn 1 1ADDC A,direct 2 1ADDC A,#data 2 1SUBB A,@Ri 1 1SUBB A,Rn 1 1SUBB A,direct 2 1SUBB A,#data 2 1INC A 1 1INC @Ri 1 1INC Rn 1 1INC DPTR 1 1INC direct 2 1INC direct 2 1DEC A 1 1DEC @Ri 1 1DEC Rn 1 1DEC direct 2 1MUL AB 1 4DIV AB 1 4DA A 1 18051的汇编控制指令,占用字节,执行周期列表3.Data transfer:Mnemonic Byte CycMOV A,@Ri 1 1MOV DPTR,#data16 3 2MOV A,Rn 1 1MOVC A,@A+DPTR 1 2MOV A,direct 2 1MOVC A,@A+PC 1 2MOV A,#data 2 1MOVX A,@Ri 1 2 8051的汇编控制指令,占用字节,执行周期列表2. Logical opreations:ANL A,@Ri 1 1XRL A,@Ri 1 1ANL A,Rn 1 1XRL A,Rn 1 1ANL A,direct 2 1XRL A,direct 2 1ANL A,#data 2 1XRL A,#data 2 1ANL direct,A 2 1XRL direct,A 2 1ANL direct,#data 3 2XRL direct,#data 3 2ORL A,@Ri 1 1CLR A 1 1ORL A,Rn 1 1CPL A 1 1ORL A,direct 2 1RL A 1 1ORL A,#data 2 1RLC A 1 1ORL direct,A 2 1RR A 1 1ORL direct,#data 3 2RRC A 1 1SWAP A 1 18051的汇编控制指令,占用字节,执行周期列表4.Boolean variable manipulation:Mnemonic Byte CycCLR C 1 1ANL C,bit 2 2SETB C 1 1ANL C,/bit 2 2CPL C 1 1ORL C,bit 2 2CLR bit 2 1ORL C,/bit 2 2SETB bit 2 1MOV C,bit 2 1CPL bit 2 1MOV bit,C 2 2MOV @Ri,A 1 1MOVX A,@DPTR 1 2 MOV @Ri,direct 2 2 MOVX @Ri,A 1 2 MOV @Ri,#data 2 1 MOVX @DPTR,A 1 2 MOV Rn,A 1 1 PUSH direct 2 2 MOV Rn,direct 2 2 POP direct 2 2MOV Rn,#data 2 1 XCH A,@Ri 1 1 MOV direct,A 2 1 XCH A,Rn 1 1MOV direct,@Ri 2 2 XCH A,direct 2 1 MOV direct,Rn 2 2 XCHD A,@Ri 1 1 MOV direct,direct 3 2 MOV direct,#data 3 2 8051的汇编控制指令,占用字节,执行周期列表5.Program and machine control:Mnemonic Byte CycNOP 1 1JZ rel 2 2RET 1 2JNZ rel 2 2RETI 1 2JC rel 2 2ACALL addr11 2 2JNC rel 2 2AJMP addr11 2 2JB bit,rel 3 2LCALL addr16 3 2JNB bit,rel 3 2LJMP addr16 3 2JBC bit,rel 3 2SJMP rel 2 2CJNE A,direct,rel 3 2JMP @A+DPTR 1 2CJNE A,#data,rel 3 2DJNZ Rn,rel 2 2CJNE @Ri,#data,rel 3 2DJNZ direct,rel 3 2CJNE Rn,#data,rel 3 2。

相关文档
最新文档