第3章指令系統(tǒng)與程序設(shè)計ppt課件_第1頁
第3章指令系統(tǒng)與程序設(shè)計ppt課件_第2頁
第3章指令系統(tǒng)與程序設(shè)計ppt課件_第3頁
第3章指令系統(tǒng)與程序設(shè)計ppt課件_第4頁
第3章指令系統(tǒng)與程序設(shè)計ppt課件_第5頁
已閱讀5頁,還剩168頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、編程編程:處理問題思想處理問題思想程序框圖程序框圖語句語句指令指令匯編言語及程序設(shè)計匯編言語及程序設(shè)計第三章、第四章第三章、第四章指令系統(tǒng):指令系統(tǒng):CPUCPU所能執(zhí)行的全部指令集合所能執(zhí)行的全部指令集合一條指令是計算機中具有特定功能的操作命令一條指令是計算機中具有特定功能的操作命令 程序與程序設(shè)計程序與程序設(shè)計按預(yù)定要求編排的指令序列稱為程序。編排的按預(yù)定要求編排的指令序列稱為程序。編排的過程稱為程序設(shè)計過程稱為程序設(shè)計機器言語機器言語二進(jìn)制代碼,是機器獨一能直接識別、執(zhí)行的言語。二進(jìn)制代碼,是機器獨一能直接識別、執(zhí)行的言語。匯編言語:匯編言語:指令助記符。用助記符,操作數(shù),標(biāo)指令助記符。

2、用助記符,操作數(shù),標(biāo)號編寫的程序稱為匯編言語源程序。號編寫的程序稱為匯編言語源程序。一、匯編言語一、匯編言語 匯編言語匯編言語 機器言語機器言語 機器執(zhí)行機器執(zhí)行 程序設(shè)計言語程序設(shè)計言語匯編言語匯編言語高級言語高級言語(PLM; Keil Cx51)(PLM; Keil Cx51)翻譯翻譯匯編:完成由匯編言語到機器代碼的過程匯編:完成由匯編言語到機器代碼的過程匯編的方法有兩種:自動匯編、手工匯編匯編的方法有兩種:自動匯編、手工匯編由機器代碼到匯編言語的過程叫反匯編由機器代碼到匯編言語的過程叫反匯編匯編言語匯編言語源程序源程序機器言語機器言語 匯編程序匯編程序 反匯編程序反匯編程序自動匯編:將

3、輸入到計算機中的源程序,自動匯編:將輸入到計算機中的源程序,由機器中一個軟件將其翻譯成機器代碼的過由機器中一個軟件將其翻譯成機器代碼的過程。這個翻譯軟件稱為匯編程序。程。這個翻譯軟件稱為匯編程序。二、匯編言語的格式二、匯編言語的格式 標(biāo)號:標(biāo)號: 操作碼操作碼 操作數(shù)操作數(shù) ;注釋;注釋 如如: MAIN: MOV SP,#60H : MAIN: MOV SP,#60H ;設(shè)堆棧指針;設(shè)堆棧指針1 1、標(biāo)號、標(biāo)號標(biāo)號是該指令的符號地址,可根據(jù)需求設(shè)定標(biāo)號是該指令的符號地址,可根據(jù)需求設(shè)定必需以字母開場,以必需以字母開場,以“ “ : :終了,長度不超越終了,長度不超越8 8個字個字符符系統(tǒng)中的

4、保管字符不能作標(biāo)號系統(tǒng)中的保管字符不能作標(biāo)號, 如如: SFR名、名、ADD等等標(biāo)號可被其他語句的操作數(shù)可直接援用標(biāo)號可被其他語句的操作數(shù)可直接援用源程序中源程序中, ,一個標(biāo)號只能定義一個語句一個標(biāo)號只能定義一個語句, ,不能相重不能相重名字名字堅持一義性堅持一義性一個匯編語句分為四個區(qū)段:一個匯編語句分為四個區(qū)段:2 2、操作碼、操作碼由指令系統(tǒng)的助記符、偽指令助記符組成。由指令系統(tǒng)的助記符、偽指令助記符組成。操作碼指出該指令將進(jìn)展何種操作操作碼指出該指令將進(jìn)展何種操作3 3、操作數(shù):參與操作的數(shù)的本身或操作數(shù)所在的地址、操作數(shù):參與操作的數(shù)的本身或操作數(shù)所在的地址可為二進(jìn)制數(shù)可為二進(jìn)制數(shù)

5、 (B)、 十進(jìn)制數(shù)十進(jìn)制數(shù) (D)、十六進(jìn)制數(shù)、十六進(jìn)制數(shù) (H)HEX:數(shù)字大于數(shù)字大于9,那么數(shù)字應(yīng)以,那么數(shù)字應(yīng)以“0開頭,如開頭,如0FAH可以是操作數(shù)地址、立刻數(shù)、標(biāo)號、表達(dá)式如可以是操作數(shù)地址、立刻數(shù)、標(biāo)號、表達(dá)式如 M+3目的操作數(shù)和源操作數(shù)之間用目的操作數(shù)和源操作數(shù)之間用“,分開分開可以是存放器名如可以是存放器名如A、B、R0R7、DPTR4 4、注釋、注釋以以“ “ ; ;開頭,是程序員對指令操作的解開頭,是程序員對指令操作的解釋,以協(xié)助閱讀、了解程序的意義釋,以協(xié)助閱讀、了解程序的意義可有可無,建議進(jìn)展程序注釋可有可無,建議進(jìn)展程序注釋匯編時對這部分不予處置,不譯成任何機

6、器代碼匯編時對這部分不予處置,不譯成任何機器代碼可用英語或某種簡約的方式解釋指令可用英語或某種簡約的方式解釋指令三、偽指令三、偽指令偽指令僅在匯編程序中起控制造用偽指令僅在匯編程序中起控制造用, ,不產(chǎn)生可執(zhí)行目不產(chǎn)生可執(zhí)行目的代碼。的代碼。1、起點指令、起點指令 ORG格式:格式: ORG H功能:功能: 指定程序或數(shù)據(jù)塊的起始地址指定程序或數(shù)據(jù)塊的起始地址例:例:用法:用法:普通出如今每段源程序或數(shù)據(jù)塊的開場普通出如今每段源程序或數(shù)據(jù)塊的開場一個源程序可多次出現(xiàn)一個源程序可多次出現(xiàn)ORGORG指令指令ORG 0030HSTART:MOV A,#74H ;源程序的起始地址;源程序的起始地址為

7、為0030H0030H2、終了命令、終了命令 END格式:格式:ENDEND功能:匯編程序終了標(biāo)志功能:匯編程序終了標(biāo)志附在一個源程序的結(jié)尾附在一個源程序的結(jié)尾 一個源程序只能出現(xiàn)一次一個源程序只能出現(xiàn)一次END指令指令3、定義字節(jié)命令、定義字節(jié)命令 DB格式:格式:功能:功能:標(biāo)號:標(biāo)號:DB DB 字節(jié)常數(shù)或字符字節(jié)常數(shù)或字符定義字節(jié)的內(nèi)容,匯編程序把定義字節(jié)的內(nèi)容,匯編程序把DB定義的定義的字節(jié)依次存入標(biāo)號開場的存儲單元字節(jié)依次存入標(biāo)號開場的存儲單元用法:用法:例:例:ORG 8000HTAB: DB 45H,73,5,ATAB1:DB 101B偽指令偽指令ORG 定義了定義了TAB的起

