8051單片機匯編指令速查表_第1頁
8051單片機匯編指令速查表_第2頁
8051單片機匯編指令速查表_第3頁
8051單片機匯編指令速查表_第4頁
8051單片機匯編指令速查表_第5頁
已閱讀5頁,還剩8頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、.8051 系列單片機匯編語言指令速查表編號指令名稱指令助記符指令說明數據傳送類指令 (29 條 )1MOV A, #data將立即數 #data 送累加器 A2MOV direct, #data將立即數 #data 送片內 RAM direct 地址單元內3Mov Rn , #data將立即數 #data 送寄存器 Rn寄存器 Ri 內為 RAM 地址 ,將立即數 #data送該地址4Mov Ri, #data單元內5Mov direct2, direct1將 direct1 地址單元的數據送direct2地址單元內6Mov direct, rn將 Rn 的數據送 direct地址單元內7M

2、ov Rn, direct將 direct 地址單元內的數據送 Rn 寄存器一般傳送寄存器 Ri 內為 RAM 地址 ,將該地址單元內的數據送8Mov direct, Ridirect 地址單元內寄存器 Ri 內為 RAM 地址 ,將 direct 地址單元內的數9Mov Ri, direct據送該地址單元內10Mov A, Rn將寄存器 Rn 內的數據送累加器A11Mov Rn, A將累加器 A 內的數據送寄存器Rn12Mov A, direct將 direct 地址單元內的數據送累加器A13Mov direct, A將累加器 A 內的數據送 direct 地址單元內14Mov A, Ri寄

3、存器 Ri 內為 RAM 地址 ,將該地址單元內的數據送.專業專注. . .累加器 A寄存器 Ri 內為 RAM 地址 ,將累加器 A 的數據送該地15Mov Ri , A址單元內16目的地址傳送Mov DPTR, #data16將 16 位立即數送數據指針 DPTR 寄存器17SWAP A累加器 A 高低 4 位數據交換18XCH A, Rn將累加器 A 數據和寄存器 Rn 內的數據交換19XCH A, direct將累加器 A 數據和 direct 地址單元內的數據交換字節交換寄存器 Ri 內為 RAM 地址 ,將該地址單元內的數據與20XCH A, Ri累加器 A 的數據交換寄存器 Ri

4、 內為 RAM 地址 ,將該地址單元內的數據低21XCHD A, Ri4 位與的低 4 位交換將累加器 A 的數據送數據指針 DPTR 寄存器所指外部22MOVX DPTR, ARAM 地址單元內將 DPTR 寄存器所指外部 RAM 地址單元內的數據送23MOVX A , DPTR累加器 A與外部 RAM 傳送寄存器 Ri 內為片外 RAM 地址 ,將該地址單元內的數24MOVX A, Ri據送累加器 A寄存器 Ri 內為片外 RAM 地址 ,將該地址單元內的數25MOVX Ri, A據送累加器 AA+DPTR 構成 ROM 地址 ,將該地址內的數據送累加26MOVC A, A+DPTR與 R

5、OM 傳送器 A 內27MOVC A, A+PCA+PC 構成 ROM 地址 ,將該地址內的數據送累加器.專業專注.A 內堆棧指針SP 自加 1 后,將 direct 地址單元的數據壓28PUSH direct棧操作進堆棧 ,29POP direct堆棧的數據送direct 地址單元中 ,后堆棧指針減1,算術運算指令 (24 條 )將寄存器 Rn 與累加器 A 的數據相加后,結果保存到累30ADD A, Rn加器 A將 direct 地址單元內的數據與累加器A 的數據相加后31ADD A, direct結果保存到累加器A加法指令寄存器 Ri 內位地址 ,將該地址單元內的數據與累加32ADD A

6、, Ri器 A 的數據相加后結果保存到累加器A將立即數與累加器 A 的數據相加后結果保存到累加33ADD A, #data器 A將寄存器 Rn 與累加器 A 的數據相加 ,再加上進位標34ADDC A, Rn志內的值后 ,結果保存到累加器A將 direct 地址單元內的數據與累加器A 的數據相加 ,35ADDC A, direct再加上進位標志內的值后 ,結果保存到累加器 A帶進位加法寄存器 Ri 內為 RAM 地址 ,將該地址單元內的數據與36ADDC A, Ri累加器 A 的數據相加 ,再加上進位標志內的值后 ,結果保存到累加器A將立即數與累加器 A 的數據相加 ,再加上進位標志37ADD

