8051系列单片机汇编语言指令速查表(汇编语言的111条指
8051系列單片機匯編語言指令速查表(匯編語言的111條指_納蘭容若的左手_新浪博客 http://blog.sina.com.cn/s/blog_6486c0b30100gqew.html
編號 指令名稱 指令助記符 指令說明
數據傳送類指令
1 一般傳送 MOV A, #data 將立即數#data送累加器A
2 MOV direct, #data 將立即數#data送片內RAM direct地址單元內
3 Mov Rn, #data 將立即數#data送寄存器Rn
4 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內的數據送累加器A
11 Mov Rn, A 將累加器A內的數據送寄存器Rn
12 Mov A, direct 將direct地址單元內的數據送累加器A
13 Mov direct, A 將累加器A內的數據送direct地址單元內
14 Mov A, @Ri 寄存器Ri內為RAM地址,將該地址單元內的數據送累加器A
15 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地址單元內的數據送累加器A
24 MOVX A, @Ri 寄存器Ri內為片外RAM地址,將該地址單元內的數據送累加器A
25 MOVX @Ri, A 寄存器Ri內為片外RAM地址,將該地址單元內的數據送累加器A
26 與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的數據相加后,結果保存到累加器A
31 ADD A, direct 將direct地址單元內的數據與累加器A的數據相加后結果保存到累加器A
32 ADD A, @Ri 寄存器Ri內位地址,將該地址單元內的數據與累加器A的數據相加后結果保存到累加器A
33 ADD A, #data 將立即數與累加器A的數據相加后結果保存到累加器A
34 帶進位加法 ADDC A, Rn 將寄存器Rn與累加器A的數據相加,再加上進位標志內的值后,結果保存到累加器A
35 ADDC A, direct 將direct地址單元內的數據與累加器A的數據相加,再加上進位標志內的值后,結果保存到累加器A
36 ADDC A, @Ri 寄存器Ri內為RAM地址,將該地址單元內的數據與累加器A的數據相加,再加上進位標志內的值后,結果保存到累加器A
37 ADDC A, #data 將立即數與累加器A的數據相加,再加上進位標志內的值后結果保存到累加器A
38 帶借位減法 SUBB A, Rn 將與累加器A的數據減去寄存器Rn的數據,再減去進位標志內的值,結果保存到累加器A
39 SUBB A, direct 將與累加器A的數據減去direct地址單元內的數據,再減去進位標志內的值,結果保存到累加器A
40 SUBB A, @Ri 寄存器Ri內為RAM地址,將累加器A的數據減去該地址單元內的數據,再減去進位標志內的值后,結果保存到累加器A
41 SUBB A, #data 將累加器A的數據減去立即數,再減去進位標志內的值后,結果保存到累加器A
42 加1指令 INC A 累加器A的值自加1
43 INC Rn 寄存器Rn的值自加1
44 INC direct direct地址單元內值自加1
45 INC @Ri 寄存器Ri內為RAM地址,該地址單元內的值自加1
46 INC DPTR 數據指針寄存器DPTR內的值自加1
47 減1指令 DEC A 累加器A的值自減1
48 DEC Rn 寄存器Rn的值自減1
49 DEC direct direct地址單元內的值自減1
50 DEC @Ri 寄存器Ri內為RAM地址,該地址單元內的值自減1
51 乘法 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清0
74 邏輯右移 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位清0
95 調用指令 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中的進位標志位CY
101 MOV bit, C 將PSW中的進位標志位CY的值送bit位地址中
102 位清0 CLR C 將進位標志位CY清0
103 位清0 CLR bit 將bit位地址內清0
104 位置1 SETB C 將進位標志位CY置1
105 SETB bit 將bit位地址內置1
106 位與 ANL C, bit 將Cy和bit位地址中的值進行與操作后,結果送Cy
107 ANL C, /bit bit位地址中的值取反后再與Cy進行與操作,結構送Cy
108 位或 ORL C, bit 將Cy和bit位地址中的值進行或操作后,結果送Cy
109 ORL C, /bit bit位地址中的值取反后再與Cy進行或操作,結構送Cy
110 位取反 CPL C 將Cy取反
111 CPL bit 將bit位地址的值取反
說明:
1)Ri, Rn指當前工作寄存器,i,n = 0 – 7,當前工作寄存器由程序狀態字寄存器PSW的2個位RS1, RS0決定
總結
以上是生活随笔為你收集整理的8051系列单片机汇编语言指令速查表(汇编语言的111条指的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最近端午节快到了。国庆节一过,又是中秋,
- 下一篇: 宏? bios怎么设置 宏? BIOS设