8、始地址為的起始地址為8000H,偽指令偽指令DB定義了定義了8000H8003單元的內(nèi)容依次為:單元的內(nèi)容依次為:8000H= 45H8001H= 49H ; 738002H= 35H ; 58003H= 41H ; A8004H= 05H ; 101BTABTAB1(1) 由由 ORG定義定義(2) 跟在其他源程序之后跟在其他源程序之后4、定義字命令、定義字命令DW格式:格式:功能:功能:標(biāo)號:標(biāo)號:DW 字或字表字或字表定義假設(shè)干個字雙字節(jié)定義假設(shè)干個字雙字節(jié)例:例:ORG 8000HTAB:DW 7234H,8AH,108000H= 72H8001H= 34H8002H= 00H8003

9、H= 8AH8005H= 0AH匯編后:匯編后:8004H= 00H5、定義空間命令、定義空間命令 DS格式:格式:功能:功能:標(biāo)號:標(biāo)號:DS 數(shù)據(jù)或字符及表達(dá)式數(shù)據(jù)或字符及表達(dá)式例:例:8008H=30H8009H=8AH從指定單元地址開場,由數(shù)據(jù)或字符及從指定單元地址開場,由數(shù)據(jù)或字符及表達(dá)式的值來定義應(yīng)保管的單元數(shù)表達(dá)式的值來定義應(yīng)保管的單元數(shù), ,備用備用ORG 8000HDS 08HDB 30H,8AH即:即:8000H8007H單元保管備用單元保管備用定義空間定義空間6、等值命令、等值命令 EQU格式:格式:字符稱號字符稱號 EQU 數(shù)據(jù)或匯編符號數(shù)據(jù)或匯編符號功能:功能:將一個

10、數(shù)據(jù)或匯編符號賦予標(biāo)號段規(guī)定將一個數(shù)據(jù)或匯編符號賦予標(biāo)號段規(guī)定的字符的字符例:例:JIASHU EQU 30HBEIJIA EQU 31HHE EQU 32H 7、數(shù)據(jù)地址賦值命令、數(shù)據(jù)地址賦值命令 DATA格式:格式: 字符稱號字符稱號 DATA 數(shù)據(jù)或表達(dá)式數(shù)據(jù)或表達(dá)式功能:功能:此命令把數(shù)據(jù)此命令把數(shù)據(jù)/ /代碼地址賦予標(biāo)號段所規(guī)定的代碼地址賦予標(biāo)號段所規(guī)定的字符稱號。定義的字符稱號可先運用后定義字符稱號。定義的字符稱號可先運用后定義INDEXJ DATA 8389HORG 8000HINDEXJ DATA 8096H LJMP INDEXJENDORG 8000H LJMP 8096H

11、END;INDEXJ這個字符稱號的地址為這個字符稱號的地址為8389H例:例:等等價價于于 EQU與與 DATA的區(qū)別的區(qū)別(1) DATA與與EQU類似,但類似,但DATA定義的字符稱號定義的字符稱號, 可先運用后定義可先運用后定義 ,EQU那么不能那么不能(2) EQU指令可把匯編符號賦給字符稱號,指令可把匯編符號賦給字符稱號, DATA那么不能那么不能 (3) DATA可把表達(dá)式的值賦給字符稱號,可把表達(dá)式的值賦給字符稱號, EQU那么不能那么不能 DATA常在程序中定義數(shù)據(jù)地址常在程序中定義數(shù)據(jù)地址EQU常在程序中定義字符數(shù)據(jù)常在程序中定義字符數(shù)據(jù) 8、位地址符號命令、位地址符號命令

12、BIT格式:格式:字符稱號字符稱號 BIT 位地址位地址功能:功能:把位地址賦予一標(biāo)號把位地址賦予一標(biāo)號 A1 BIT P1.0A2 BIT P2.0例:例:;P1.0, P2.0位地址賦予字符位地址賦予字符A1、A2,在編,在編程時可以直接把程時可以直接把 A1、A2 當(dāng)成位地址運用當(dāng)成位地址運用三、三、MCS-51指令系統(tǒng)的特點指令系統(tǒng)的特點1 1、執(zhí)行速度快,存儲效率高、執(zhí)行速度快,存儲效率高M(jìn)CS-51指令系統(tǒng)共有指令系統(tǒng)共有111條指令條指令按字節(jié)分按字節(jié)分單字節(jié)指令單字節(jié)指令4949條條雙字節(jié)指令雙字節(jié)指令4545條條三字節(jié)指令三字節(jié)指令1717條條按周期分按周期分單周期指令單周期

13、指令6464條條雙周期指令雙周期指令4545條條周圍期指令周圍期指令2 2條條設(shè)時鐘頻率為設(shè)時鐘頻率為12MHz,那么指令執(zhí)行的時間分別,那么指令執(zhí)行的時間分別為:為:1 1s 58s 582 2s 40s 404 4s 2s 2影響程序存影響程序存儲器儲器影響系統(tǒng)實影響系統(tǒng)實時性時性2 2、指令易掌握,功能強、指令易掌握,功能強具有豐富的位操作指令、查表指令、散轉(zhuǎn)指令具有豐富的位操作指令、查表指令、散轉(zhuǎn)指令乘除指令等。構(gòu)成了完好的指令系統(tǒng)乘除指令等。構(gòu)成了完好的指令系統(tǒng)3 3、適宜于控制、智能儀表、適宜于控制、智能儀表布爾處置機,可進(jìn)展布爾處置機,可進(jìn)展“位位操作。操作。四、尋址方式四、尋址

14、方式7 7種種 立刻尋址立刻尋址 直接尋址直接尋址 存放器尋址存放器尋址 存放器間接尋址存放器間接尋址 基址存放器加變址存放器間接尋址基址存放器加變址存放器間接尋址 相對尋址相對尋址 位尋址位尋址五、五、MCS-51指令分類指令分類5類類 數(shù)據(jù)傳送數(shù)據(jù)傳送29條條 算術(shù)運算算術(shù)運算24條條 邏輯運算邏輯運算24條條 控制轉(zhuǎn)移控制轉(zhuǎn)移17條條 布爾處置布爾處置17條條共共111111條指令條指令引見描畫指令符號的意義引見描畫指令符號的意義當(dāng)前選中的存放器區(qū)的當(dāng)前選中的存放器區(qū)的8個任務(wù)存放器個任務(wù)存放器R0R7RnRidirect - 8位內(nèi)部位內(nèi)部RAM單元地址單元地址 00H7FH 公用特殊

15、功能存放器公用特殊功能存放器SFR的地址的地址80HFFH 立刻數(shù)立刻數(shù)8位位#data#data16 立刻數(shù)立刻數(shù)16位位當(dāng)前選中的存放器區(qū)中可做間址存放器的當(dāng)前選中的存放器區(qū)中可做間址存放器的2個個 任務(wù)存放器任務(wù)存放器R0、R1i=0、1n=07addr16 16位目的地址,用于位目的地址,用于LCALL、LJMP指令指令 地址范圍地址范圍64KB ROM空間空間addr11 11位目的地址,用于位目的地址,用于ACALL、AJMP指令指令 地址范圍地址范圍2KB ROM空間空間relDPTR 數(shù)據(jù)地址指針,可做數(shù)據(jù)地址指針,可做16位間址存放器位間址存放器 bit 內(nèi)部內(nèi)部RAM或或S