7、C A, #data內的值后結果保存到累加器A.專業專注.38SUBB A, Rn39SUBB A, direct帶借位減法40SUBB A, Ri將與累加器A 的數據減去寄存器Rn 的數據 ,再減去進位標志內的值,結果保存到累加器A將與累加器A 的數據減去direct 地址單元內的數據,再減去進位標志內的值,結果保存到累加器A寄存器 Ri 內為 RAM 地址 ,將累加器 A 的數據減去該地址單元內的數據,再減去進位標志內的值后,結果保存到累加器A將累加器A 的數據減去立即數,再減去進位標志內41SUBB A, #data的值后 ,結果保存到累加器A42INC A累加器 A 的值自加 143I

8、NC Rn寄存器 Rn 的值自加 144加 1指令INC directdirect 地址單元內值自加145INC Ri寄存器 Ri 內為 RAM 地址,該地址單元內的值自加146INC DPTR數據指針寄存器 DPTR 內的值自加 147DEC A累加器 A 的值自減 148DEC Rn寄存器 Rn 的值自減 1減 1指令49DEC directdirect 地址單元內的值自減150DEC Ri寄存器 Ri 內為 RAM 地址,該地址單元內的值自減1累加器 A 與寄存器 B 內的值相乘 ,乘積的高 8 位保51乘法MUL AB存在 B 寄存器 ,低 8 位保存在累加器 A 中累加器 A 的值除

9、以寄存器 B 的值 ,商保存在累加器 A52除法DIV AB中,余數保存在 B 寄存器.專業專注. . .53二 - 十進制調整DA A對累加器 A 的結果進行十進制調整邏輯運算指令(29 條)將累加器 A 的值和寄存器Rn 的值進行與操作 ,結果54ANL A, Rn保存到累加器 A 中將累加器 A 的值和 direct 地址單元內的值進行與操55ANL A, direct作,結果保存到累加器 A 中寄存器 Ri 內為 RAM 地址 ,將累加器 A 的值和該地址56ANL A, Ri單元內的值進行與操作,結果保存到累加器A 中邏輯與將累加器 A 的值和立即數進行與操作 ,結果保存到57ANL

10、 A, #data累加器 A中將累加器 A 的值和 direct 地址單元內的值進行與操58ANL direct, A作,結果保存到 direct 地址單元內將立即數和 direct 地址單元內的值進行與操作,結59ANL direct, #data果保存到 direct 地址單元內將累加器 A 的值和寄存器Rn 的值進行或操作 ,結果60ORL A, Rn保存到累加器 A 中將累加器 A 的值和 direct 地址單元內的值進行或操61ORL A, direct作,結果保存到累加器 A 中邏輯或寄存器 Ri 內為 RAM 地址 ,將累加器 A 的值和該地址62ORL A, Ri單元內的值進行

11、或操作,結果保存到累加器A 中將累加器 A 的值和立即數進行或操作 ,結果保存到63ORL A, #data累加器 A中.專業專注. . .將累加器 A 的值和 direct 地址單元內的值進行或操64ORL direct, A作,結果保存到 direct 地址單元內將立即數和 direct 地址單元內的值進行或操作,結65ORL direct, #data果保存到 direct地址單元內將累加器 A 的值和寄存器 Rn 的值進行異或操作,結66XRL A, Rn果保存到累加器 A 中將累加器 A 的值和 direct 地址單元內的值進行異或操67XRL A, direct作,結果保存到累加器

12、A 中寄存器 Ri 內為 RAM 地址 ,將累加器A 的值和該地址68XRL A, Ri單元內的值進行異或操作,結果保存到累加器A 中邏輯異或將累加器A 的值和立即數進行異或操作,結果保存69XRL A, #data到累加器A 中將累加器 A 的值和 direct 地址單元內的值進行異或操70XRL direct, A作,結果保存到direct 地址單元內將立即數和direct 地址單元內的值進行異或操作,71XRL direct, #data結果保存到 direct 地址單元內72按位取反CPL A累加器 A 的值按位取反73累加器清零CLRA累加器 A清 074邏輯右移RRA累加器 A 的

