




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第三章第三章 8051匯編語言指令系統匯編語言指令系統3.1 匯編語言概述匯編語言概述3.1.1 基本概念基本概念 指令:指令:CPU執行操作的命令執行操作的命令 指令系統:所有指令的集合指令系統:所有指令的集合 程序:根據指令系統編寫的指令序列程序:根據指令系統編寫的指令序列 語言:計算機所能識別的指令形式語言:計算機所能識別的指令形式 語言種類:機器語言、匯編語言、高級語言語言種類:機器語言、匯編語言、高級語言 語言分類舉例(以語言分類舉例(以10+20=30并存放為例)并存放為例)機器語言機器語言: 01110100 00001010 A 10 (74 0AH) 00100100 000
2、10100 A=A+20 (24 14H)計算機真正能識別的是這種二進制代碼,但不直觀計算機真正能識別的是這種二進制代碼,但不直觀匯編語言:匯編語言: MOV A,#0AH (74 0AH) ADD A,#14H (2414H)采用助記符可便于閱讀和編寫,效率高采用助記符可便于閱讀和編寫,效率高高級語言:高級語言:A=10 A=A+20 最直觀,軟件開發快,代碼效率不如匯編最直觀,軟件開發快,代碼效率不如匯編3.1.2 匯編語言指令格式匯編語言指令格式標準標準5段式段式:標號標號: 操作碼操作碼 目的操作數目的操作數,源操作數源操作數 ;注釋注釋例如例如: LOOP: MOV A,R0 ;把把
3、R0內容放入內容放入A 標號和注釋不是必須的標號和注釋不是必須的,操作數的數量不確定操作數的數量不確定,可能可能是一個、兩個或沒有:是一個、兩個或沒有: 例如:例如:MOV A,#20H (兩個操作數)(兩個操作數) INC R0 (一個操作數)(一個操作數) RET (沒有操作數)(沒有操作數)3.1.3 指令的代碼長度指令的代碼長度1. 單字節指令(單字節指令(49條)條)(1)指令碼中隱含對寄存器的操作)指令碼中隱含對寄存器的操作 如如 INC DPTR A3H CLR A E4H 這類指令主要涉及一些專用寄存器這類指令主要涉及一些專用寄存器 (2)操作碼中的)操作碼中的rrr三位指定一
4、個工作寄存器三位指定一個工作寄存器 如如 MOV A,Rn 11101rrr 其中其中rrr =07,分別對應,分別對應R0R7 所以有:所以有:MOV A,R0 11101000 E8H MOV A,R4 11101100 ECH MOV A, R7 11101111 EFH2. 雙字節指令(雙字節指令(45條)條)一個字節操作碼,另一個字節為操作數或地址一個字節操作碼,另一個字節為操作數或地址*指令中給出操作數地址的情況(隱含尋址)指令中給出操作數地址的情況(隱含尋址) 指令形式:指令形式: 這時這時R0或或DPTR中的內容本身不是操作數,而是操中的內容本身不是操作數,而是操作數所在存儲單
5、元的地址。作數所在存儲單元的地址。3. 三字節指令(三字節指令(17條)條)3.2 尋址方式尋址方式定義:尋址方式是指尋找操作數(尤其是源操作數)的定義:尋址方式是指尋找操作數(尤其是源操作數)的途徑或手段。途徑或手段。89C51單片機共單片機共7種尋址方式。種尋址方式。1. 寄存器尋址(最常用)寄存器尋址(最常用) 寄存器指寄存器指R0R7和和A、B、DPTR 例如例如 MOV A,R0 MOV R1,A ADD A,R5 MOV P1,A 2.直接尋址直接尋址直接給出操作數所在的地址,包括片內直接給出操作數所在的地址,包括片內128字節字節RAM地址和專用寄存器地址和專用寄存器SFR的名稱
6、。的名稱。例如:例如: MOV A,45H 45H本身不是數據,而是指本身不是數據,而是指45H單元內的數據內容。單元內的數據內容。又如:又如:MOV A,P1(90H) 是讀取是讀取P1口口再如:再如:MOV A,SBUF(99H) 是讀取串行接收緩沖器是讀取串行接收緩沖器這種尋址方式的指令至少占這種尋址方式的指令至少占2字節,想一想,為什字節,想一想,為什么?么?3. 立即尋址立即尋址源操作數是一字節(或源操作數是一字節(或2字節)直接數據字節)直接數據 如如 MOV A,# 20H 注意立即數只能是源操作數,不能是目的操作注意立即數只能是源操作數,不能是目的操作數。數。特殊指令:特殊指令
7、: MOV DPTR,#DATA16具體如:具體如:MOV DPTR,#2000H請判斷這條指令應為幾字節?請判斷這條指令應為幾字節?4.寄存器間接尋址(難點)寄存器間接尋址(難點) 概念:寄存器中的內容不是數據,而是數據所在概念:寄存器中的內容不是數據,而是數據所在的地址。的地址。 可做間址的寄存器有可做間址的寄存器有R0、R1、DPTR 有效空間:有效空間:R0、R1操作片內操作片內128字節字節RAM DPTR操作片外最大操作片外最大64KRAM 注意:不能用此方式操作注意:不能用此方式操作SFR。 指令舉例:指令舉例: MOVA,R0 MOVXA,DPTR 間址概念的圖解間址概念的圖解
8、寄存器間接尋址方式是指令中給出的寄存器的內容為寄存器間接尋址方式是指令中給出的寄存器的內容為操作數的地址,而不是操作數本身,即寄存器為地操作數的地址,而不是操作數本身,即寄存器為地址指針。在指令碼助記符中,間接尋址用符號址指針。在指令碼助記符中,間接尋址用符號“”來表示。來表示。 5. 變址尋址(主要用于查表)變址尋址(主要用于查表)含義:基地址含義:基地址+變址寄存器間址變址寄存器間址 如:如:MOVC A, A+DPTR指令說明:本條指令中,指令說明:本條指令中,MOVC是專門用來讀取程序存儲器空是專門用來讀取程序存儲器空間間ROM單元內容的,源操作數的地址由累加器單元內容的,源操作數的地
9、址由累加器A中的偏移量中的偏移量與指針與指針DPTR 16位地址之和來指定。操作順序是先求地址之位地址之和來指定。操作順序是先求地址之和,再讀取數據,送入累加器。和,再讀取數據,送入累加器。6. 相對尋址(重要)相對尋址(重要)要點:要點: (1)出現在相對轉移指令中)出現在相對轉移指令中 (2)當前)當前PC值值=執行完轉移指令后的值執行完轉移指令后的值 (3)跳轉的偏移量是一字節補碼)跳轉的偏移量是一字節補碼rel 若若rel=80H,向地址減小方向轉移向地址減小方向轉移 (4)目的地址)目的地址=源地址源地址+2/3+rel (rel有正負有正負) 注意:所加的字節數可能是注意:所加的字
10、節數可能是2或或3,由本條指令自,由本條指令自身長度決定。身長度決定。 相對尋址指令舉例:相對尋址指令舉例: JC rel (JC NEXT) 如果當前進位位為如果當前進位位為1,則轉到,則轉到NEXT標號處;標號處; 否則,繼續執行下一條指令。否則,繼續執行下一條指令。 DJNZ R7, LOOP R7內容減內容減1,然后判斷是否為,然后判斷是否為0。若不為。若不為0則轉到標則轉到標號號LOOP處,否則繼續執行下一條。處,否則繼續執行下一條。 這里,這里,NEXT和和LOOP都是自己定義的標號地址,在匯都是自己定義的標號地址,在匯編時將自動翻譯成相對地址編時將自動翻譯成相對地址 rel值。值
11、。7.位尋址位尋址 尋址區域:可位尋址的專用寄存器尋址區域:可位尋址的專用寄存器 片內片內RAM 20H2FH各字節中的位各字節中的位 指令舉例:指令舉例:CLR 02H JNB 03H,rel 注意操作數按對等原則區分字節和位地址:注意操作數按對等原則區分字節和位地址: MOV A,40H 40H是字節地址是字節地址 MOV C,40H 此時此時40H是位地址是位地址 想一想,為什么?想一想,為什么?尋址空間和符號規定請同學自閱并熟悉之。尋址空間和符號規定請同學自閱并熟悉之。3.3 89C51單片機指令系統單片機指令系統要求:了解匯編指令按功能分類要求:了解匯編指令按功能分類 能讀懂簡單程序
12、片段能讀懂簡單程序片段3.3.1 5種指令類別:種指令類別: 數據傳送類:源、目的數據傳送類:源、目的, 源不變,目的修改源不變,目的修改 算術運算類:四則運算,影響標志位算術運算類:四則運算,影響標志位 邏輯運算及移位類:按位操作,影響標志位邏輯運算及移位類:按位操作,影響標志位 控制轉移類:跳轉、調用和返回,地址變化控制轉移類:跳轉、調用和返回,地址變化 位操作類:置位、復位、測試,判斷轉移位操作類:置位、復位、測試,判斷轉移3.3.2 數據傳送類數據傳送類 共共8種助記符:種助記符: MOV CPU與內部與內部RAM和和SFR之間傳送之間傳送 MOVX CPU與外部與外部RAM和和I/O
13、之間傳送之間傳送 MOVC CPU對程序存儲器對程序存儲器ROM讀操作讀操作 PUSH 壓棧壓棧 POP 彈棧彈棧 XCH 字節交換字節交換 XCHD 半字節交換半字節交換 SWAP 累加器自身半字節交換累加器自身半字節交換MOV 指令詳解(使用最頻繁)指令詳解(使用最頻繁)在在 MOV x,y 格式中格式中 y為源操作數,可以是:為源操作數,可以是: A、立即數、工作寄存器、立即數、工作寄存器、直接地址、間接地址。直接地址、間接地址。 x為目的操作數,可以是:為目的操作數,可以是:A、工作寄存器、直接地、工作寄存器、直接地址、間接地址。址、間接地址。 注意注意(1)立即數不能是目的操作數)立
14、即數不能是目的操作數 (2)不存在)不存在 MOV R1,R2 MOV R1,R0 MOV A,R2指令舉例指令舉例MOV A,#05H MOV A,R7MOV A,R0 MOV A,40HMOV R3,A MOV R4,#33HMOV R5,33H MOV 22H,A MOV 23H,R6MOV 40H,41H MOV 42H,R1MOV 43H,#3AH 關于對專用寄存器的操作關于對專用寄存器的操作對對SFR實際采用的是直接尋址方式,寫法可有變化,例如實際采用的是直接尋址方式,寫法可有變化,例如 堆棧指針堆棧指針SP字節地址為字節地址為81H,對它操作可寫成:,對它操作可寫成: MOV S
15、P,#60H (編譯系統自動識別(編譯系統自動識別SP) 或者或者 MOV 81H,#60H 這兩者是等價的,但以前一種為方便,條件是編譯系統這兩者是等價的,但以前一種為方便,條件是編譯系統能識別能識別SP之類的保留字。之類的保留字。 再如再如 MOV A,PSW MOV A,D0H 后一種方法要求記憶所有后一種方法要求記憶所有SFR地址,且閱讀不方便。地址,且閱讀不方便。 特殊的特殊的16位傳送操作(常用)位傳送操作(常用)數據地址指針寄存器數據地址指針寄存器DPTR結構:結構:它可以按它可以按16位操作,也可以按高低字節單獨操作。位操作,也可以按高低字節單獨操作。例如:例如: MOV DP
16、TR,#2000H或者:或者: MOV DPH,#20H MOV DPL,#00H數據傳送類指令應用舉例數據傳送類指令應用舉例例例1:為:為R7賦值立即數賦值立即數2AH MOV R7,#2AH例例2:將:將46H單元內容讀到累加器單元內容讀到累加器A MOV A,46H例例3:將:將R2中的字節內容送到片外中的字節內容送到片外1008H單元單元 MOV A,R2 MOV DPTR,#1008H MOVX DPTR,A3.3.3 算術運算類(四則運算,雙目)算術運算類(四則運算,雙目)共共5種助記符種助記符:ADD :不帶進位加法:不帶進位加法ADDC:帶進位加法:帶進位加法SUBB:帶借位減
17、法:帶借位減法MUL AB:無符號乘法:無符號乘法 AB= B A(高在前)(高在前)DIV AB:無符號除法:無符號除法A/B= A(商)(商)B(余數)(余數)要點:要點:A是必然的目的操作數是必然的目的操作數指令應用舉例指令應用舉例例例4:單字節加法,:單字節加法,R4+R3 R6R5(高在前)(高在前) MOV A,R3 取一個加數取一個加數 ADD A,R4 加上另一個加數加上另一個加數 MOV R5,A 存和低字節存和低字節 CLR A A清零清零 ADDC A,#00H 考慮進位位考慮進位位 MOV R6,A 存高字節(存高字節(0或或1) 注意:執行注意:執行ADD操作時影響進
18、位位操作時影響進位位CY 例例5:雙字節加法:雙字節加法 R2R1+R4R3=R7R6R5MOV A,R1 取加數低字節取加數低字節ADD A,R3 與被加數低字節相加與被加數低字節相加MOV R5,A 存低字節和存低字節和MOV A,R2 取加數高字節取加數高字節ADDC A,R4 與被加數高字節相加與被加數高字節相加MOV R6,A 存高字節和存高字節和CLR A A清零清零ADDC A,#00H 加進位加進位MOV R7,A 存進位值存進位值例例6:雙字節減法:雙字節減法 R2R1-R4R3=R6R5CLR C 預先清除借位標志預先清除借位標志MOV A,R1 取被減數低字節取被減數低字
19、節SUBB A,R3 減去減數低字節減去減數低字節MOV R5,A 存低字節差值存低字節差值MOV A,R2 取被減數高字節取被減數高字節SUBB A,R4 減去減數高字節和借位減去減數高字節和借位MOV R6,A 存高字節差值存高字節差值注意:可根據此時注意:可根據此時CY的狀態判斷是否夠減的狀態判斷是否夠減例例7:多字節乘法演算規則:多字節乘法演算規則雙字節乘以雙字節的結果要由雙字節乘以雙字節的結果要由4字節表示字節表示如如 R3R4R5R6=40414243H3.3.4 邏輯操作類邏輯操作類要點要點: (1)邏輯運算與算術運算的最大不同在于邏輯運算與算術運算的最大不同在于,雖然是字節雖然
20、是字節的形式的形式,但是按位運算但是按位運算.(2)一目運算的操作數必然是一目運算的操作數必然是A,雙目運算多數有雙目運算多數有A參加參加且為目的操作數且為目的操作數.(3)指令功能包括指令功能包括:與、或、異或、清除、求反、移位與、或、異或、清除、求反、移位共共7種指令助記符:種指令助記符:ANL:ANL A,x(x: Rn,地址,地址,Ri,立即數),立即數)ORL: ORL A,xXRL: XRL A,x以上操作稱為雙目運算以上操作稱為雙目運算.下列為單目的下列為單目的,只對只對A.CLR: CLR A A累加器清零累加器清零CPL: CPL A A按位求反按位求反RL/RLC: RL
21、A/RLC A算術算術/邏輯左移邏輯左移RR/RRC: RR A/RRC A算術邏輯右移算術邏輯右移應用舉例應用舉例 例例8: 把把P1口高口高4位清零位清零,低低2位置位置1,其余不變其余不變 MOV A, #0FH ANL P1, A MOV A,#03H ORL P1, A說明說明: 這時的邏輯操作稱為讀這時的邏輯操作稱為讀-修改修改-寫寫 0FH可稱為屏蔽字可稱為屏蔽字,03H可稱為組合字可稱為組合字.例例9: 邏輯操作位圖邏輯操作位圖(A) ANL A, 38H (A=9FH)(B) CPL A (A=7CH)3.3.5 控制轉移類控制轉移類(使用較少但很重要使用較少但很重要)共共1
22、6種助記符種助記符: 無條件小類無條件小類 JMP A+DPTR 間接轉移(散轉)間接轉移(散轉) SJMP rel 一字節補碼短跳轉一字節補碼短跳轉 AJMP 11位地址標號位地址標號 2K空間空間 LJMP 16位地址標號位地址標號 64K空間空間 條件轉移小類條件轉移小類 JZ rel / JNZ rel 為為0/非非0轉轉 JC rel / JNC rel 有有/無進位轉無進位轉 JB bit,rel / JNB bit,rel 置位置位/復位轉復位轉 CJNE x,y,rel 比較不等轉比較不等轉 DJNZ x, rel 減減1不為不為0轉轉 調用和返回小類調用和返回小類 ACALL
23、 / LCALL 短調用短調用/長調用長調用 RET / RETI 子程序返回子程序返回/中斷返回中斷返回 3.3.6 位操作類位操作類共共15種助記符種助記符: 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 JB bit,rel / JNB bit,rel JBC bit,rel 綜合編程舉例綜合編程舉例例例10把片外把片外RAM 2000H200FH內容傳送到片內內容傳送到片內RAM 40H4FH中中. 解解: MOV DPTR,#2000H 源首地址源首地址 MOV R7,#10H 計數初始值計數初始值 MOV R0,#40H 目的首地址目的首地址LOOP: MOVX A, DPTR 取一個源數據取一個源數據 MOV R0,A 存一個數據存一個數據 INC DPL 修改源地址修改源地址 INC R0 修改目的地址修改目的地址 DJNZ R7,LOOP 判結束判結束例例11. 把把P1口的口的P1.6、P1.7清零清零,且置且置P1.0、P1.1為為1,其余不變其余不變.解:解: MOV
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年美容學校行業市場趨勢分析-洞察闡釋
- 暑假假日小隊活動計劃
- 鉆具絲扣油噴涂技術研究
- 四川省特崗教師招聘筆試真題2024
- 2024年河流鎮鄉村公益性崗位開發真題
- 重慶經貿職業學院《建筑工程概論》2023-2024學年第二學期期末試卷
- 廣東科學技術職業學院《裝飾材料與裝修構造》2023-2024學年第二學期期末試卷
- 河北北方學院《運動解剖學》2023-2024學年第二學期期末試卷
- 山西警官職業學院《AutoCAD及生物工廠設計》2023-2024學年第二學期期末試卷
- 云南藝術學院文華學院《影視后期包裝》2023-2024學年第二學期期末試卷
- 2025年北京市第一次普通高中學業水平合格性考試歷史試題(含答案)
- 甘肅開放大學2024年《信息技術與信息管理》形考作業1-4答案
- 浙江省杭州市2024年中考英語真題(含答案)
- 2022年《數據結構(本)》形考任務實踐活動3
- 生豬屠宰獸醫衛生檢驗人員理論考試題庫及答案
- 醫學檢驗項目管理制度
- 《陸上風電場工程設計概算編制規定及費用標準》(NB-T 31011-2019)
- 年產4億片阿奇霉素片的精烘包及車間設計
- 藥學專業知識培訓ppt課件
- 財務管理制度學習記錄
- 電機常用公差配合
評論
0/150
提交評論