16、FR中的直接位尋址中的直接位尋址 8位帶符號的偏移量,位帶符號的偏移量,用于用于SJMP和一切的條件轉(zhuǎn)移指令中和一切的條件轉(zhuǎn)移指令中范圍范圍-128127C 位累加器位累加器 ( PSW.7 ),進(jìn)位,進(jìn)位/借位標(biāo)志借位標(biāo)志 間址或基址存放器前綴間址或基址存放器前綴,如如 Ri , A+DPTR/ 位操作的前綴,表示對該位操作數(shù)取反位操作的前綴,表示對該位操作數(shù)取反(X) X中的內(nèi)容中的內(nèi)容(X) 由由X尋址的單元中的內(nèi)容尋址的單元中的內(nèi)容箭頭左邊的內(nèi)容被箭頭右邊的內(nèi)容所替代箭頭左邊的內(nèi)容被箭頭右邊的內(nèi)容所替代DPTR , A+PC用何種方式尋覓指令的操作數(shù)用何種方式尋覓指令的操作數(shù)或指令的執(zhí)

17、行地址或指令的執(zhí)行地址1 1、立刻尋址、立刻尋址尋址空間:尋址空間:指令方式:指令方式:操作碼操作碼立刻數(shù)立刻數(shù)v程序存儲器程序存儲器指令操作數(shù)以指令方式存放在程序存儲器中指令操作數(shù)以指令方式存放在程序存儲器中. .即:操作碼后面的一個字節(jié)是實踐操作數(shù)即:操作碼后面的一個字節(jié)是實踐操作數(shù)立刻尋址:立刻尋址:用何種方式尋覓用何種方式尋覓OP#data指令的尋址方式:指令的尋址方式:指令的尋址方式:指令的尋址方式:MOV A,# 30H;A #30H 例例1 1:操作碼操作碼立刻數(shù)立刻數(shù)74H30HROMROM MOV DPTR,# 8000H;DPTR #8000H 例例2 2:操作碼操作碼立刻

18、數(shù)的高立刻數(shù)的高8 8位位立刻數(shù)的低立刻數(shù)的低8 8位位DPHDPHDPLDPL80H80H00H00H90H80HROMROM00H 2 2、直接尋址、直接尋址尋址空間:尋址空間:指令的三種方式:指令的三種方式:操作碼操作碼操作數(shù)地址操作數(shù)地址v在指令中直接給出操作數(shù)的真實地址在指令中直接給出操作數(shù)的真實地址v操作碼后面的一個字節(jié)是實踐操作數(shù)地址操作碼后面的一個字節(jié)是實踐操作數(shù)地址操作碼操作碼操作數(shù)地址操作數(shù)地址立刻數(shù)立刻數(shù)操作碼操作碼源操作數(shù)地址源操作數(shù)地址目的操作數(shù)地址目的操作數(shù)地址內(nèi)內(nèi)RAM的低的低128字節(jié)字節(jié)特殊功能存放器特殊功能存放器SFR區(qū)區(qū)直接尋址直接尋址直接尋址是訪問直接尋

19、址是訪問 SFR SFR 的獨一方法的獨一方法00H7FH80HFFHCPU內(nèi)部內(nèi)部MOV A, 30H;A 30H 例例1 1:操作碼操作碼操作數(shù)地址操作數(shù)地址E5H30HROMROM A內(nèi)內(nèi)RAMRAM 30H ANL 30H,#30H;30H 30H #30H 例例2 2:操作碼操作碼直接地址直接地址立刻數(shù)立刻數(shù)53H30HROMROM 30H 3 3、存放器尋址、存放器尋址尋址空間:尋址空間:指令的三種方式:指令的三種方式:操作碼操作碼實踐操作數(shù)是當(dāng)前選定的存放器的內(nèi)容實踐操作數(shù)是當(dāng)前選定的存放器的內(nèi)容操作碼操作碼立刻數(shù)立刻數(shù)操作碼操作碼直接地址直接地址R0R7,由,由RS0、RS1確

20、定存放器區(qū)確定存放器區(qū)A、B、CY位,位,DPTR、ABMOV A,R3;A R3 例例1 1:ADD A,R3;A A+R3例例2 2:存放器尋址:存放器尋址:4 4、存放器間接尋址、存放器間接尋址尋址空間:尋址空間:指令的三種方式:指令的三種方式:操作碼操作碼操作碼操作碼立刻數(shù)立刻數(shù)操作碼操作碼直接地址直接地址內(nèi)部內(nèi)部 RAMR0, R1, SP外部外部 RAMR0, R1,DPTR存放器間接尋址:存放器間接尋址: 指令選定的存放器內(nèi)容就是實踐指令選定的存放器內(nèi)容就是實踐的操作數(shù)地址,操作數(shù)地址由存放器間接給出的操作數(shù)地址,操作數(shù)地址由存放器間接給出MOV R0,A例例1 1:操作碼操作碼

21、F6HROMROMR0R030H;累加器傳送指令;累加器傳送指令內(nèi)內(nèi)RAMRAM 30HA MOV R0, #30H5 5、基址存放器加變址存放器間接尋址變趾尋趾、基址存放器加變址存放器間接尋址變趾尋趾基址存放器加變址存放器間接尋址:基址存放器加變址存放器間接尋址: 以以DPTR或或PC作基址存放器,作基址存放器,A作變址存放器作變址存放器兩者相加構(gòu)成操作數(shù)地址。兩者相加構(gòu)成操作數(shù)地址。尋址空間:尋址空間:程序存儲器程序存儲器A+DPTR、A+PC指令方式:指令方式:操作碼操作碼MOV DPTR,#2400HMOV A,#0FHMOVC A,A+DPTR例:例:操作碼操作碼DPTRDPTR24

22、00HA 0FH93HROMROM 240FH240FH “讀讀PSEN“讀讀MOVC A,A+DPTR6 6、相對尋址、相對尋址程序存儲器程序存儲器, ,用于程序控制用于程序控制尋址空間:尋址空間:指令的三種方式:指令的三種方式:操作碼操作碼 rel rel操作碼操作碼 直接地址直接地址 rel rel操作碼操作碼 立刻數(shù)立刻數(shù) rel rel相對尋址相對尋址以當(dāng)前以當(dāng)前PC值為基準(zhǔn)地址,加上指令的值為基準(zhǔn)地址,加上指令的偏移量偏移量“rel,結(jié)果為目的地址。,結(jié)果為目的地址。rel為有符號補碼數(shù),范圍:為有符號補碼數(shù),范圍:-128+127普通為雙字節(jié)或三字節(jié)指令普通為雙字節(jié)或三字節(jié)指令J

