




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、12022-3-42022-3-42程序設計語言機器語言匯編語言高級語言機器語言機器語言 由于構(gòu)成計算機的電子器件特性所決定, 計算機只能識別二進制代碼。 這種以二進制代碼來描述指令功能的語言, 稱之為機器語言, 用機器語言組成的程序, 稱為目標程序。 計算機就是按照機器語言的指令來完成各種功能操作的, 它具有程序簡捷、占用存儲空間小、執(zhí)行速度快、控制功能強等特點。匯編語言匯編語言 用來替代機器語言的進行程序設計的一種語言,由助記符、保留字和偽指令等組成。很容易讓人們所識別、記憶和讀寫。 匯編語言編寫出的程序是匯編語言源程序,可由“匯編程序”翻譯成機器語言程序(即目標代碼)。地址地址機器語言機
2、器語言匯編語言匯編語言形式形式二進制形式二進制形式十六進制形式十六進制形式2000H0111 0100 0000 0101B7405HMOV A , #05H2002H0010 0100 0000 1010B240AHADD A , #0AH2004H1000 0000 1111 1110B80FEHMOV 20H , A匯編程序容易讓人們所識別、記憶和讀寫,但不能為機器直接識別執(zhí)行001010010101010101010101機器語言程序(即目標代碼,機器可以識別執(zhí)行010101010101)010101010101高級語言高級語言 是面向過程和問題并能獨立于機器的通用程序設計語言,是一種
3、接近人們自然語言和常用數(shù)學表達式的計算機語言。 高級語言編寫的程序是不能被機器直接執(zhí)行的,但可以被常駐在內(nèi)存或磁盤上的解釋程序或編譯程序等編譯成目標代碼后才能被機器所執(zhí)行。獨立于機器,可移植性強結(jié)構(gòu)化設計,程序清晰,但是占用存儲空間大編譯程序001010010101010101010101機器語言程序(即目標代碼,機器可以識別執(zhí)行010101010101)010101010101u指令性語句使CPU執(zhí)行一個具體的操作。u偽指令不要求計算機做任何操作,也沒有對應的機器碼,不產(chǎn)生目標程序,不影響程序的執(zhí)行,僅僅是能夠幫助進行匯編的一些指令。4.1.2 匯編語言構(gòu)成匯編語言構(gòu)成指令性語句:111條指
4、令的助記符語句。指示性語句:偽指令語句。2022-3-411 2022-3-415 80H20H20HA80HR1 低256B即是不超過8位的數(shù)據(jù) 2000H30H30HDPTRA2005H05HA+。MOV AMOV A,RnRn;A (Rn)A (Rn)MOV AMOV A,directdirect;AA(directdirect)MOV AMOV A,RiRi ;AA((Ri(Ri)) )MOV AMOV A,#data#data;A #dataA #dataMOV RnMOV Rn,A A;Rn (A)Rn (A)MOV RnMOV Rn,directdirect;Rn Rn (dir
5、ectdirect)MOV RnMOV Rn,#data#data;Rn #dataRn #dataMOV directMOV direct,A A;directdirect (A)(A)MOV directMOV direct,RnRn;directdirect (Rn)(Rn)MOV directMOV direct,direct direct ;directdirect (directdirect)MOV directMOV direct,RiRi;directdirect ( ((RiRi)) )MOV directMOV direct,#data#data;directdirect
6、#data#data(A)(A)MOV RiMOV Ri,directdirect;(;(RiRi) (directdirect)MOV RiMOV Ri,#data#data;(;(RiRi) #data#dataMOV DPTRMOV DPTR,#data16 #data16 ;DPTR #data16DPTR #data16 MOVX AMOVX A,DPTRDPTR;A (A ((DPTRDPTR)) )MOVX DPTRMOVX DPTR,A A;(;(DPTRDPTR) (A)(A)MOVX AMOVX A,RiRi;A (A ((RiRi)) )MOVX RiMOVX Ri,A
7、A;(;(RiRi) (A)(A) (1 1)將)將R0R0的內(nèi)容送的內(nèi)容送R6R6中中程序為:程序為:MOV AMOV A,R0R0MOV R6MOV R6,A A(2 2)將片內(nèi))將片內(nèi)RAM 30HRAM 30H單元的內(nèi)容送片外單元的內(nèi)容送片外60H60H單元中單元中程序為:程序為:MOV AMOV A,30H30HMOV R0MOV R0,#60H#60HMOVX R0MOVX R0,A A(3 3)將片外)將片外RAM 1000HRAM 1000H單元的內(nèi)容送片內(nèi)單元的內(nèi)容送片內(nèi)20H20H單元中單元中程序為:程序為:MOV DPTRMOV DPTR,#1000H#1000HMOV
8、AMOV A,DPTRDPTRMOV 20HMOV 20H,A A(4 4)將)將ROM 2000HROM 2000H單元的內(nèi)容送片內(nèi)單元的內(nèi)容送片內(nèi)RAMRAM的的30H30H單元中單元中程序為:程序為:MOV AMOV A,#0#0MOV DPTRMOV DPTR,#2000H#2000HMOVC AMOVC A,A+DPTRA+DPTRMOV 30HMOV 30H,A A XCH AXCH A,RnRn;A RnA RnXCH A XCH A ,directdirect;AdirectAdirectXCH AXCH A,RiRi ;AA(RiRi)XCHD AXCHD A,RiRi;A
9、A0 03 3(RiRi)0 03 3SWAP ASWAP A;A A0 03 3AA4 47 7 。 PUSH APUSH APUSH BPUSH B則出棧的順序為:則出棧的順序為:POP BPOP BPOP APOP AADD AADD A,RnRn;A (A) + (Rn)A (A) + (Rn)ADD AADD A,directdirect;A (A) +A (A) +(directdirect)ADD AADD A,RiRi;A (A) +A (A) +((Ri)(Ri))ADD AADD A,#data#data;A (A) + #dataA (A) + #dataADDC AAD
10、DC A,RnRn;A (A) + (Rn) + CA (A) + (Rn) + CADDC AADDC A,directdirect ;A (A) +A (A) +(directdirect)+ C+ CADDC AADDC A,RiRi;A (A) +A (A) +(RiRi)+ C+ CADDC AADDC A,#data#data;A (A) + #data + CA (A) + #data + CINC AINC A;A (A) + 1A (A) + 1INC RnINC Rn;Rn (Rn) + 1Rn (Rn) + 1INC directINC direct;directdire
11、ct (directdirect)+ 1+ 1INC RiINC Ri;(;(RiRi)( ((RiRi))+ 1)+ 1INC DPTRINC DPTR ;DPTR (DPTR) + 1DPTR (DPTR) + 1 MOV AMOV A,R2R2ADD AADD A,R4R4MOV R6MOV R6,A AMOV AMOV A,R1R1ADDC AADDC A,R3R3MOV R5MOV R5,A ASUBB ASUBB A,RnRn;A (A) (Rn) - CA (A) (Rn) - CSUBB ASUBB A,directdirect ;A (A) -A (A) -(directdi
12、rect)- C- CSUBB ASUBB A,RiRi;A (A) -A (A) -(RiRi)- C- CSUBB ASUBB A,#data#data;A (A) - #data CA (A) - #data CDEC ADEC A;A (A) - 1A (A) - 1DEC RnDEC Rn;Rn (Rn) - 1Rn (Rn) - 1DEC directDEC direct;direct direct (directdirect)- 1- 1DEC RiDEC Ri;(;(RiRi)(RiRi)- 1- 1 。在在 MOV AMOV A,R3R3ADD AADD A,R2R2DA A
13、DA AMOV R5MOV R5,A A ANL AANL A,Rn A(A) Rn A(A) ( (Rn)Rn)ANL AANL A,direct A (A) direct A (A) (directdirect)ANL AANL A,Ri A (A) Ri A (A) (RiRi)ANL AANL A,#data A (A) #data A (A) #data #dataANL directANL direct,A directA direct (directdirect) (A)(A)ANL directANL direct,#data direct#data direct(direct
14、direct) #data#dataORL AORL A,Rn A (A) Rn A (A) (Rn) (Rn)ORL AORL A,direct A (A) direct A (A) (directdirect)ORL AORL A,Ri A (A) Ri A (A) (RiRi)ORL AORL A,#data A (A) #data A (A) #data #dataORL directORL direct,A directA direct (directdirect) (A)(A)ORL directORL direct,#data direct#data direct(direct(
15、direct) #data#dataXRL AXRL A,Rn A (A) Rn A (A) (Rn) (Rn)XRL AXRL A,direct A (A) direct A (A) (directdirect)XRL AXRL A,Ri A (A) Ri A (A) (RiRi)XRL AXRL A,#data A (A) #data A (A) #data #dataXRL directXRL direct,A directA direct (directdirect) (A)(A)XRL directXRL direct,#data direct#data direct directd
16、irect) #data#data MOV AMOV A,R0R0CPL ACPL AMOV R0MOV R0,A A 【例例3-93-9】若累加器若累加器A A中的內(nèi)容為中的內(nèi)容為10001011B10001011B,CY=0CY=0,則執(zhí)行,則執(zhí)行RLC ARLC A指令后累加器指令后累加器A A中的內(nèi)容為中的內(nèi)容為0001011000010110,CY=1CY=1。 LJMP addr16LJMP addr16;PC addr16PC addr16 例例3-103-10 ORG 0000H ORG 0000H LJMP START LJMP START ORG 0030H ORG 003
17、0HSTART:LJMP LABSTART:LJMP LAB ORG 7000H ORG 7000H LAB: MOV A, R4 LAB: MOV A, R4 AJMP addr11 AJMP addr11;PC PC 10100 0 addr11 addr11 SJMP rel SJMP rel;PC (PC) + 2 + relPC (PC) + 2 + rel JMP A+DPTR JMP A+DPTR;PC (A) + (DPTR)PC (A) + (DPTR) JZ rel JZ rel ;若若A=0A=0,則,則PC (PC) + 2 + relPC (PC) + 2 + rel
18、,否則,否則,PC (PC) + 2PC (PC) + 2 JNZ rel JNZ rel ;若若A A 0 0,則,則PC (PC) + 2 + relPC (PC) + 2 + rel,否,否則,則,PC (PC) + 2 PC (PC) + 2 。;若;若A=dataA=data,則,則PC (PC) + 3PC (PC) + 3,不轉(zhuǎn)移,繼續(xù)執(zhí)行。若,不轉(zhuǎn)移,繼續(xù)執(zhí)行。若AdataAdata,則,則C=0C=0,PC (PC) + PC (PC) + 3 + rel3 + rel,轉(zhuǎn)移。若,轉(zhuǎn)移。若AdataAdatadata,則,則C=0C=0,PC (PC) + 3 + relPC
19、 (PC) + 3 + rel,轉(zhuǎn)移。若(,轉(zhuǎn)移。若(RnRn)datadata(Ri)data,則,則C=0C=0,PC (PC) + 3 + relPC (PC) + 3 + rel,轉(zhuǎn)移。若,轉(zhuǎn)移。若(Ri)data(Ri)directAdirect,則,則C=0C=0,PC PC (PC) + 3 + rel(PC) + 3 + rel,轉(zhuǎn)移。,轉(zhuǎn)移。若若AdirectAR1R0R1轉(zhuǎn)轉(zhuǎn)BIG1MOV A, R1MOV A, R1MOV R0, AMOV R0, ABIG1:MOV DPTR, #8766HBIG1:MOV DPTR, #8766H MOVX A, DPTR MOVX
20、A, DPTR MOV R2, A MOV R2, A CLR C CLR C SUBB A, R0 SUBB A, R0 JC BIG2 ;R0R2 JC BIG2 ;R0R2轉(zhuǎn)轉(zhuǎn)BIG2 MOV A, R2 MOV A, R2 SJMP LABLAST SJMP LABLASTBIG2:MOV A, R0BIG2:MOV A, R0LABLAST:SJMP $LABLAST:SJMP $ END END例例3-283-28:寄存器:寄存器A A中存放了一個成績值(中存放了一個成績值(0A1000A100), ,編寫一程序,判定該成績所屬的級別,放入寄存器編寫一程序,判定該成績所屬的級別,放
21、入寄存器B B中。判中。判定標準是:定標準是:1 1級(級(100A90100A90)、)、2 2級(級(89A8089A80)、)、3 3級級(79A7079A70)、)、4 4級(級(69A6069A60)、)、5 5級(級(A59A59)。)。解:按照題意解:按照題意, ,該程序的流程圖如下:該程序的流程圖如下:ORGORG0000H0000H MOV R0, A ;MOV R0, A ;將將A A寄存器保存到寄存器保存到R0R0中中CLR C CLR C SUB A, #90 SUB A, #90 JNC LONEGREE ;JNC LONEGREE ;如果大于等于如果大于等于9090
22、,則跳轉(zhuǎn)到,則跳轉(zhuǎn)到 LONEGREE LONEGREEMOVX A, DPTRMOVX A, DPTRMOV A, R0MOV A, R0CLR CCLR CSUBB A, #80SUBB A, #80JNC LTWOGREE ;JNC LTWOGREE ;如果大于等于如果大于等于8080,則跳轉(zhuǎn)到,則跳轉(zhuǎn)到LTWOGREELTWOGREEMOV A, R0MOV A, R0CLR CCLR CSUBB A, #70SUBB A, #70JNC LTHREEGREE ;JNC LTHREEGREE ;如果大于等于如果大于等于7070,則跳轉(zhuǎn)到,則跳轉(zhuǎn)到THREEGREETHREEGREEMO
23、V A, R0MOV A, R0CLR CCLR CSUBB A, #60SUBB A, #60JNC LFOURGREE ;JNC LFOURGREE ;如果大于等于如果大于等于6060,則跳轉(zhuǎn)到,則跳轉(zhuǎn)到LFOURGREELFOURGREEMOV B, #5 ;MOV B, #5 ;否則就是第五等級否則就是第五等級LEND:SJMP $LEND:SJMP $LONEGREE: MOV B, #1LONEGREE: MOV B, #1SJMP LENDSJMP LENDLTWOGREE:MOV B, #2LTWOGREE:MOV B, #2SJMP LENDSJMP LENDLTHREEGR
24、EE:MOV B, #3LTHREEGREE:MOV B, #3SJMP LENDSJMP LENDLFOURGREE:MOV B, #4LFOURGREE:MOV B, #4SJMP LENDSJMP LENDENDEND從以上的程序可以看出,如果從以上的程序可以看出,如果A A寄存器的成績值小于寄存器的成績值小于6060,那么要做四個減法和條件判斷才能最后得到所需要的等級值那么要做四個減法和條件判斷才能最后得到所需要的等級值,所以這種多分支的程序結(jié)構(gòu)的效率是比較低的。為了提高,所以這種多分支的程序結(jié)構(gòu)的效率是比較低的。為了提高多分支程序的效率,往往采用地址表查詢等方式來實現(xiàn),這多分支程序的
25、效率,往往采用地址表查詢等方式來實現(xiàn),這將在后面進行分析。將在后面進行分析。循環(huán)是為了重復執(zhí)行一個程序段。在循環(huán)是為了重復執(zhí)行一個程序段。在5151指令系統(tǒng)的匯編指令系統(tǒng)的匯編語言中,語言中,循環(huán)次數(shù)固定的循環(huán)常常采用循環(huán)次數(shù)固定的循環(huán)常常采用DJNZDJNZ指令來實現(xiàn)。指令來實現(xiàn)。在在循環(huán)初始化時,將循環(huán)次數(shù)放置于某個通用寄存器中或某個循環(huán)初始化時,將循環(huán)次數(shù)放置于某個通用寄存器中或某個內(nèi)部內(nèi)部RAMRAM單元中;在循環(huán)結(jié)束處放置一條單元中;在循環(huán)結(jié)束處放置一條DJNZDJNZ,可同時完成對,可同時完成對循環(huán)計數(shù)單元的減循環(huán)計數(shù)單元的減1 1和條件跳轉(zhuǎn)功能(如果循環(huán)計數(shù)單元不為和條件跳轉(zhuǎn)功能
26、(如果循環(huán)計數(shù)單元不為0 0,則跳轉(zhuǎn)到循環(huán)程序段的起始處)。,則跳轉(zhuǎn)到循環(huán)程序段的起始處)。對于循環(huán)次數(shù)依賴于循環(huán)體中執(zhí)行結(jié)果的循環(huán)程序,則對于循環(huán)次數(shù)依賴于循環(huán)體中執(zhí)行結(jié)果的循環(huán)程序,則需要其他類型的有條件跳轉(zhuǎn)指令。需要其他類型的有條件跳轉(zhuǎn)指令。 程序如下:程序如下:ORG 0000HORG 0000HMOV R0, #0MOV R0, #0MOV R1, #100MOV R1, #100MOV DPTR, #2000HMOV DPTR, #2000HLOOP:LOOP:MOVX A, DPTRMOVX A, DPTRINC DPTRINC DPTRJNB ACC.7, NEXT ;JNB
27、ACC.7, NEXT ;如果如果A A最高位為最高位為0 0,則,則 ; ;大于等于大于等于0 0,不計入,不計入INC R0INC R0NEXT:DJNZ R1, LOOP ;NEXT:DJNZ R1, LOOP ;將將R1R1減減1 1,如果大于,如果大于0 0表明循環(huán)繼續(xù)表明循環(huán)繼續(xù) SJMP $ SJMP $ END END ORG 0000HORG 0000HMOV R0, #-1 ;MOV R0, #-1 ;MOV DPTR, #3000HMOV DPTR, #3000HL00P:L00P:MOVX A, DPTR ;MOVX A, DPTR ;將當前字符的將當前字符的ASCII
28、ASCII碼送入碼送入A A寄存器寄存器INC DPTRINC DPTRINC R0 INC R0 CJNE A, #0, LOOP ;CJNE A, #0, LOOP ;如果當前字符的如果當前字符的ASCIIASCII碼不為碼不為0 0,循,循環(huán)繼續(xù)環(huán)繼續(xù)LEND:SJMP $LEND:SJMP $END END ORG 00HORG 00HMOV DPTR, #TAB1 ;MOV DPTR, #TAB1 ;將表的基地址存放在將表的基地址存放在DPTRDPTR寄存器中寄存器中MOV A, R2 ;MOV A, R2 ;將電壓值放入將電壓值放入A A寄存器中寄存器中CLR C ;CLR C ;
29、清除清除CYCY標志位標志位RLC A ;RLC A ;將將A A乘以乘以2 2JNC LNOCY ;JNC LNOCY ;如果沒有進位則跳過進位處理如果沒有進位則跳過進位處理 INC INC DPH ;DPH ;將將DPHDPH加加1 1,也就是將,也就是將DPTRDPTR加加256256, ; ;處理了進位處理了進位LNOCY:MOV R4, A ;MOV R4, A ;保存索引值保存索引值A A到到R4R4寄存器寄存器MOVC A, A+DPTR ;MOVC A, A+DPTR ;查表得到溫度值的高字節(jié)查表得到溫度值的高字節(jié)MOV R2, A ;MOV R2, A ;將溫度值的高字節(jié)置于將溫度值的高字節(jié)置于R2R2寄存器寄存器MOV A, R4 ;MOV A, R4 ;恢復索引值恢復索引值A AINC A ;INC A ;索引值索引值
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 后勤主任培訓內(nèi)容
- 膀胱脫垂日常護理
- 爭做健康陽光新時代好少年
- CRRT應用和護理要點
- 礦山資源開采權(quán)轉(zhuǎn)讓與經(jīng)營合作合同
- 外企叉車安全培訓
- 餐飲場地臨時使用及環(huán)保責任承諾書
- 商業(yè)地產(chǎn)開發(fā)場地調(diào)研與風險評估合同協(xié)議
- 醫(yī)療服務市場調(diào)研合作合同
- 稅務籌劃與稅務審計常年服務協(xié)議
- 2025年安徽省中考數(shù)學試卷真題(含標準答案)
- 2025至2030年中國高純氧化鎂行業(yè)市場運行格局及前景戰(zhàn)略分析報告
- 婦女保健服務技術規(guī)范與診療常規(guī)
- 高級記者考試試題及答案
- 2025國家開放大學《高級財務會計》期末機考題庫
- R1快開門式壓力容器操作上崗證考試題及答案
- 貴州畢節(jié)中考試題及答案
- 道路人行天橋加裝電梯導則(試行)
- 中國廢舊輪胎橡膠粉項目投資計劃書
- 2025年河北省專技人員公需課《人工智能時代的機遇與挑戰(zhàn)-預訓練大模型與生成式AI》答案
- 2025-2030母嬰用品產(chǎn)業(yè)市場現(xiàn)狀供需分析及重點企業(yè)投資評估規(guī)劃分析研究報告
評論
0/150
提交評論