13、值循環右移1 位75邏輯左移RLA累加器 A 的值循環左移1 位76帶進位右移RRCA累加器 A 的值帶進位循環右移1 位77帶進位左移RLCA累加器 A 的值帶進位循環左移1 位.專業專注.控制轉移指令 ( 17 條)rel 為地址偏移量 , PC 加 2 后的地址加上rel 作為目78SJMP rel標地址 ,程序跳到目標地址繼續運行addr11 為 11 位地址 , PC 加 2 后的地址高5 位與指79AJMP addr11(a10- a0)令中的低 11 位地址構成目標地址 ,程序跳到目標地無條件轉移址繼續運行將 addr16 的 16 位地址送程序計數器PC,使機器執80LJMP

14、addr16行下一條指令時無條件轉移到addr16 處執行程序目標地址的基地址放在DPTR 中,目標地址對基地址81JMP A+DPTR的偏移量放在累加器A 中,它們相加構成目標地址82JZ relIf(累加器 A=0 )則 PC 加 2 再加上 rel 作為目標地址If (累加器 A!=0 )則 PC 加 2再加上 rel 作為目標地83JNZ rel址If (累加器 A!= direct地址單元的值 )則 PC 加 2 再84CJNE A, direct, rel加上 rel 作為目標地址條件轉移If (累加器 A!= 立即數 )則 PC 加 2 再加上 rel 作為85CJNE A, #

15、data, rel目標地址If(寄存器 Rn 的值 !=立即數 )則 PC 加 2 再加上 rel86CJNE Rn, #data, rel作為目標地址寄存器 Ri 內為 RAM 地址 ,If (該地址單元的值 != 立87CJNE Ri, #data, rel即數 )則 PC 加 2 再加上 rel 作為目標地址88循環轉移DJNZ Rn, rel寄存器 Rn 的值減 1 后, If (寄存器 Rn 的值 !=0 )則.專業專注. . .PC 加 2 再加上 rel 作為目標地址Direct 地址單元的值減 1后, If (該值 !=0 )則 PC 加89DJNZ direct, rel3

16、再加上 rel作為目標地址90JCrelIf ( CY=1 )則 PC 加 2 再加上 rel 作為目標地址91JNCrelIf ( CY=0 )則 PC 加 2 再加上 rel 作為目標地址92JB bit, relIf ( bit位=1)則 PC加 3再加上 rel 作為目標地址布爾條件轉移93JNB bit, relIf ( bit位=0)則 PC加 3再加上 rel 作為目標地址If( bit 位 =1 )則 PC 加 3再加上 rel 作為目標地址 ,94JBC bit, rel且 bit位清 0addr11為 11 位地址 , PC 加 2 后的地址 PUSH 進堆95ACALL

17、addr11棧,再將 PC 的地址高 5位與指令中的低11 位地址調用指令構成目標地址 ,程序跳到目標地址繼續運行PC 加 3 后的地址 PUSH 進堆棧 ,再將 16位地址送96LCALLaddr16PC 作為目標地址 ,程序跳到目標地址繼續運行子程序返回指令 ,把堆棧中的地址恢復到PC 中使程97RET序回到調用處返回指令中斷程序返回指令 ,把堆棧中的地址恢復到PC 中使98RETI程序回到調用處99空操作NOP空操作位操作指令 (17 條 )100MOV C, bit將 bit位地址中的值送PSW 中的進位標志位 CY布爾傳送101MOV bit, C將 PSW 中的進位標志位CY 的值

18、送 bit 位地址中.專業專注. . .102位清 0CLRC將進位標志位CY清 0103位清 0CLRbit將 bit 位地址內清 0104SETB C將進位標志位CY置 1位置 1105SETB bit將 bit 位地址內置 1106ANL C, bit將 Cy 和 bit 位地址中的值進行與操作后,結果送 Cy位與bit 位地址中的值取反后再與Cy 進行與操作 ,結構送107ANL C, /bitCy108ORL C, bit將 Cy 和 bit 位地址中的值進行或操作后,結果送 Cy位或bit 位地址中的值取反后再與Cy 進行或操作 ,結構送109ORL C, /bitCy110CPL