23、NZ rel例:例:; 累加器累加器A不等零那么轉(zhuǎn)移不等零那么轉(zhuǎn)移 設(shè)設(shè):rel=23H2025H2019H2019H2000H ROM70H70H23H23H下一條指令下一條指令. . . . . . . .操作碼操作碼(PC)=2019Hrel=23H修正后轉(zhuǎn)移修正后轉(zhuǎn)移目的地址目的地址D(PC) = 2025HPC偏移量偏移量(PC) = 2 0 0 2 HRel = 2 3 H005202HD =7 7、位尋址、位尋址尋址空間:尋址空間:片內(nèi)片內(nèi)RAM的的20H2FH字節(jié)地址字節(jié)地址SFR中中12個能被個能被8整除的字節(jié)地址整除的字節(jié)地址對內(nèi)部對內(nèi)部RAM、SFR的位地址空間進(jìn)展訪問,

24、稱的位地址空間進(jìn)展訪問,稱為位尋址。位地址用于布爾指令。為位尋址。位地址用于布爾指令。共共221位位尋址方式與相應(yīng)的尋址空間尋址方式與相應(yīng)的尋址空間小結(jié):小結(jié):內(nèi)內(nèi)RAM的低的低128字節(jié)字節(jié)特殊功能存放器特殊功能存放器SFR直接尋址直接尋址direct位尋址位尋址片內(nèi)片內(nèi)RAM 20H2FH部分部分SFRbit 存放器存放器R0R7,A,BCY,DPTR片內(nèi)片內(nèi)存放器間址存放器間址R0, R1, SP R0, R1 ,DPTR片內(nèi)片內(nèi)RAM、片外片外RAM與與I/O口口立刻數(shù)立刻數(shù)#data 程序存儲器程序存儲器程序存儲器程序存儲器基址加變址基址加變址A+DPTR,A+PC程序存儲器程序存儲

25、器相對尋址相對尋址PC+rel利用的變量利用的變量 運用的空間運用的空間方方 式式MCS-51系統(tǒng)指令系統(tǒng)共系統(tǒng)指令系統(tǒng)共111條,按操作功能分類:條,按操作功能分類: 數(shù)據(jù)傳送類數(shù)據(jù)傳送類 算術(shù)運算類算術(shù)運算類 邏輯運算類邏輯運算類 控制轉(zhuǎn)移類控制轉(zhuǎn)移類 布爾處置類布爾處置類111條根本指令衍生出條根本指令衍生出255種指令種指令代碼代碼00H0FFH(0A5H沒有定義沒有定義)例如例如: MOV A,Rnn:07對應(yīng)指令代碼:對應(yīng)指令代碼:E8HEFH學(xué)習(xí)指令要點:學(xué)習(xí)指令要點:1、掌握指令操作;、掌握指令操作;2、掌握指令的尋址方式;、掌握指令的尋址方式;3、掌握指令對程序形狀字、掌握指

26、令對程序形狀字PSW的影響;的影響;4、合理運用指令。、合理運用指令。一、數(shù)據(jù)傳送類一、數(shù)據(jù)傳送類29條條用到的指令助記符有用到的指令助記符有5 5種:種:片內(nèi)傳送片內(nèi)傳送 MOVMOV片外傳送片外傳送 MOVXMOVX查表傳送查表傳送 MOVCMOVC累加器交換累加器交換 XCHXCH、XCHDXCHD、SWAPSWAP堆棧操作堆棧操作 PUSHPUSH、POPPOP普通的操作是把源操作數(shù)傳送到目的操作數(shù)。指令執(zhí)行后,普通的操作是把源操作數(shù)傳送到目的操作數(shù)。指令執(zhí)行后,源操作數(shù)不變,目的操作數(shù)修正為源操作數(shù)。源操作數(shù)不變,目的操作數(shù)修正為源操作數(shù)。數(shù)據(jù)傳送指令不影響數(shù)據(jù)傳送指令不影響PSW各

27、位奇偶位除外,只需堆棧各位奇偶位除外,只需堆棧操作可直接修正操作可直接修正PSW。1、MOV類傳送指令類傳送指令格式:格式: MOV 目的字節(jié)目的字節(jié) 源字節(jié)源字節(jié)功能:把源字節(jié)內(nèi)容送目的字節(jié),源字節(jié)內(nèi)容不變功能:把源字節(jié)內(nèi)容送目的字節(jié),源字節(jié)內(nèi)容不變以累加器以累加器A為目的字節(jié)的傳送:為目的字節(jié)的傳送: 立刻數(shù)送累加器立刻數(shù)送累加器MOV A,#data74H立刻數(shù)立刻數(shù) 機器碼機器碼;立刻數(shù);立刻數(shù)#data送累加器送累加器A 雙字節(jié)指令,機器碼的第一字節(jié)為雙字節(jié)指令,機器碼的第一字節(jié)為74H,第二字節(jié)為立刻數(shù)第二字節(jié)為立刻數(shù) 存放器內(nèi)容送累加器存放器內(nèi)容送累加器MOV A,Rn (n=0

28、7)任務(wù)存放器組的選擇由形狀字中的任務(wù)存放器組的選擇由形狀字中的RS0、RS1確定確定 內(nèi)部內(nèi)部RAM或或SFR內(nèi)容送累加器內(nèi)容送累加器MOV A,direct;Rn的內(nèi)容送累加器的內(nèi)容送累加器A;以;以direct為地址的單元的內(nèi)容送累加器為地址的單元的內(nèi)容送累加器A例:例: MOV R0,#30H MOV A,R0例:例:MOV 30H,#55H MOV A,30H 內(nèi)部內(nèi)部RAM內(nèi)容送累加器內(nèi)容送累加器MOV A,Ri (i=0、1)如如: MOV 30H,#88H MOV R0,#30H MOV A,R0 ;以;以Ri內(nèi)容為地址單元中內(nèi)容為地址單元中的數(shù)送累加器的數(shù)送累加器A以以Rn為

29、目的字節(jié)的傳送:為目的字節(jié)的傳送: 立刻數(shù)送存放器立刻數(shù)送存放器MOV Rn,#data (n=07);立刻數(shù);立刻數(shù)#data送累加器送累加器 Rn如:如: MOV R0,#67H; MOV R7,#0F0H 累加器內(nèi)容送存放器累加器內(nèi)容送存放器RnMOV Rn ,A (n=07);累加器;累加器A的內(nèi)容送的內(nèi)容送Rn 內(nèi)部內(nèi)部RAM或或SFR內(nèi)容送存放器內(nèi)容送存放器RnMOV Rn ,direct (n=07)如:如: MOV R1 ,30H ; MOV R2 ,60H ;以;以direct為地址的單元的內(nèi)容送存放器為地址的單元的內(nèi)容送存放器Rn如:如: MOV R0 ,A ; MOV R

30、5 ,A 立刻數(shù)送內(nèi)部立刻數(shù)送內(nèi)部RAM或或SFRMOV direct,#data;立刻數(shù);立刻數(shù)#data送以送以direct為地址的單元為地址的單元如:如:MOV 30H,#45;30H 45 累加器內(nèi)容送內(nèi)部累加器內(nèi)容送內(nèi)部RAM或或SFRMOV direct,A;累加器送以;累加器送以direct為地址的單元為地址的單元如:如:MOV 45H,A ;45H A直接地址為目的字節(jié)的傳送:直接地址為目的字節(jié)的傳送: 存放器內(nèi)容送內(nèi)部存放器內(nèi)容送內(nèi)部RAM或或SFRMOV direct,Rn (n=07);存放器;存放器Rn內(nèi)容送以內(nèi)容送以direct為地址的單元為地址的單元如:如: MOV

