版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第 四 講-2 MCS-51單片機指令系統(tǒng)及其尋址方式(教材3.13.2節(jié))1微機原理及應(yīng)用Principle and Applications of Micro-Computers教學目的: 了解MCS-51單片機的指令集和尋址方程要求: 掌握MCS-51單片機指令系統(tǒng)的尋址方式, 指令集難點: 間接尋址, 基址+變址寄存器尋址方式 MCS-51單片機指令的一般格式單片機指令的一般格式 MCS-51單片機的尋址方式單片機的尋址方式 寄存器尋址寄存器尋址 直接地址尋址直接地址尋址 立即數(shù)尋址立即數(shù)尋址 寄存器間接尋址寄存器間接尋址 基址寄存器基址寄存器+變址寄存器間接尋址變址寄存器間接尋址 M
2、CS-51單片機的指令集單片機的指令集內(nèi)容2022-6-83為什么要學匯編語言?具有以下優(yōu)點(所以, 在某些場合仍非常必要)時間短占用代碼空間少位操作指令豐富具有以下缺點難掌握適合小型系統(tǒng)基本學習方法掌握指令集, 基本流程控制, 單片機的資源2022-6-84指令系統(tǒng)概述指令計算機能夠識別和執(zhí)行的命令。指令系統(tǒng)指令的集合或全體,因機器而異。指令的三種表示形式二進制形式直接為CPU執(zhí)行16進制形式閱讀和書寫匯編形式編寫程序。二進制形式16進制形式匯編形式01110100 0000101000100100 0000010010000000 11111110740AH2404H80FEH MOV A
3、,#0AH ADD A,#04H SJMP $2022-6-85MCS-51單片機指令的一般格式 一般格式為 符號地址符號地址: 指令助記符指令助記符 操作數(shù)操作數(shù)1,操作數(shù)操作數(shù)2 ; 注釋句注釋句 如如: ABC: MOV A, B ; 將寄存器將寄存器B的內(nèi)容傳送到累加器的內(nèi)容傳送到累加器A注意: (1) “符號地址符號地址”的命名規(guī)則的命名規(guī)則(代表指令所在地址,代表指令所在地址,1-8個字母個字母/數(shù)字,數(shù)字,“:”結(jié)尾結(jié)尾); (2) “指令助記符指令助記符”和和“操作數(shù)操作數(shù)1”(以及以及“操作數(shù)操作數(shù)2”)見見MCS-51單片機的單片機的指令集指令集; (3) “注釋句注釋句”
4、必須以必須以“;”開始開始, 其后的整行都屬于注釋內(nèi)容其后的整行都屬于注釋內(nèi)容; (4) 其它某些特殊規(guī)則由匯編語言的編譯器所確定其它某些特殊規(guī)則由匯編語言的編譯器所確定 MCS-51單片機指令的一般格式單片機指令的一般格式 MCS-51單片機的尋址方式單片機的尋址方式 寄存器尋址寄存器尋址 直接地址尋址直接地址尋址 立即數(shù)尋址立即數(shù)尋址 寄存器間接尋址寄存器間接尋址 基址寄存器基址寄存器+變址寄存器間接尋址變址寄存器間接尋址 MCS-51單片機的指令集單片機的指令集內(nèi)容2022-6-87為什么大多數(shù)匯編語言都需要掌握“尋址方式”?絕大多數(shù)計算機系統(tǒng)的存儲器系統(tǒng)都是相似的(見第3講的內(nèi)容),
5、可以分為以下幾部分CPU內(nèi)部的寄存器CPU內(nèi)部的數(shù)據(jù)存儲器(RAM)片外的(CPU外部)數(shù)據(jù)存儲器程序存儲器等不同的存儲器空間需要不同的訪問方式如, 第3講曾提到SFR和高128字節(jié)RAM的訪問方法不同2022-6-88MCS-51單片機指令的尋址方式MCS-51單片機指令一共有5種尋址方式, 用于訪問不同的存儲器空間(見p.34表3-1)寄存器尋址直接地址尋址立即數(shù)尋址寄存器間接尋址(變址尋址)基址寄存器+變址寄存器間接尋址 說明說明: 某些參考書把某些參考書把“位位”訪問方法單獨列出訪問方法單獨列出, 稱為稱為“位尋位尋址址”.2022-6-89寄存器尋址方式指令選定的寄存器內(nèi)容就是實際操
6、作數(shù)可訪問的存儲器空間 片內(nèi)的4組8個通用寄存器:R0R7 由RS1、RS2兩位的值選定工作寄存器區(qū)示例(1) INC R1 ; (R1)=(R1)+1, 或R1的內(nèi)容自加1(2) MOV R0, A ; (R0)=(A), 或 A的內(nèi)容傳送到R0(3) MOV A, R0 ; (A)=(R0), 或 R0的內(nèi)容傳送到A特點 一般是單操作數(shù)指令(如(1), 否則另一個操作數(shù)必定為累加器A(如(2)和(3) 所有指令都是單字節(jié)的(指令碼占用1個字節(jié)的存儲空間)00H00H20H20H2FH2FH7FH7FH1FH1FH30H30H80H80HFFHFFH5252的的RAMRAM區(qū)區(qū)OR SFRO
7、R SFR普通普通RAMRAM區(qū)區(qū)位尋址區(qū)位尋址區(qū)工作寄存器區(qū)工作寄存器區(qū)2022-6-810直接地址尋址方式直接給出操作數(shù)所在存儲單元的地址可訪問的存儲器空間片內(nèi)低128字節(jié)的RAM片內(nèi)所有的SFR (SFR的名稱是對應(yīng)直接地址的別名)片內(nèi)所有可位尋址的位存儲空間(“位尋址”)示例(1) MOV A, B ; (A)=(B), 或B的內(nèi)容傳送到A(2) MOV A, 0F0H ; (A)=(0F0H), 或0F0H的內(nèi)容傳送到A(3) MOV 68H, 69H ; (68H)=(69H)(4) SETB 68H ; 設(shè)置位地址單元68H的內(nèi)容為“1”特點一般都是雙字節(jié)(累加器A作為操作數(shù),
8、或位操作)或三字節(jié)的指令00H00H20H20H2FH2FH7FH7FH1FH1FH30H30H80H80HFFHFFH5252的的RAMRAM區(qū)區(qū)OR OR SFRSFR普通普通RAMRAM區(qū)區(qū)位尋址區(qū)位尋址區(qū)工作寄存器區(qū)工作寄存器區(qū)2022-6-811立即數(shù)尋址方式指令直接給出一個操作數(shù),加“#”可訪問的存儲器空間 片內(nèi)的4組8個通用寄存器 片內(nèi)所有數(shù)據(jù)存儲器(包括低、高128字節(jié)) 片內(nèi)所有的SFR 示例(1) MOV R6, #10H ; (R6)=10H(2) MOV 68H, #34H ; (68H)=34H(3) MOV B, #68H ; (B)=68H(4) MOV DPTR
9、, #6688H ; (DPTR)=6688H, 即(DPH)=66H和(DPL)=88H特點稱為“賦值語句”其中一個操作數(shù)必定是一個立即數(shù)00H00H20H20H2FH2FH7FH7FH1FH1FH30H30H80H80HFFHFFH5252的的RAMRAM區(qū)區(qū)OR OR SFRSFR普通普通RAMRAM區(qū)區(qū)位尋址區(qū)位尋址區(qū)工作寄存器區(qū)工作寄存器區(qū)2022-6-812寄存器間接尋址方式指令所選中的寄存器內(nèi)容是實際操作數(shù)地址(而不是操作數(shù))可訪問的存儲器空間片內(nèi)所有數(shù)據(jù)存儲器(包括低128字節(jié)和高128字節(jié)RAM)所有擴展的(包括片內(nèi)或片外)數(shù)據(jù)存儲器和I/O端口示例(1) MOV A, R0
10、 ; (A)=(R0), R0所指向的單元(片內(nèi)的)中的內(nèi)容傳送到A(2) MOVX A, R0 ; (A)=(R0), R0所指向的單元(擴展的)中的內(nèi)容傳送到A(3) MOV R1, A ; (R1)=(A)(4) MOVX DPTR, A ; (DPTR)=(A)特點稱R0, R1和DPTR為指針, 準確地說R0和R1是8位數(shù)據(jù)指針, DPTR為16位的數(shù)據(jù)指針, 其中一個操作數(shù)在指針所指向的單元中除了R0, R1和DPTR外, 其它任何單元都不能作為指針00H00H20H20H2FH2FH7FH7FH1FH1FH30H30H80H80HFFHFFH5252的的RAMRAM區(qū)區(qū)OR SF
11、ROR SFR普通普通RAMRAM區(qū)區(qū)位尋址區(qū)位尋址區(qū)工作寄存器區(qū)工作寄存器區(qū)2022-6-813寄存器間接尋址的圖例R0R700H07H30H順序執(zhí)行 MOV 30H, #58H MOV R0, #30H MOV A, R0 問問1,接例數(shù)據(jù)接例數(shù)據(jù) MOV 30H, #58H MOV R0, #58H 的結(jié)果一樣嗎的結(jié)果一樣嗎?問2,接例數(shù)據(jù),執(zhí)行結(jié)果? MOV R0, #32H MOV R0, 32H30H58H58H0AHE0HA32H2022-6-814基址+變址寄存器間接尋址方式可訪問的存儲器空間程序存儲器 (包括所有64K字節(jié)程序存儲空間)示例(僅有以下3個指令)(1) MOVC
12、 A, A+DPTR ; (A)=( (A)+(DPTR) ) (2) MOVC A, A+PC ; (A)=( (A)+(PC) )(3) JMP A+DPTR ; (PC)=(A)+(DPTR)特點稱A為變址寄存器稱DPTR和PC為基址寄存器示例(1)和(2)稱為“查表指令”, 上面最后一個指令稱為“程序散轉(zhuǎn)指令”查表指令必須以累加器A為目的操作數(shù), 基址寄存器和變址寄存器作為指針, 兩個單元中內(nèi)容之和(加法是最低位對齊)為源操作數(shù)地址2022-6-815變址尋址的圖例MOVC A,A+DPTR設(shè)DPTR=2000H,A=E0HE0A程序存儲區(qū)2141H 9320E0H 472140H D
13、PH 20DPL 00ALU20E0H47指令代碼2022-6-816總結(jié):尋址方式與相應(yīng)的尋址空間方式方式利用的變量利用的變量尋址空間尋址空間寄存器R0R7片內(nèi)通用寄存器直接尋址direct片內(nèi)RAM低128字節(jié)特殊功能寄存器SFR寄存器間址R0,R1R0,R1,DPTR片內(nèi)RAM片外RAM與I/O口立即數(shù)#data-變址尋址A+PC A+DPTR程序存儲器 MCS-51單片機指令的一般格式單片機指令的一般格式 MCS-51單片機的尋址方式單片機的尋址方式 寄存器尋址寄存器尋址 直接地址尋址直接地址尋址 立即數(shù)尋址立即數(shù)尋址 寄存器間接尋址寄存器間接尋址 基址寄存器基址寄存器+變址寄存器間接
14、尋址變址寄存器間接尋址 MCS-51單片機的指令集單片機的指令集內(nèi)容2022-6-818MCS-51 指令中所用符號說明Rn 通用寄存器R0R7中的一個#data 8位立即數(shù)#data16 16位立即數(shù)direct 8位直接地址Ri R0或R1,可以間接尋址DPTR 可按DPTR中地址對外部存儲器尋址bit 8位位地址addr11 11位目標地址addr16 16位目標地址rel 8位地址偏移量$ 當前指令的地址2022-6-819MCS-51單片機的指令集共111條指令按指令所占字節(jié)數(shù)分類:單字節(jié)(49條);雙字節(jié)(46條);3字節(jié)(16條)按指令執(zhí)行時間分類:單周期(64條);雙周期(45
15、條);4周期(2條)按指令的功能分類:數(shù)據(jù)傳送類(29條);算術(shù)運算類(24條);邏輯運算及移位類(24);控制轉(zhuǎn)移類(17條);位操作類(17條)2022-6-820掌握指令集的基本方法 指令集中每條指令都按以下3步S1: 指令的助記符指令的助記符, 操作數(shù)操作數(shù)(包括隱含的操作數(shù)包括隱含的操作數(shù))S2: 指令的執(zhí)行過程指令的執(zhí)行過程S3: 指令的執(zhí)行結(jié)果指令的執(zhí)行結(jié)果, 結(jié)果的存儲單元結(jié)果的存儲單元 例1, 指令A(yù)DDC A, 30HS1: 助記符為助記符為“ADDC”, 操作數(shù)為操作數(shù)為A(被加數(shù)被加數(shù)), 30H(加數(shù)加數(shù)), 進位位進位位C(加數(shù)加數(shù), C為隱含的操作數(shù)為隱含的操作數(shù)
16、)S2: 執(zhí)行過程執(zhí)行過程: (C)+(A)+(30H)(A), (C)S3: 結(jié)果結(jié)果: 和保存在和保存在A中中, 進位保存在進位保存在C中中2022-6-821“DA A”指令的示例S1: 操作數(shù)為操作數(shù)為A, C和和AC(其中其中C和和AC是隱含的是隱含的)S2: 執(zhí)行過程執(zhí)行過程: 順序執(zhí)行以下兩步順序執(zhí)行以下兩步 S2-1: 如果如果A的低半字節(jié)大于的低半字節(jié)大于9或或(AC)=1, 那么那么(A)=(A)+06H S2-2: 如果如果A的高半字節(jié)大于的高半字節(jié)大于9或或(C)=1, 那么那么(A)=(A)+06H 說明說明: 兩次加法運算兩次加法運算, 如果有進位仍保存在如果有進位
17、仍保存在C中中.S3: 結(jié)果保存在累加器結(jié)果保存在累加器A和進位位和進位位C中中2022-6-822總結(jié)指令的一般格式五種尋址方式及它們的訪問空間掌握指令的基本方法總結(jié)指令的一般格式五種尋址方式及它們的訪問空間掌握指令的基本方法問題和討論24根據(jù)尋址方式的可訪問空間以及它們特點, 討論下面的指令分別屬于哪種尋址方式?(1) MOV R5, #20H (2) CLR A (3) CLR C指令“MOV R5, A”是一條傳送指令, 執(zhí)行該指令后, 源操作數(shù)的內(nèi)容發(fā)生變化了嗎?問題和討論25試寫出完成以下操作的指令序列(1)將R0的內(nèi)容傳送到R1;(2)內(nèi)部RAM單元60H的內(nèi)容傳送到寄存器R2;
18、(3)外部RAM單元1000H的內(nèi)容傳送到內(nèi)部RAM單元60H;(4)外部RAM單元1000H的內(nèi)容傳送到寄存器R2;(5)外部RAM單元1000H的內(nèi)容傳送到外部RAM單元2000H下課下課 數(shù)據(jù)傳送類指令:數(shù)據(jù)傳送類指令: (29條條/11) 算術(shù)運算類指令:算術(shù)運算類指令: (24條條/8) 邏輯運算及移位類指令:邏輯運算及移位類指令: (24條條/2) 控制轉(zhuǎn)移類指令:控制轉(zhuǎn)移類指令: (17條)條) 位操作(布爾操作)類指令:(位操作(布爾操作)類指令:(17條)條) 偽指令偽指令補充內(nèi)容 指令系統(tǒng)2022-6-827數(shù)據(jù)傳送指令(5種/29條)內(nèi)部存儲器間傳送:(MOV 16條)外
19、部數(shù)據(jù)存儲器與累加器間傳送: (MOVX 4條)程序存儲器向累加器傳送: (MOVC 2條)數(shù)據(jù)交換: (XCH,XCHD,SWAP 5條)堆棧操作:(PUSH,POP 2條)2022-6-828內(nèi)部存儲器間數(shù)據(jù)傳送路徑(16條)Direct 直接尋址直接尋址Acc 累加器累加器Rn 寄存器寄存器#data 立即數(shù)立即數(shù)Ri 間接尋址間接尋址MOV DPTR ,#data162022-6-829外部存儲器間數(shù)據(jù)傳送路徑(4條)Acc 累加器累加器Rn 寄存器寄存器DPTR在51中,與外部RAM打交道的可以是A累加器。所有需要送入外部RAM的數(shù)據(jù)必需要通過A送去,而所有要讀入的外部RAM中的數(shù)據(jù)
20、也必需通過A讀入。 內(nèi)部RAM間可以直接數(shù)據(jù)傳遞如,要將外部(設(shè)為0100H單元的數(shù)據(jù))送入(設(shè)為0200H單元)MOV DPTR,#0100HMOVX A,DPTRMOV DPTR,#0200HMOVX DPTR,A2022-6-830應(yīng)用舉例1 8段數(shù)碼管顯示 MOV P1, #0FEH ; 11111110B可以使P1.0上的發(fā)光二極管點亮MOV P1, #0F0H ; 11110000B可以使P1口上的上面4個發(fā)光二極管點亮P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 5v2022-6-831應(yīng)用舉例1 8段數(shù)碼管顯示MOV P1, #00H ; 顯示
21、 8.MOV P1, #0F8H; 顯示 7MOV P1, #88H ; 顯示 AP1.0 aP1.1 bP1.2 cP1.3 dP1.4 eP1.5 fP1.6 gP1.7 dp5v2022-6-832算術(shù)運算類指令不帶進位加:(ADD 4條)帶進位加:(ADDC 4條)增量指令:(INC 5條)十進制調(diào)整指令:(DA 1條)減法指令: (SUBB 4條)減量指令:(DEC 4條)乘法指令: (MUL 1條)除法指令:(DIV 1條)2022-6-833應(yīng)用舉例2 BCD加法 ALU只能進行二進制加法(即低4位向高4位逢16進1),為實現(xiàn)BCD加法,就必須對ALU的加法結(jié)果進行BCD調(diào)整,使
22、其變成BCD數(shù)(BCD加法是逢10進1的)。 例:寫出85+59=144BCD加法程序,并對加法過程和BCD調(diào)整進行分析。 解: ORG1000HMOVA,#85H ; A #85HADDA,#59H ; A (A)+#59HDAA; A #44H,Cy=1SJMP$END2022-6-834上例加法操作及BCD調(diào)整過程:Cy中的進位1是百位BCD,累加器A中的高低4位分別是十位BCD和個位BCD(即44H)。2022-6-835邏輯運算指令(24條)邏輯與指令:(ANL 6條)邏輯或指令:(ORL 6條)邏輯異或指令:(XRL 6條)累加器清除與求反指令: (CLR、CPL 2條)移位指令:
23、 ( RL、RLC、RR、RRC 4條)2022-6-836控制轉(zhuǎn)移指令(17條)無條件轉(zhuǎn)移指令:(LJMP、AJMP、SJMP、JMP 4條)條件轉(zhuǎn)移指令:(JZ、JNZ、CJNE、DJNZ 8條)子程序調(diào)用及返回指令:(LCALL、ACALL、RET、RETI 4條)空操作指令: (NOP 1條)2022-6-837AJMP 指令本指令是2KB范圍內(nèi)的絕對轉(zhuǎn)移指令:AJMP addr11 ; PC(PC)+2(形成頁面地址PC15-11); PC100 addr11 (形成頁面地址)說明:本指令是雙字節(jié)指令。指令碼為:a10 a9 a8 0 0 0 0 1 a7 a6 a0 操作碼其中a1
24、0a0為低11位目標地址。編程時addr11常用符號地址,匯編時翻譯成機器碼。2022-6-838AJMP 指令第0區(qū)第1區(qū)第32區(qū)0000H07FFH0800H0FFFHF800HFFFFH外部ROM的64KB可以分為32區(qū),每區(qū)2KB。PC15PC11為頁面地址PC10PC0為頁內(nèi)地址。0000H1 區(qū)0 區(qū)31 區(qū)AJMPPC15 PC14 PC13 PC12 PC11 PC10 PC9 PC8 PC7 PC00800H0FFFH1000H17FFHF800HFFFFHA10 A9 A8 00001 A7 A0在 2 區(qū)形成11 位目標地址保持高 5 位地址確定某區(qū) 圖 3-11 指令 AJMP 執(zhí)行過程0 0 0 1 02022-6-840布爾處理類指令(17條)布爾傳送指令: (MOV 2條)布爾狀態(tài)控制指令: (CRL、SETB、CPL 6條)布爾邏輯運算指令: (ANL、ORL 4條)布爾條件轉(zhuǎn)移指令: (JC、JNC、JB、JNB、JBC 5條)解釋程序語句,并填寫運行結(jié)果(1)411. MOVA,#08H;2. MOV30H,A;3. MOV31H,A;4. MOV 32H,A;5. MOV 33H,#30H;6. MOV R6,#03H;7. MOV R0,#30H;8. MOV A,R
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 我校嚴格財務(wù)制度
- 科技企業(yè)財務(wù)制度
- 員工手冊含財務(wù)制度
- 公司辦公會議制度
- 養(yǎng)老院老人康復(fù)理療師職業(yè)道德制度
- 加高凳子施工方案(3篇)
- 電鋼實訓(xùn)室安全管理制度(3篇)
- 校園陶藝策劃活動方案(3篇)
- 教育信息化建設(shè)與管理制度
- 國際關(guān)系學院教學督導(dǎo)組本科生導(dǎo)師制總結(jié)會反饋表
- (完整版)醫(yī)療器械網(wǎng)絡(luò)交易服務(wù)第三方平臺質(zhì)量管理文件
- 中國高血糖危象診斷與治療指南
- 人教版三年級語文下冊《選讀課文8 除三害》優(yōu)質(zhì)教學設(shè)計教案-9
- 人民醫(yī)院檢驗科程序文件
- 在BBO橋牌在線練習橋牌的步驟
- DB21T 3444-2021老玉分級規(guī)范
- MT/T 544-1996礦用液壓斜軸式軸向柱塞馬達試驗方法
- GB/T 16927.2-2013高電壓試驗技術(shù)第2部分:測量系統(tǒng)
- 2022年液化氣站項目可行性研究報告
- 環(huán)境與人類健康環(huán)境與人類健康
- 高中英語選擇性必修三 課文及翻譯
評論
0/150
提交評論