logo资料库

8051系列单片机汇编语言指令速查表.doc

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
8051 系列单片机汇编语言指令速查表 编号 指令名称 指令助记符 指令说明 一般传送 数据传送类指令 MOV A, #data MOV direct, #data Mov Rn, #data Mov @Ri, #data 将立即数#data 送累加器 A 将立即数#data 送片内 RAM direct 地址单元内 将立即数#data 送寄存器 Rn 寄存器 Ri 内为 RAM 地址,将立即数#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 将 Rn 的数据送 direct 地址单元内 将 direct 地址单元内的数据送 Rn 寄存器 寄存器 Ri 内为 RAM 地址,将该地址单元内的数据送 direct 地址单元内 寄存器 Ri 内为 RAM 地址,将 direct 地址单元内的数 据送该地址单元内 将寄存器 Rn 内的数据送累加器 A 将累加器 A 内的数据送寄存器 Rn 将 direct 地址单元内的数据送累加器 A 将累加器 A 内的数据送 direct 地址单元内 寄存器 Ri 内为 RAM 地址,将该地址单元内的数据送 累加器 A 寄存器 Ri 内为 RAM 地址,将累加器 A 的数据送该 地址单元内 目的地址传送 Mov DPTR, #data16 将 16 位立即数送数据指针 DPTR 寄存器 字节交换 与外部 RAM 传送 SWAP A XCH A, Rn XCH A, direct XCH A, @Ri XCHD A, @Ri MOVX @DPTR, A MOVX A , @DPTR MOVX A, @Ri 累加器 A 高低 4 位数据交换 将累加器 A 数据和寄存器 Rn 内的数据交换 将累加器 A 数据和 direct 地址单元内的数据交换 寄存器 Ri 内为 RAM 地址,将该地址单元内的数据与 累加器 A 的数据交换 寄存器 Ri 内为 RAM 地址,将该地址单元内的数据低 4 位与的低 4 位交换 将累加器 A 的数据送数据指针 DPTR 寄存器所指外 部 RAM 地址单元内 将 DPTR 寄存器所指外部 RAM 地址单元内的数据送 累加器 A 寄存器 Ri 内为片外 RAM 地址,将该地址单元内的数 据送累加器 A MOVX @Ri, A 寄存器 Ri 内为片外 RAM 地址,将该地址单元内的数 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
据送累加器 A 与 ROM 传送 栈操作 MOVC A, @A+DPTR MOVC A, @A+PC PUSH direct A+DPTR 构成 ROM 地址,将该地址内的数据送累加 器 A 内 A+PC 构成 ROM 地址,将该地址内的数据送累加器 A 内 堆栈指针 SP 自加 1 后,将 direct 地址单元的数据压 进堆栈, POP direct 堆栈的数据送 direct 地址单元中,后堆栈指针减 1, 算术运算指令 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 将寄存器 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 加法指令 带进位加法 带借位减法 加 1 指令 减 1 指令 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 乘法 除法 二-十进制调整 逻辑与 逻辑或 逻辑异或 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 寄存器 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 的值按位取反 XRL direct, #data 按位取反 CPL A
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 累加器清零 逻辑右移 逻辑左移 带进位右移 带进位左移 CLR A RR A RL A RRC A RLC A SJMP rel 累加器 A 清 0 累加器 A 的值循环右移 1 位 累加器 A 的值循环左移 1 位 累加器 A 的值带进位循环右移 1 位 累加器 A 的值带进位循环左移 1 位 控制转移指令 rel 为地址偏移量,PC 加 2 后的地址加上 rel 作为目 标地址,程序跳到目标地址继续运行 addr11 为 11 位地址,PC 加 2 后的地址高 5 位与指令 中的低 11 位地址构成目标地址,程序跳到目标地址 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 将 addr16 的 16 位地址送程序计数器 PC,使机器执行 下一条指令时无条件转移到 addr16 处执行程序 目标地址的基地址放在 DPTR 中,目标地址对基地址 的偏移量放在累加器 A 中,它们相加构成目标地址 If(累加器 A=0)则 PC 加 2 再加上 rel 作为目标地址 If(累加器 A!=0)则 PC 加 2 再加上 rel 作为目标地 址 If(累加器 A!= direct 地址单元的值)则 PC 加 2 再加 上 rel 作为目标地址 If(累加器 A!= 立即数)则 PC 加 2 再加上 rel 作为 目标地址 If(寄存器 Rn 的值!= 立即数)则 PC 加 2 再加上 rel 作为目标地址 寄存器 Ri 内为 RAM 地址,If(该地址单元的值!= 立 即数)则 PC 加 2 再加上 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 中使程 序回到调用处
98 99 100 101 102 103 104 105 106 107 108 109 110 111 说明: 空操作 布尔传送 位清 0 位清 0 位置 1 位与 位或 位取反 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 中断程序返回指令,把堆栈中的地址恢复到 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 位地址的值取反 1)Ri, Rn 指当前工作寄存器,i,n = 0 – 7,当前工作寄存器由程序状态字寄存器 PSW 的 2 个位 RS1, RS0 决 定
分享到:
收藏