31、 56H,R6;56H R6 內(nèi)部內(nèi)部RAM或或SFR之間直接傳送之間直接傳送MOV direct1, direct2;內(nèi)部;內(nèi)部RAM或或SFR恣意兩個單元之間傳送數(shù)據(jù)恣意兩個單元之間傳送數(shù)據(jù)例:例: MOV 30H, 31H;30H 31H 內(nèi)部內(nèi)部RAM數(shù)據(jù)送內(nèi)部數(shù)據(jù)送內(nèi)部RAM或或SFRMOV direct, Rii=0、1例:例: MOV 20H, R0;20H R0;以;以Ri內(nèi)容為地址單元中的數(shù)送內(nèi)內(nèi)容為地址單元中的數(shù)送內(nèi)RAM或或SFR 立刻數(shù)送內(nèi)部立刻數(shù)送內(nèi)部RAMMOV Ri ,#data i=0、1;立刻數(shù);立刻數(shù)#data送以送以Ri內(nèi)容為地址的單元內(nèi)容為地址的單元例:

32、例: MOV R1 ,#30;R1 #30 累加器內(nèi)容送內(nèi)部累加器內(nèi)容送內(nèi)部RAMMOV Ri ,A i=0、1;累加器內(nèi)容送以;累加器內(nèi)容送以Ri內(nèi)容為地址的單元內(nèi)容為地址的單元例:例: MOV R0 ,A ;R0 A 內(nèi)部內(nèi)部RAM或或SFR數(shù)據(jù)送內(nèi)數(shù)據(jù)送內(nèi)RAMMOV Ri ,direct i=0、1例:例: MOV R1 ,56H;R1 56 ;以;以direct為地址的單元內(nèi)容送為地址的單元內(nèi)容送Ri內(nèi)容為地址的單元內(nèi)容為地址的單元 16位立刻數(shù)傳送指令位立刻數(shù)傳送指令MOV DPTR,#data16;16位立刻數(shù)送位立刻數(shù)送DPTR中,設(shè)置地址指針。中,設(shè)置地址指針。例:例: MO

33、V DPTR,#3000H ;DPH #30H ;DPL #00H MOV類傳送指令小結(jié)類傳送指令小結(jié)MOV A,#data立刻數(shù)送累加器立刻數(shù)送累加器MOV A,Rn存放器內(nèi)容送累加器存放器內(nèi)容送累加器MOV A,direct直接地址內(nèi)容送累加器直接地址內(nèi)容送累加器MOV A,Ri內(nèi)部內(nèi)部RAM內(nèi)容送累加器內(nèi)容送累加器MOV Rn,# data立刻數(shù)送存放器立刻數(shù)送存放器MOV Rn ,A 累加器內(nèi)容送存放器累加器內(nèi)容送存放器RnMOV Rn ,direct直接地址內(nèi)容送存放器直接地址內(nèi)容送存放器Rn指令助記符指令助記符說說 明明字節(jié)字節(jié) 2 21 12 21 12 21 12 2MOV 片

34、內(nèi)傳送指令片內(nèi)傳送指令機器周期數(shù)機器周期數(shù)1111111P364367 MOV MOV類傳送指令小結(jié)類傳送指令小結(jié)MOV direct1,direct2內(nèi)內(nèi)RAM或或SFR之間直接傳送之間直接傳送MOV direct, Ri內(nèi)內(nèi)RAM數(shù)據(jù)送內(nèi)數(shù)據(jù)送內(nèi)RAM或或SFRMOV direct,#data立刻數(shù)送內(nèi)部立刻數(shù)送內(nèi)部RAM或或SFRMOV direct,A累加器內(nèi)容送內(nèi)累加器內(nèi)容送內(nèi)RAM或或SFRMOV direct,Rn存放器內(nèi)容送內(nèi)存放器內(nèi)容送內(nèi)RAM或或SFR指令助記符指令助記符說說 明明字節(jié)字節(jié)3 32 22 23 32 2MOV Ri ,#data立刻數(shù)送內(nèi)立刻數(shù)送內(nèi)RAMMO

35、V Ri ,A累加器內(nèi)容送內(nèi)累加器內(nèi)容送內(nèi)RAMMOV Ri ,direct內(nèi)內(nèi)RAM數(shù)據(jù)送內(nèi)數(shù)據(jù)送內(nèi)RAM或或SFRMOV DPTR,#data1616位立刻數(shù)傳送指令位立刻數(shù)傳送指令2 21 12 23 3MOV 片內(nèi)傳送指令片內(nèi)傳送指令RidirectRn#dataACC傳送指令在片內(nèi)數(shù)據(jù)存儲器中傳送操傳送指令在片內(nèi)數(shù)據(jù)存儲器中傳送操作作例:將片內(nèi)例:將片內(nèi)RAM 30H單元的內(nèi)容傳送到片內(nèi)單元的內(nèi)容傳送到片內(nèi)RAM 地址為地址為78H的單元。的單元。MOV 78H,30H例:將片內(nèi)例:將片內(nèi)RAM 地址為地址為30H、31H單元的內(nèi)容傳送到單元的內(nèi)容傳送到片內(nèi)片內(nèi)RAM 地址為地址為8

36、0H、81H單元中。單元中。MOV R0,#80HMOV R0,30HMOV R0,#81HMOV R0,31H例:將片內(nèi)例:將片內(nèi)RAM 地址為地址為80H、81H單元的內(nèi)容傳送到單元的內(nèi)容傳送到片內(nèi)片內(nèi)RAM 地址為地址為90H、91H單元中。單元中。MOV R0,#81HMOV A, R0MOV R1,#91HMOV R1,AMOV R0, #80H ;指向源地址;指向源地址MOV A, R0 ;取出數(shù)據(jù);取出數(shù)據(jù)MOV R1,#90H ;指向目的地址;指向目的地址MOV R1, A ;進(jìn)展數(shù)據(jù)傳送;進(jìn)展數(shù)據(jù)傳送高高128字節(jié)存儲器字節(jié)存儲器的數(shù)據(jù)傳送,采用的數(shù)據(jù)傳送,采用間接尋址方式間

37、接尋址方式2、MOVX類傳送指令類傳送指令累加器累加器A與外部與外部RAM傳送數(shù)據(jù)用傳送數(shù)據(jù)用 MOVX 外部外部RAM內(nèi)容送累加器內(nèi)容送累加器AMOVX A,Ri (i=0、1)例:例:MOV P2,#30H MOV R0, #00H MOVX A,R0 ;以;以Ri內(nèi)容為外部內(nèi)容為外部RAM地址的單元中的數(shù)送地址的單元中的數(shù)送A,外部數(shù)據(jù)存儲器讀指令。高外部數(shù)據(jù)存儲器讀指令。高8位地址由位地址由P2給出。給出。 累加器內(nèi)容送外累加器內(nèi)容送外RAMMOVX Ri ,A i=0、1;累加器內(nèi)容送以;累加器內(nèi)容送以Ri內(nèi)容為地址的外部內(nèi)容為地址的外部RAM單元單元,外部數(shù)據(jù)存儲器寫指令。外部數(shù)據(jù)

