单片机汇编语言编程?


8051系列单片机汇编语言指令速查表(汇编语言的111条指_纳兰容若的左手_新浪博客 http://blog.sina.com.cn/s/blog_6486c0b30100gqew.html
编号 指令名称 指令助记符 指令说明数据传送类指令1 一般传送 MOV A, #data 将立即数#data送累加器A2 MOV direct, #data 将立即数#data送片内RAM direct地址单元内3 Mov Rn, #data 将立即数#data送寄存器Rn4 Mov @Ri, #data 寄存器Ri内为RAM地址,将立即数#data送该地址单元内5 Mov direct2, direct1 将direct1地址单元的数据送 direct2地址单元内6 Mov direct, rn 将Rn的数据送 direct地址单元内7 Mov Rn, direct 将direct地址单元内的数据送Rn寄存器8 Mov direct, @Ri 寄存器Ri内为RAM地址,将该地址单元内的数据送direct地址单元内9 Mov @Ri, direct 寄存器Ri内为RAM地址,将direct地址单元内的数据送该地址单元内10 Mov A, Rn 将寄存器Rn内的数据送累加器A11 Mov Rn, A 将累加器A内的数据送寄存器Rn12 Mov A, direct 将direct地址单元内的数据送累加器A13 Mov direct, A 将累加器A内的数据送direct地址单元内14 Mov A, @Ri 寄存器Ri内为RAM地址,将该地址单元内的数据送累加器A15 Mov @Ri , A 寄存器Ri内为RAM地址,将累加器A的数据送该地址单元内16 目的地址传送 Mov DPTR, #data16 将16位立即数送数据指针DPTR寄存器17 字节交换 SWAP A 累加器A高低4位数据交换18 XCH A, Rn 将累加器A数据和寄存器Rn内的数据交换19 XCH A, direct 将累加器A数据和direct地址单元内的数据交换20 XCH A, @Ri 寄存器Ri内为RAM地址,将该地址单元内的数据与累加器A的数据交换21 XCHD A, @Ri 寄存器Ri内为RAM地址,将该地址单元内的数据低4位与的低4位交换22 与外部RAM传送 MOVX @DPTR, A 将累加器A的数据送数据指针DPTR寄存器所指外部RAM地址单元内23 MOVX A , @DPTR 将DPTR寄存器所指外部RAM地址单元内的数据送累加器A24 MOVX A, @Ri 寄存器Ri内为片外RAM地址,将该地址单元内的数据送累加器A25 MOVX @Ri, A 寄存器Ri内为片外RAM地址,将该地址单元内的数据送累加器A26 与ROM传送 MOVC A, @A+DPTR A+DPTR构成ROM地址,将该地址内的数据送累加器A内27 MOVC A, @A+PC A+PC构成ROM地址,将该地址内的数据送累加器A内28 栈操作 PUSH direct 堆栈指针SP自加1后,将direct地址单元的数据压进堆栈,29 POP direct 堆栈的数据送direct地址单元中,后堆栈指针减1,算术运算指令30 加法指令 ADD A, Rn 将寄存器Rn与累加器A的数据相加后,结果保存到累加器A31 ADD A, direct 将direct地址单元内的数据与累加器A的数据相加后结果保存到累加器A32 ADD A, @Ri 寄存器Ri内位地址,将该地址单元内的数据与累加器A的数据相加后结果保存到累加器A33 ADD A, #data 将立即数与累加器A的数据相加后结果保存到累加器A34 带进位加法 ADDC A, Rn 将寄存器Rn与累加器A的数据相加,再加上进位标志内的值后,结果保存到累加器A35 ADDC A, direct 将direct地址单元内的数据与累加器A的数据相加,再加上进位标志内的值后,结果保存到累加器A36 ADDC A, @Ri 寄存器Ri内为RAM地址,将该地址单元内的数据与累加器A的数据相加,再加上进位标志内的值后,结果保存到累加器A37 ADDC A, #data 将立即数与累加器A的数据相加,再加上进位标志内的值后结果保存到累加器A38 带借位减法 SUBB A, Rn 将与累加器A的数据减去寄存器Rn的数据,再减去进位标志内的值,结果保存到累加器A39 SUBB A, direct 将与累加器A的数据减去direct地址单元内的数据,再减去进位标志内的值,结果保存到累加器A40 SUBB A, @Ri 寄存器Ri内为RAM地址,将累加器A的数据减去该地址单元内的数据,再减去进位标志内的值后,结果保存到累加器A41 SUBB A, #data 将累加器A的数据减去立即数,再减去进位标志内的值后,结果保存到累加器A42 加1指令 INC A 累加器A的值自加143 INC Rn 寄存器Rn的值自加144 INC direct direct地址单元内值自加145 INC @Ri 寄存器Ri内为RAM地址,该地址单元内的值自加146 INC DPTR 数据指针寄存器DPTR内的值自加147 减1指令 DEC A 累加器A的值自减148 DEC Rn 寄存器Rn的值自减149 DEC direct direct地址单元内的值自减150 DEC @Ri 寄存器Ri内为RAM地址,该地址单元内的值自减151 乘法 MUL AB 累加器A与寄存器B内的值相乘,乘积的高8位保存在B寄存器,低8位保存在累加器A中52 除法 DIV AB 累加器A的值除以寄存器B的值,商保存在累加器A中,余数保存在B寄存器53 二-十进制调整 DA A 对累加器A的结果进行十进制调整逻辑运算指令54 逻辑与 ANL A, Rn 将累加器A的值和寄存器Rn的值进行与操作,结果保存到累加器A中55 ANL A, direct 将累加器A的值和direct地址单元内的值进行与操作,结果保存到累加器A中56 ANL A, @Ri 寄存器Ri内为RAM地址,将累加器A的值和该地址单元内的值进行与操作,结果保存到累加器A中57 ANL A, #data 将累加器A的值和立即数进行与操作,结果保存到累加器A中58 ANL direct, A 将累加器A的值和direct地址单元内的值进行与操作,结果保存到direct地址单元内59 ANL direct, #data 将立即数和direct地址单元内的值进行与操作,结果保存到direct地址单元内60 逻辑或 ORL A, Rn 将累加器A的值和寄存器Rn的值进行或操作,结果保存到累加器A中61 ORL A, direct 将累加器A的值和direct地址单元内的值进行或操作,结果保存到累加器A中62 ORL A, @Ri 寄存器Ri内为RAM地址,将累加器A的值和该地址单元内的值进行或操作,结果保存到累加器A中63 ORL A, #data 将累加器A的值和立即数进行或操作,结果保存到累加器A中64 ORL direct, A 将累加器A的值和direct地址单元内的值进行或操作,结果保存到direct地址单元内65 ORL direct, #data 将立即数和direct地址单元内的值进行或操作,结果保存到direct地址单元内66 逻辑异或 XRL A, Rn 将累加器A的值和寄存器Rn的值进行异或操作,结果保存到累加器A中67 XRL A, direct 将累加器A的值和direct地址单元内的值进行异或操作,结果保存到累加器A中68 XRL A, @Ri 寄存器Ri内为RAM地址,将累加器A的值和该地址单元内的值进行异或操作,结果保存到累加器A中69 XRL A, #data 将累加器A的值和立即数进行异或操作,结果保存到累加器A中70 XRL direct, A 将累加器A的值和direct地址单元内的值进行异或操作,结果保存到direct地址单元内71 XRL direct, #data 将立即数和direct地址单元内的值进行异或操作,结果保存到direct地址单元内72 按位取反 CPL A 累加器A的值按位取反73 累加器清零 CLR A 累加器A清074 逻辑右移 RR A 累加器A的值循环右移1位75 逻辑左移 RL A 累加器A的值循环左移1位76 带进位右移 RRC A 累加器A的值带进位循环右移1位77 带进位左移 RLC A 累加器A的值带进位循环左移1位控制转移指令78 无条件转移 SJMP rel rel为地址偏移量,PC加2后的地址加上rel作为目标地址,程序跳到目标地址继续运行79 AJMP addr11(a10- a0) addr11为11位地址,PC加2后的地址高5位与指令中的低11位地址构成目标地址,程序跳到目标地址继续运行80 LJMP addr16 将addr16的16位地址送程序计数器PC,使机器执行下一条指令时无条件转移到addr16处执行程序81 JMP @A+DPTR 目标地址的基地址放在DPTR中,目标地址对基地址的偏移量放在累加器A中,它们相加构成目标地址82 条件转移 JZ rel If(累加器A=0)则PC加2再加上rel作为目标地址83 JNZ rel If(累加器A!=0)则PC加2再加上rel作为目标地址84 CJNE A, direct, rel If(累加器A!= direct地址单元的值)则PC加2再加上rel作为目标地址85 CJNE A, #data, rel If(累加器A!= 立即数)则PC加2再加上rel作为目标地址86 CJNE Rn, #data, rel If(寄存器Rn的值!= 立即数)则PC加2再加上rel作为目标地址87 CJNE @Ri, #data, rel 寄存器Ri内为RAM地址,If(该地址单元的值!= 立即数)则PC加2再加上rel作为目标地址88 循环转移 DJNZ Rn, rel 寄存器Rn的值减1后,If(寄存器Rn的值!=0)则PC加2再加上rel作为目标地址89 DJNZ direct, rel Direct地址单元的值减1后,If(该值!=0)则PC加3再加上rel作为目标地址90 布尔条件转移 JC rel If(CY=1)则PC加2再加上rel作为目标地址91 JNC rel If(CY=0)则PC加2再加上rel作为目标地址92 JB bit, rel If(bit位=1)则PC加3再加上rel作为目标地址93 JNB bit, rel If(bit位=0)则PC加3再加上rel作为目标地址94 JBC bit, rel If(bit位=1)则PC加3再加上rel作为目标地址,且bit位清095 调用指令 ACALL addr11 addr11为11位地址,PC加2后的地址PUSH进堆栈,再将PC的地址高5位与指令中的低11位地址构成目标地址,程序跳到目标地址继续运行96 LCALL addr16 PC加3后的地址PUSH进堆栈,再将16位地址送PC作为目标地址,程序跳到目标地址继续运行97 返回指令 RET 子程序返回指令,把堆栈中的地址恢复到PC中使程序回到调用处98 RETI 中断程序返回指令,把堆栈中的地址恢复到PC中使程序回到调用处99 空操作 NOP 空操作位操作指令100 布尔传送 MOV C, bit 将bit位地址中的值送PSW中的进位标志位CY101 MOV bit, C 将PSW中的进位标志位CY的值送bit位地址中102 位清0 CLR C 将进位标志位CY清0103 位清0 CLR bit 将bit位地址内清0104 位置1 SETB C 将进位标志位CY置1105 SETB bit 将bit位地址内置1106 位与 ANL C, bit 将Cy和bit位地址中的值进行与操作后,结果送Cy107 ANL C, /bit bit位地址中的值取反后再与Cy进行与操作,结构送Cy108 位或 ORL C, bit 将Cy和bit位地址中的值进行或操作后,结果送Cy109 ORL C, /bit bit位地址中的值取反后再与Cy进行或操作,结构送Cy110 位取反 CPL C 将Cy取反111 CPL bit 将bit位地址的值取反说明:1)Ri, Rn指当前工作寄存器,i,n = 0 – 7,当前工作寄存器由程序状态字寄存器PSW的2个位RS1, RS0决定}

我要回帖

更多关于 汇编语言编程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信