19、C將 Cy 取反位取反111CPLbit將 bit 位地址的值取反說明 :1 )Ri, Rn 指當前工作寄存器,i , n = 0 7 ,當前工作寄存器由程序狀態字寄存器PSW 的 2 個位 RS1,RS0 決定.專業專注.MCS 51 使用匯編語言指令,它共有 44 個操作碼助記符, 33 種功能 ,其操作數有 data 、direct 、Rn、 Ri 等 。這里介紹指令助記符及其相關符號的記憶方法。一、助記符號的記憶方法1、表格列舉法把 44 個指令助記符按功能分為五類,每類列表記憶。此處從略 ,請讀者自己總結。2、英文還原法單片機的操作碼助記符是該指令功能的英文縮寫,將縮寫還原成英語原文

20、,再對照漢語有助于理解其助記符含義,從而加強記憶。例如 :.專業專注.增量INC Incremect減量DNC Decrement短轉移SJMP Short jump長轉移LJMP Long jump比較轉移CJNE Compare jump not equality絕對轉移AJMP Absolute jump空操作NOP No operation交換XCH Exchange加法ADD Addition乘法MUL Multiplication除法DIV Division左環移RL Rotate left進位左環移RLC Rotate left carry右環移RRRotate right進位右

21、環移RRC Rotate right carry3、功能模塊記憶法單片機的44 個指令助記符 ,按所屬指令功能可分為五大類,每類又可以按功能相似原則為 2 3 組。這樣 ,化整為零 ,各個擊破 ,實現快速記憶 。1)數據傳送組 。2 )加減運算組MOV內部數據傳送ADD加法MOVC程序存儲器傳送ADDC帶進位加法MOVX外部數據傳送SUBB 帶進位減法3)邏輯運算組 。4 )子程序調用組。ANL 邏輯與LCALL 長調用ORL 邏輯或ALALL 絕對調用XRL 邏輯異或RET 子程序返回二、指令的記憶方法1、指令操作數的有關符號MCS 51 的尋址方式共有七種:立即數尋址 、直接尋址 、寄存器

22、尋址 、寄存器間址 、變址尋址 、相對尋址 、位尋址 。 我們必須掌握其表示的方法。1)立即數與直接地址。 data 表示八位立即數, data16 表示是十六位立即數, data 或.專業專注.direct 表示直接地址。2) Rn(n=0-7) 、 A 、B、CY、 DPTR 寄存器尋址變量。3) R0 、 R1 、 DPTR 、 SP 表示寄存器間址變量。4) DPTRA 、 PC A 表示變址尋址的變量。5) PC rel (相對量 )表示相對尋址變量。記住指令的助記符,掌握不同尋址方式的指令操作數的表示方法,為我們記憶匯編指令打下了基礎。MCS 51 指令雖多 ,但按功能可分為五類,

23、其中數據傳送類28 條,算術運算類24 條,邏輯操作類25 條,控制轉移類17 條,布爾位操作類17條。 在每類指令里,根據其功能 ,抓住其源 、目的操作數的不同組合,再輔之以下方法,是完全能記住的 。 我們約定 ,可能的目的操作數按( data/direct/A/Rn/Ri)順序表示 。對于 MOV 指令,其目的操作數按A 、Rn 、 direct 、 Ri 的順序書寫 ,則可以記住MOV 的 15 條指令。例如以累加器A 為目的操作數 ,可寫出如下4 條指令 。MOV A , data/direct/A/Rn/Ri以此類推 ,寫出其它指令 。MOV Rn , data/direct/AMOV direct, data/direct/A/Rn/RiMOV Ri , data/direct/A2、指令圖示記憶法圖示記憶法是把操作功能相同或相似、但其操作數不同的指令,用圖形和箭頭將目的、源操作數的關系表示出來的一種記憶方法。例如 :由助記符MOV

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論