38、存儲器寫指令。 外部外部RAM送累加器送累加器A:讀外部讀外部RAM單元內(nèi)容單元內(nèi)容MOVX A,DPTR;以;以DPTR內(nèi)容為地址的外部內(nèi)容為地址的外部RAM單元中的數(shù)送單元中的數(shù)送A 累加器內(nèi)容送外累加器內(nèi)容送外RAM:寫數(shù)據(jù)到外部:寫數(shù)據(jù)到外部RAM單元單元MOVX DPTR ,A;累加器內(nèi)容送以;累加器內(nèi)容送以DPTR內(nèi)容為地址的外部內(nèi)容為地址的外部RAM單元單元例:將例:將3000H內(nèi)容送入內(nèi)容送入3100H中中 MOV DPTR, #3000H MOVX A, DPTR MOV DPTR,#3100H MOVX DPTR,A MOVX類傳送指令小結(jié)類傳送指令小結(jié) 指令助記符指令助記

39、符說說 明明字字 節(jié)節(jié) 1 11 11 11 1MOVX A,Ri外部外部RAM內(nèi)容送累加器內(nèi)容送累加器AMOVX Ri ,A累加器內(nèi)容送外累加器內(nèi)容送外RAMMOVX A,DPTR外部外部RAM單元內(nèi)容送累加器單元內(nèi)容送累加器AMOVX DPTR ,A累加器內(nèi)容送外累加器內(nèi)容送外RAM單元單元MOVX 片外傳送指令片外傳送指令例:將片外例:將片外RAM 120H單元的內(nèi)容傳送到片外單元的內(nèi)容傳送到片外RAM 地址為地址為0078H的單元。的單元。MOV DPTR,#0120HMOVX A,DPTRMOVX DPTR,A ;外部;外部RAM送累加器送累加器A;累加器內(nèi)容送外;累加器內(nèi)容送外RA

40、MMOV DPTR, #0078H3、MOVC類傳送指令類傳送指令MOVC為程序存儲器傳送指令,均為基址加變址為程序存儲器傳送指令,均為基址加變址存放器尋址。存放器尋址。MOVC A,A+DPTR ;以;以DPTR作基址存放器,作基址存放器,A作變址存放器,兩者作變址存放器,兩者;相加構(gòu)成;相加構(gòu)成16位位ROM地址,將該單元內(nèi)容讀入地址,將該單元內(nèi)容讀入A 以以DPTR作基址加變址尋址作基址加變址尋址長查表指令長查表指令MOVC A,A+PC83H機器碼機器碼 以以PC作基址加變址尋址作基址加變址尋址 ;取指后;取指后PC增增“1,以當(dāng)前,以當(dāng)前PC作基址,作基址,A作變址,兩者作變址,兩者

41、;相加構(gòu)成;相加構(gòu)成16位位ROM地址,將該單元內(nèi)容讀入地址,將該單元內(nèi)容讀入A短查表指令短查表指令 MOVC類傳送指令小結(jié)類傳送指令小結(jié)指令助記符指令助記符說說 明明字字 節(jié)節(jié) 1 11 1MOVC A,A+DPTRMOVC A,A+PC以以DPTR作基址加變址尋址作基址加變址尋址以以PC作基址加變址尋址作基址加變址尋址 MOV DPTR , #PFTAB MOV A , #03H MOVC A , A+DPTR SJMP $例:根據(jù)累加器例:根據(jù)累加器 A中的數(shù)中的數(shù) 09 ,查找對應(yīng)的平方,查找對應(yīng)的平方值。值。PFTAB: DB 0, 1, 4, 9, 16, 25 DB 36, 49

42、, 64, 81 ;數(shù)數(shù)0-9的平方表的平方表 END ORG 0000H LJMP MAIN ORG 0030HMAIN: MOV SP , #60HDPTRDPTR2000HA A 03H 09H MOVC A,A+DPTR 93H 93HROMROM00H00H2000H2000H01H01H04H04H09H09H2019H2019H2019H2019H2019H2019H;設(shè);設(shè)A= 03H,查,查“3的平的平方方ALU4、 XCH、XCHD、SWAP類傳送指令類傳送指令 存放器內(nèi)容與累加器內(nèi)容交換存放器內(nèi)容與累加器內(nèi)容交換XCH A,Rn (n=07);(A) Rn 內(nèi)部內(nèi)部RAM

43、或或SFR內(nèi)容與累加器內(nèi)容交換內(nèi)容與累加器內(nèi)容交換XCH A,direct (n=07);(A) direct 內(nèi)內(nèi)RAM內(nèi)容與累加器內(nèi)容交換內(nèi)容與累加器內(nèi)容交換XCH A,Ri (i=0,1);(A) (Ri) 內(nèi)部內(nèi)部RAM內(nèi)容低內(nèi)容低4位與累加器低位與累加器低4位內(nèi)容交換位內(nèi)容交換XCHD A,Ri (i=0,1);(A30) (Ri 30) A(Ri) 累加器累加器A高高4位與低位與低4位交換位交換SWAP A;(A30) (A 74) 單字節(jié)指令單字節(jié)指令A(yù)例:例:MOV A,#56H SWAP A 交換類傳送指令小結(jié)交換類傳送指令小結(jié)指令助記符指令助記符說說 明明字節(jié)字節(jié)1 12

44、21 11 11 1XCH A,RnXCH A,direct存放器內(nèi)容與累加器內(nèi)容交換存放器內(nèi)容與累加器內(nèi)容交換直接地址內(nèi)容與累加器內(nèi)容交換直接地址內(nèi)容與累加器內(nèi)容交換XCH A,RiXCHD A,Ri內(nèi)內(nèi)RAM內(nèi)容與累加器內(nèi)容交換內(nèi)容與累加器內(nèi)容交換內(nèi)內(nèi)RAM內(nèi)容低內(nèi)容低4位與累加器低位與累加器低4位交換位交換SWAP A累加器累加器A高高4位與低位與低4位交換位交換5 5、 堆棧操作指令堆棧操作指令 進(jìn)棧指令進(jìn)棧指令PUSH direct第第1步:步:SP自動增自動增“1,SP SP +1第第2步:步:direct地址單元的內(nèi)容壓入地址單元的內(nèi)容壓入SP指向的單元指向的單元 出棧指令出棧指

45、令POP direct第第2步:步:SP自動減自動減“1,SP SP -1第第1步、步、SP指向的單元內(nèi)容彈出到以指向的單元內(nèi)容彈出到以direct為地址的單元為地址的單元中中SPSP例:堆棧操作例:堆棧操作 設(shè)設(shè)A= 55H,B= 3FH建立堆棧建立堆棧壓入操作壓入操作彈出操作彈出操作 60H61H62H63H64H 55H 3FHSPMOV SP, #60HPUSH APUSH BPOP PSWSP 結(jié)果:結(jié)果:PSW的內(nèi)容的內(nèi)容3FH,SP的內(nèi)容為的內(nèi)容為61HPSW3FH二、算術(shù)運算類二、算術(shù)運算類24條條用到的指令助記符有用到的指令助記符有8 8種:種:加法指令加法指令 ADD帶進(jìn)位

