logo资料库

51汇编111条指令解析大全(打印版).pdf

第1页 / 共1页
资料共1页,全文预览结束
编号 指令名称 指令助记符 8051系列单片机汇编语言指令速查表 指令说明 字节 周期 将立即数#data送累加器A 将立即数#data送片内RAM direct地址单元内 将立即数#data送寄存器Rn 寄存器Ri内为RAM地址,将立即数#data送该地址单元内 2 3 2 2 3 2 2 2 2 1 1 2 2 1 1 3 1 1 2 1 1 1 1 1 1 1 1 2 2 1 2 1 2 1 2 1 2 1 2 1 2 1 1 2 1 1 1 1 2 1 1 1 1 1 2 1 2 2 3 1 2 1 2 2 3 1 2 1 2 2 3 1 1 1 1 1 1 2 2 3 1 2 2 3 3 3 3 2 3 2 2 3 3 3 2 3 1 1 1 2 2 1 2 1 2 2 2 2 2 1 2 1 2 1 1 2 2 2 2 2 1 1 1 1 1 1 2 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 4 4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 1 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 一般传送 目的地址传送 字节交换 与外部RAM传 送 与ROM传送 栈操作 加法指令 带进位加法 带借位减法 加1指令 减1指令 乘法 除法 二-十进制调整 逻辑与 逻辑或 逻辑异或 按位取反 累加器清零 逻辑右移 逻辑左移 带进位右移 带进位左移 无条件转移 条件转移 循环转移 布尔条件转移 调用指令 返回指令 空操作 布尔传送 位清0 位清0 位置1 位与 位或 位取反 MOV A, #data MOV direct, #data Mov Rn, #data Mov @Ri, #data Mov direct2, direct1 将direct1地址单元的数据送 direct2地址单元内 Mov direct, rn Mov Rn, direct Mov direct, @Ri Mov @Ri, direct Mov A, Rn Mov Rn, A Mov A, direct Mov direct, A Mov A, @Ri Mov @Ri , A Mov DPTR, #data16 SWAP A XCH A, Rn XCH A, direct XCH A, @Ri XCHD A, @Ri MOVX @DPTR, A MOVX A , @DPTR MOVX A, @Ri MOVX @Ri, A MOVC A, @A+DPTR MOVC A, @A+PC PUSH direct POP direct ADD A, Rn ADD A, direct ADD A, @Ri ADD A, #data ADDC A, Rn ADDC A, direct ADDC A, @Ri ADDC A, #data SUBB A, Rn SUBB A, direct SUBB A, @Ri SUBB A, #data INC A INC Rn INC direct INC @Ri INC DPTR DEC A DEC Rn DEC direct DEC @Ri MUL AB DIV AB DA A ANL A, Rn ANL A, direct ANL A, @Ri ANL A, #data ANL direct, A ANL direct, #data ORL A, Rn ORL A, direct ORL A, @Ri ORL A, #data ORL direct, A ORL direct, #data XRL A, Rn XRL A, direct XRL A, @Ri XRL A, #data XRL direct, A XRL direct, #data CPL A CLR A RR A RL A RRC A RLC A SJMP rel AJMP addr11(a10- a0) LJMP addr16 JMP @A+DPTR JZ rel JNZ rel CJNE A, direct, rel CJNE A, #data, rel CJNE Rn, #data, rel CJNE @Ri, #data, rel DJNZ Rn, rel DJNZ direct, rel JC rel JNC rel JB bit, rel JNB bit, rel JBC bit, rel ACALL addr11 LCALL addr16 RET RETI NOP MOV C, bit MOV bit, C CLR C CLR bit SETB C SETB bit ANL C, bit ANL C, /bit ORL C, bit ORL C, /bit CPL C CPL bit 将Rn的数据送 direct地址单元内 将direct地址单元内的数据送Rn寄存器 寄存器Ri内为RAM地址,将该地址单元内的数据送direct地址单元内 寄存器Ri内为RAM地址,将direct地址单元内的数据送该地址单元内 将寄存器Rn内的数据送累加器A 将累加器A内的数据送寄存器Rn 将direct地址单元内的数据送累加器A 将累加器A内的数据送direct地址单元内 寄存器Ri内为RAM地址,将该地址单元内的数据送累加器A 寄存器Ri内为RAM地址,将累加器A的数据送该地址单元内 将16位立即数送数据指针DPTR寄存器 累加器A高低4位数据交换 将累加器A数据和寄存器Rn内的数据交换 将累加器A数据和direct地址单元内的数据交换 寄存器Ri内为RAM地址,将该地址单元内的数据与累加器A的数据交换 寄存器Ri内为RAM地址,将该地址单元内的数据低4位与的低4位交换 将累加器A的数据送数据指针DPTR寄存器所指外部RAM地址单元内 将DPTR寄存器所指外部RAM地址单元内的数据送累加器A 寄存器Ri内为片外RAM地址,将该地址单元内的数据送累加器A 寄存器Ri内为片外RAM地址,将该地址单元内的数据送累加器A A+DPTR构成ROM地址,将该地址内的数据送累加器A内 A+PC构成ROM地址,将该地址内的数据送累加器A内 堆栈指针SP自加1后,将direct地址单元的数据压进堆栈, 堆栈的数据送direct地址单元中,后堆栈指针减1, 将寄存器Rn与累加器A的数据相加后,结果保存到累加器A 将direct地址单元内的数据与累加器A的数据相加后结果保存到累加器A 寄存器Ri内位地址,将该地址单元内的数据与累加器A的数据相加后结果保存到累加器A 将立即数与累加器A的数据相加后结果保存到累加器A 将寄存器Rn与累加器A的数据相加,再加上进位标志内的值后,结果保存到累加器A 将direct地址单元内的数据与累加器A的数据相加,再加上进位标志内的值后,结果保存到累加器A 寄存器Ri内为RAM地址,将该地址单元内的数据与累加器A的数据相加,再加上进位标志内的值后,结果保存到累加器A 将立即数与累加器A的数据相加,再加上进位标志内的值后结果保存到累加器A 将累加器A的数据减去寄存器Rn的数据,再减去进位标志内的值,结果保存到累加器A 将累加器A的数据减去direct地址单元内的数据,再减去进位标志内的值,结果保存到累加器A 寄存器Ri内为RAM地址,将累加器A的数据减去该地址单元内的数据,再减去进位标志内的值后,结果保存到累加器A 将累加器A的数据减去立即数,再减去进位标志内的值后,结果保存到累加器A 累加器A的值自加1 寄存器Rn的值自加1 direct地址单元内值自加1 寄存器Ri内为RAM地址,该地址单元内的值自加1 数据指针寄存器DPTR内的值自加1 累加器A的值自减1 寄存器Rn的值自减1 direct地址单元内的值自减1 寄存器Ri内为RAM地址,该地址单元内的值自减1 累加器A与寄存器B内的值相乘,乘积的高8位保存在B寄存器,低8位保存在累加器A中 累加器A的值除以寄存器B的值,商保存在累加器A中,余数保存在B寄存器 对累加器A的结果进行十进制调整 将累加器A的值和寄存器Rn的值进行与操作,结果保存到累加器A中 将累加器A的值和direct地址单元内的值进行与操作,结果保存到累加器A中 寄存器Ri内为RAM地址,将累加器A的值和该地址单元内的值进行与操作,结果保存到累加器A中 将累加器A的值和立即数进行与操作,结果保存到累加器A中 将累加器A的值和direct地址单元内的值进行与操作,结果保存到direct地址单元内 将立即数和direct地址单元内的值进行与操作,结果保存到direct地址单元内 将累加器A的值和寄存器Rn的值进行或操作,结果保存到累加器A中 将累加器A的值和direct地址单元内的值进行或操作,结果保存到累加器A中 寄存器Ri内为RAM地址,将累加器A的值和该地址单元内的值进行或操作,结果保存到累加器A中 将累加器A的值和立即数进行或操作,结果保存到累加器A中 将累加器A的值和direct地址单元内的值进行或操作,结果保存到direct地址单元内 将立即数和direct地址单元内的值进行或操作,结果保存到direct地址单元内 将累加器A的值和寄存器Rn的值进行异或操作,结果保存到累加器A中 将累加器A的值和direct地址单元内的值进行异或操作,结果保存到累加器A中 寄存器Ri内为RAM地址,将累加器A的值和该地址单元内的值进行异或操作,结果保存到累加器A中 将累加器A的值和立即数进行异或操作,结果保存到累加器A中 将累加器A的值和direct地址单元内的值进行异或操作,结果保存到direct地址单元内 将立即数和direct地址单元内的值进行异或操作,结果保存到direct地址单元内 累加器A的值按位取反 累加器A清0 累加器A的值循环右移1位 累加器A的值循环左移1位 累加器A的值带进位循环右移1位 累加器A的值带进位循环左移1位 rel为地址偏移量,PC加2后的地址加上rel作为目标地址,程序跳到目标地址继续运行 addr11为11位地址,PC加2后的地址高5位与指令中的低11位地址构成目标地址,程序跳到目标地址继续运行 将addr16的16位地址送程序计数器PC,使机器执行下一条指令时无条件转移到addr16处执行程序 目标地址的基地址放在DPTR中,目标地址对基地址的偏移量放在累加器A中,它们相加构成目标地址 If(累加器A=0)则PC加2再加上rel作为目标地址 If(累加器A!=0)则PC加2再加上rel作为目标地址 If(累加器A!= direct地址单元的值)则PC加3再加上rel作为目标地址 If(累加器A!= 立即数)则PC加3再加上rel作为目标地址 If(寄存器Rn的值!= 立即数)则PC加3再加上rel作为目标地址 寄存器Ri内为RAM地址,If(该地址单元的值!= 立即数)则PC加3再加上rel作为目标地址 寄存器Rn的值减1后,If(寄存器Rn的值!=0)则PC加2再加上rel作为目标地址 Direct地址单元的值减1后,If(该值!=0)则PC加3再加上rel作为目标地址 If(CY=1)则PC加2再加上rel作为目标地址 If(CY=0)则PC加2再加上rel作为目标地址 If(bit位=1)则PC加3再加上rel作为目标地址 If(bit位=0)则PC加3再加上rel作为目标地址 If(bit位=1)则PC加3再加上rel作为目标地址,且bit位清0 addr11为11位地址,PC加2后的地址PUSH进堆栈,再将PC的地址高5位与指令中的低11位地址构成目标地址,程序跳到目标地址继续运行 PC加3后的地址PUSH进堆栈,再将16位地址送PC作为目标地址,程序跳到目标地址继续运行 子程序返回指令,把堆栈中的地址恢复到PC中使程序回到调用处 中断程序返回指令,把堆栈中的地址恢复到PC中使程序回到调用处 空操作 将bit位地址中的值送PSW中的进位标志位CY 将PSW中的进位标志位CY的值送bit位地址中 将进位标志位CY清0 将bit位地址内清0 将进位标志位CY置1 将bit位地址内置1 将Cy和bit位地址中的值进行与操作后,结果送Cy bit位地址中的值取反后再与Cy进行与操作,结构送Cy 将Cy和bit位地址中的值进行或操作后,结果送Cy bit位地址中的值取反后再与Cy进行或操作,结构送Cy 将Cy取反 将bit位地址的值取反 Ri, Rn指当前工作寄存器,i=0,1;n = 0 – 7,当前工作寄存器由程序状态字寄存器PSW的2个位RS1, RS0决定
分享到:
收藏