46、加法指令:帶進(jìn)位加法指令:ADDC帶進(jìn)位的減法指令:帶進(jìn)位的減法指令:SUBB 增增1指令:指令:INC減減1指令:指令:DEC乘除指令乘除指令 MUL除法指令:除法指令:DIV十進(jìn)制加法調(diào)整指令:十進(jìn)制加法調(diào)整指令:DA算術(shù)運算類指令執(zhí)行結(jié)果影響標(biāo)志位:算術(shù)運算類指令執(zhí)行結(jié)果影響標(biāo)志位:CY、AC、OV1、不帶進(jìn)位加、不帶進(jìn)位加ADD 累加器內(nèi)容加立刻數(shù)累加器內(nèi)容加立刻數(shù)ADD A,#data;A (A)+ #data 累加器內(nèi)容加存放器內(nèi)容累加器內(nèi)容加存放器內(nèi)容ADD A,Rnn=07;A (A)+ (Rn)例:計算例:計算12H+34H: MOV A,#12H ADD A,#34H例:例

47、:MOV A,#12HMOV R0,#34HADD A,R0 累加器內(nèi)容加內(nèi)部累加器內(nèi)容加內(nèi)部RAM內(nèi)容內(nèi)容ADD A,Rii=0,1;A (A)+ (Ri) 累加器內(nèi)容加內(nèi)部累加器內(nèi)容加內(nèi)部RAM內(nèi)容或內(nèi)容或SFRADD A,direct;A (A)+ (direct)ADD類指令小結(jié)類指令小結(jié)指令助記符指令助記符說說 明明字字 節(jié)節(jié) 2 21 11 12 2ADD A,#dataADD A,Rn立刻數(shù)加到累加器立刻數(shù)加到累加器存放器內(nèi)容加到累加器存放器內(nèi)容加到累加器ADD A,RiADD A,direct內(nèi)內(nèi)RAM內(nèi)容加到累加器內(nèi)容加到累加器直接地址內(nèi)容加到累加器直接地址內(nèi)容加到累加器2、

48、帶進(jìn)位加、帶進(jìn)位加ADDC 累加器內(nèi)容加立刻數(shù)累加器內(nèi)容加立刻數(shù) 加進(jìn)位位加進(jìn)位位ADDC A,#data;A (A)+ #data+CY 累加器內(nèi)容加存放器內(nèi)容加進(jìn)位位累加器內(nèi)容加存放器內(nèi)容加進(jìn)位位ADDC A,Rnn=07;A (A)+ (Rn) +CY 累加器內(nèi)容加內(nèi)累加器內(nèi)容加內(nèi)RAM內(nèi)容加進(jìn)位位內(nèi)容加進(jìn)位位ADDC A,Rii=0,1;A (A)+ (Ri)+CY 累加器內(nèi)容加內(nèi)累加器內(nèi)容加內(nèi)RAM內(nèi)容或內(nèi)容或SFR加進(jìn)位位加進(jìn)位位ADDC A,direct;A (A)+ (direct) +CY指令符助記指令符助記說說 明明字字 節(jié)節(jié) 2 21 11 12 2ADDC A,#dat

49、aADDC A,Rn立刻數(shù)和進(jìn)位加到累加器立刻數(shù)和進(jìn)位加到累加器存放器內(nèi)容和進(jìn)位加到累加器存放器內(nèi)容和進(jìn)位加到累加器ADDC A,RiADDC A,direct內(nèi)內(nèi)RAM內(nèi)容和進(jìn)位加到累加器內(nèi)容和進(jìn)位加到累加器直接地址內(nèi)容和進(jìn)位加到累加器直接地址內(nèi)容和進(jìn)位加到累加器 ADDC類指令小結(jié)類指令小結(jié)3、增量、增量INC 累加器內(nèi)容加累加器內(nèi)容加 “1INC A;A (A)+ 1 存放器內(nèi)容加存放器內(nèi)容加 “1INC Rn;A (Rn)+1 內(nèi)內(nèi)RAM或或SFR內(nèi)容加內(nèi)容加 “1INC direct;(Ri) (Ri)+1 內(nèi)內(nèi)RAM內(nèi)容加內(nèi)容加 “1INC Ri ;direct (direct)+

50、1 數(shù)據(jù)指針數(shù)據(jù)指針DPTR內(nèi)容加內(nèi)容加 “1INC DPTR; DPTR (DPTR)+1 INC 指令中除指令中除 INC A 指令影響指令影響 P 標(biāo)志位,標(biāo)志位,其他指令不影響任何標(biāo)志位其他指令不影響任何標(biāo)志位 INC類指令小結(jié)類指令小結(jié)指令助記符指令助記符說說 明明字節(jié)字節(jié) 1121INC AINC Rn累加器內(nèi)容加累加器內(nèi)容加“1 1存放器內(nèi)容加存放器內(nèi)容加“1 1INC direct內(nèi)部內(nèi)部RAM或或SFR內(nèi)容加內(nèi)容加“1INC Ri內(nèi)部內(nèi)部RAM內(nèi)容加內(nèi)容加“1INC DPTR數(shù)據(jù)指針數(shù)據(jù)指針DPTR內(nèi)容加內(nèi)容加“11留意留意:ADD A,#1 ; INC A; ADDC A,

51、#1 區(qū)別區(qū)別4 4、十進(jìn)制調(diào)整指令、十進(jìn)制調(diào)整指令DA A;對累加器;對累加器A,作,作BCD碼加法后進(jìn)展碼加法后進(jìn)展“過過9補補6調(diào)調(diào)整整假設(shè)假設(shè)A309 AC=1 那么那么A30 A30+06H假設(shè)假設(shè)A749 CY=1那么那么A74 A74+60H留意:留意:DA 指令不能對指令不能對BCD碼減法的結(jié)果進(jìn)展調(diào)整碼減法的結(jié)果進(jìn)展調(diào)整5、減法指令、減法指令SUBB 累加器減立刻數(shù)和借位標(biāo)志累加器減立刻數(shù)和借位標(biāo)志SUBB A,#data 累加器減存放器內(nèi)容和借位標(biāo)志累加器減存放器內(nèi)容和借位標(biāo)志SUBB A,Rnn=07;A (A)- #data-CY;A (A)- (Rn) -CY 累加器

52、減累加器減RAM內(nèi)容和借位標(biāo)志內(nèi)容和借位標(biāo)志SUBB A,Rii=0,1 累加器內(nèi)容減內(nèi)累加器內(nèi)容減內(nèi)RAM內(nèi)容或內(nèi)容或SFR和借位標(biāo)志和借位標(biāo)志SUBB A,direct ;A (A)- (Ri)-CY;A (A)- (direct) -CY SUBB類指令小結(jié)類指令小結(jié)指令助記符指令助記符說說 明明字字 節(jié)節(jié) 2 21 11 12 2SUBB A,#dataSUBB A,RnSUBB A,RiSUBB A,direct累加器減立刻數(shù)和借位累加器減立刻數(shù)和借位累加器減存放器內(nèi)容和借位累加器減存放器內(nèi)容和借位累加器減累加器減RAM內(nèi)容和借位內(nèi)容和借位累加器減直接地址內(nèi)容和借位累加器減直接地址內(nèi)

53、容和借位雙字節(jié)求補雙字節(jié)求補設(shè):兩個字節(jié)原碼數(shù)存在設(shè):兩個字節(jié)原碼數(shù)存在R1、R0中中求補后結(jié)果,存在求補后結(jié)果,存在R3、R2中。中。 CLR C CLR A SUBB A, R0 MOV R2, A CLR A SUBB A, R1 ORG 0000H MOV R3 , A SJMP $ END ;CY 0; A 0;低字節(jié)求補低字節(jié)求補;送送R2;A清零清零;高字節(jié)求補高字節(jié)求補;送送R3R0R1原碼原碼-R2R300H00H存在借位存在借位雙字節(jié)求補雙字節(jié)求補設(shè):兩個字節(jié)原碼數(shù)存在設(shè):兩個字節(jié)原碼數(shù)存在R1、R0中中求補后結(jié)果,存在求補后結(jié)果,存在R3、R2中。中。6、減量、減量 DE

54、C 累加器內(nèi)容減累加器內(nèi)容減“1DEC A;A (A)- 1 存放器內(nèi)容減存放器內(nèi)容減“1DEC Rn;Rn (Rn)-1 內(nèi)內(nèi)RAM或或SFR內(nèi)容減內(nèi)容減“1DEC direct;(Ri) (Ri)-1 內(nèi)內(nèi)RAM內(nèi)容減內(nèi)容減“1DEC Ri ;direct (direct)-1 DEC 類指令小結(jié)類指令小結(jié)指令助記符指令助記符說說 明明字字 節(jié)節(jié) 1 11 12 21 1DEC ADEC Rn累加器內(nèi)容減累加器內(nèi)容減“1 1存放器內(nèi)容減存放器內(nèi)容減“1 1DEC direct內(nèi)內(nèi)RAM或或SFR內(nèi)容減內(nèi)容減“1DEC Ri內(nèi)內(nèi)RAM內(nèi)容減內(nèi)容減“17、MULMUL A BDIV A B;執(zhí)

55、行執(zhí)行 (A)(B) (B A) 的操作的操作 CY= 08、DIV;執(zhí)行執(zhí)行 (A)/(B) 后,商后,商 A 余余 B CY= 0MOV A, 20HMOV B,#10HDIV AB MOV A,BADD A, #30HMOV 22H, AADD A, #30HMOV 21H, A ORG 0000H SJMP $ END采用除采用除10H取余取余法將兩個法將兩個BCD數(shù)數(shù)拆開拆開BCDH BCDLBCDH BCDL三、邏輯運算類三、邏輯運算類24條條用到的指令助記符有用到的指令助記符有9種:種:包括與、或、異或、去除、求反、移位等操作包括與、或、異或、去除、求反、移位等操作ANL、ORL

56、、XRL、CLR、CPL、RL、RLC、RR、RRC1、邏輯與、邏輯與ANL6條條 累加器內(nèi)容邏輯與立刻數(shù)累加器內(nèi)容邏輯與立刻數(shù)ANL A,#data;A (A)#data 累加器內(nèi)容邏輯與存放器內(nèi)容累加器內(nèi)容邏輯與存放器內(nèi)容ANL A,Rnn=07;A (A)(Rn) 累加器內(nèi)容邏輯與內(nèi)累加器內(nèi)容邏輯與內(nèi)RAM內(nèi)容內(nèi)容ANL A,Rii=0,1;A (A) (Ri) 累加器內(nèi)容邏輯與內(nèi)累加器內(nèi)容邏輯與內(nèi)RAM內(nèi)容或內(nèi)容或SFRANL A,direct;A (A) (direct) 累加器內(nèi)容邏輯與內(nèi)累加器內(nèi)容邏輯與內(nèi)RAM或或SFRANL direct,A;direct (direct) A

57、 立刻數(shù)邏輯與立刻數(shù)邏輯與RAM或或SFRANL direct,#data;direct (direct)#data ANL 類傳送指令小結(jié)類傳送指令小結(jié)ANL A,#data立刻數(shù)邏輯與累加器立刻數(shù)邏輯與累加器ANL A,Rn存放器內(nèi)容邏輯與累加器存放器內(nèi)容邏輯與累加器ANL A,direct直接地址內(nèi)容邏輯與累加器直接地址內(nèi)容邏輯與累加器ANL A,Ri內(nèi)內(nèi)RAM內(nèi)容邏輯與累加器內(nèi)容邏輯與累加器指令助記符指令助記符說說 明明字字 節(jié)節(jié) 2 21 12 21 1ANL direct,AANL direct,#data累加器邏輯與內(nèi)累加器邏輯與內(nèi)RAM或或SFR立刻數(shù)邏輯與立刻數(shù)邏輯與RAM或

58、或SFR2 23 32、邏輯或、邏輯或 ORL6條條 累加器內(nèi)容邏輯或立刻數(shù)累加器內(nèi)容邏輯或立刻數(shù)ORL A,#data;A (A)#data 累加器內(nèi)容邏輯或存放器內(nèi)容累加器內(nèi)容邏輯或存放器內(nèi)容ORL A,Rnn=07;A (A) (Rn) 累加器內(nèi)容邏輯或內(nèi)累加器內(nèi)容邏輯或內(nèi)RAM內(nèi)容內(nèi)容ORL A,Rii=0,1;A (A) (Ri) 累加器內(nèi)容邏輯或內(nèi)累加器內(nèi)容邏輯或內(nèi)RAM內(nèi)容或內(nèi)容或SFRORL A,direct;A (A) (direct) 累加器內(nèi)容邏輯或內(nèi)累加器內(nèi)容邏輯或內(nèi)RAM或或SFRORL direct,A;direct (direct) (A) 立刻數(shù)邏輯或立刻數(shù)邏輯

59、或RAM或或SFRORL direct,#data;direct (direct)#data ORL 類傳送指令小結(jié)類傳送指令小結(jié)ORL A,#data立刻數(shù)邏輯或累加器立刻數(shù)邏輯或累加器ORL A,Rn存放器內(nèi)容邏輯或累加器存放器內(nèi)容邏輯或累加器ORL A,direct直接地址內(nèi)容邏輯或累加器直接地址內(nèi)容邏輯或累加器ORL A,Ri內(nèi)內(nèi)RAM內(nèi)容邏輯或累加器內(nèi)容邏輯或累加器指令符號指令符號說說 明明字字 節(jié)節(jié) 2 21 12 21 1ORL direct,AORL direct,#data累加器邏輯或內(nèi)累加器邏輯或內(nèi)RAM或或SFR立刻數(shù)邏輯或立刻數(shù)邏輯或RAM或或SFR2 23 33、邏輯

60、異或、邏輯異或XRL6條條 累加器內(nèi)容邏輯異或立刻數(shù)累加器內(nèi)容邏輯異或立刻數(shù)XRL A,#data 累加器內(nèi)容邏輯異或存放器內(nèi)容累加器內(nèi)容邏輯異或存放器內(nèi)容XRL A,Rnn=07;A (A) #data +;A (A) (Rn) + 累加器內(nèi)容邏輯異或內(nèi)累加器內(nèi)容邏輯異或內(nèi)RAM內(nèi)容內(nèi)容XRL A,Rii=0,1 累加器內(nèi)容邏輯異或內(nèi)累加器內(nèi)容邏輯異或內(nèi)RAM內(nèi)容或內(nèi)容或SFRXRL A,direct;A (A) (Ri) +;A (A) (direct) + 累加器內(nèi)容邏輯異或內(nèi)累加器內(nèi)容邏輯異或內(nèi)RAM或或SFRXRL direct,A 立刻數(shù)邏輯異或立刻數(shù)邏輯異或RAM或或SFRXRL

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論