




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、12021-12-72021-12-722021-12-73 2021-12-77 80H20H20HA80HR1 2000H30H30HDPTRA2005H05HA+。 MOV AMOV A,RnRn;A (A (RnRn) )MOV AMOV A,directdirect;AA(directdirect)MOV AMOV A, RiRi ;AA(( (RiRi)) )MOV AMOV A,#data#data;A #dataA #dataMOV MOV RnRn,A A;RnRn (A) (A)MOV MOV RnRn,directdirect;RnRn (directdirect)MOV
2、 MOV RnRn,#data#data;RnRn #data #dataMOV directMOV direct,A A;directdirect (A)(A)MOV directMOV direct,RnRn;directdirect ( (RnRn) )MOV directMOV direct,direct direct ;directdirect (directdirect)MOV directMOV direct, RiRi;directdirect ( ((RiRi)) )MOV directMOV direct,#data#data;directdirect #data#data
3、(A)(A)MOV MOV RiRi,directdirect;(;(RiRi) (directdirect)MOV MOV RiRi,#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 MOVX RiRi,A A;(;(RiRi
4、) (A)(A) (1 1)將)將R0R0的內容送的內容送R6R6中中程序為:程序為:MOV AMOV A,R0R0MOV R6MOV R6,A A(2 2)將片內)將片內RAM 30HRAM 30H單元的內容送片外單元的內容送片外60H60H單元中單元中程序為:程序為:MOV AMOV A,30H30HMOV R0MOV R0,#60H#60HMOVX R0MOVX R0,A A(3 3)將片外)將片外RAM 1000HRAM 1000H單元的內容送片內單元的內容送片內20H20H單元中單元中程序為:程序為:MOV DPTRMOV DPTR,#1000H#1000HMOV AMOV A,DP
5、TRDPTRMOV 20HMOV 20H,A A(4 4)將)將ROM 2000HROM 2000H單元的內容送片內單元的內容送片內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 A RnRnXCH A XCH A ,directdirect;AdirectAdirectXCH AXCH A, RiRi ;AA(RiRi)XCHD AXCHD A, RiRi;A A0 03 3
6、(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) + (A (A) + (RnRn) )ADD AADD A,directdirect;A (A) +A (A) +(directdirect)ADD AADD A, RiRi;A (A) +A (A) +(( (RiRi) ))ADD AADD A,#data#data;A (A) + #dataA (A) + #dataADDC AADDC
7、A,RnRn;A (A) + (A (A) + (RnRn) + C) + 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 INC RnRn;RnRn ( (RnRn) + 1) + 1INC directINC direct;directdirect
8、 (directdirect)+ 1+ 1INC INC RiRi;(;(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) A (A) ( (RnRn) - C) - CSUBB ASUBB A,directdirect ;A (A) -A (A) -(directdir
9、ect)- C- CSUBB ASUBB A, RiRi;A (A) -A (A) -(RiRi)- C- CSUBB ASUBB A,#data#data;A (A) - #data A (A) - #data C CDEC ADEC A;A (A) - 1A (A) - 1DEC DEC RnRn;RnRn ( (RnRn) - 1) - 1DEC directDEC direct;direct direct (directdirect)- 1- 1DEC DEC RiRi;(;(RiRi)(RiRi)- 1- 1 。在在 MOV AMOV A,R3R3ADD AADD A,R2R2DA
10、ADA AMOV R5MOV R5,A A ANL AANL A,RnRn A(A) A(A) ( (RnRn) )ANL AANL A,direct A (A) direct A (A) (directdirect)ANL AANL A, RiRi A (A) 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(direc
11、tdirect) #data#dataORL AORL A,RnRn A (A) A (A) ( (RnRn) )ORL AORL A,direct A (A) direct A (A) (directdirect)ORL AORL A, RiRi A (A) 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
12、(direct) #data#dataXRL AXRL A,RnRn A (A) A (A) ( (RnRn) )XRL AXRL A,direct A (A) direct A (A) (directdirect)XRL AXRL A, RiRi A (A) 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 direct
13、direct) #data#data MOV AMOV A,R0R0CPL ACPL AMOV R0MOV R0,A A 【例例3-93-9】若累加器若累加器A A中的內容為中的內容為10001011B10001011B,CY=0CY=0,則執行,則執行RLC ARLC A指令后累加器指令后累加器A A中的內容為中的內容為0001011000010110,CY=1CY=1。 LJMP addr16LJMP addr16;PC addr16PC addr16 例例3-103-10 ORG 0000H ORG 0000H LJMP START LJMP START ORG 0030H ORG 00
14、30HSTART: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 SJMP relrel;PC (PC) + 2 + PC (PC) + 2 + relrel JMP A+DPTR JMP A+DPTR;PC (A) + (DPTR)PC (A) + (DPTR) JZ JZ relrel ;若若A=0A=0,則,則PC (PC) + 2 + PC (PC) + 2 + relrel,
15、否則,否則,PC (PC) + 2PC (PC) + 2 JNZ JNZ relrel ;若若A A 0 0,則,則PC (PC) + 2 + PC (PC) + 2 + relrel,否,否則,則,PC (PC) + 2 PC (PC) + 2 。;若;若A=dataA=data,則,則PC (PC) + 3PC (PC) + 3,不轉移,繼續執行。若,不轉移,繼續執行。若AdataAdata,則,則C=0C=0,PC (PC) + PC (PC) + 3 + 3 + relrel,轉移。若,轉移。若AdataAdatadata,則,則C=0C=0,PC (PC) + 3 + PC (PC)
16、 + 3 + relrel,轉移。若(,轉移。若(RnRn)datadata)data,則,則C=0C=0,PC (PC) + 3 + PC (PC) + 3 + relrel,轉移。若,轉移。若(RiRi)data)directAdirect,則,則C=0C=0,PC PC (PC) + 3 + (PC) + 3 + relrel,轉移。,轉移。若若AdirectAR1R0R1轉轉BIG1MOV A, R1MOV A, R1MOV R0, AMOV R0, ABIG1:MOV DPTR, #8766HBIG1:MOV DPTR, #8766H MOVX A, DPTR MOVX A, DPT
17、R MOV R2, A MOV R2, A CLR C CLR C SUBB A, R0 SUBB A, R0 JC BIG2 ;R0R2 JC BIG2 ;R0R2轉轉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), ,編寫一程序,判定該成績所屬的級別,放入寄存器編寫一程序,判定該成績所屬的級別,放入寄存器B
18、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,則跳轉到,
19、則跳轉到 LONEGREE LONEGREEMOVX A, DPTRMOVX A, DPTRMOV A, R0MOV A, R0CLR CCLR CSUBB A, #80SUBB A, #80JNC LTWOGREE ;JNC LTWOGREE ;如果大于等于如果大于等于8080,則跳轉到,則跳轉到LTWOGREELTWOGREEMOV A, R0MOV A, R0CLR CCLR CSUBB A, #70SUBB A, #70JNC LTHREEGREE ;JNC LTHREEGREE ;如果大于等于如果大于等于7070,則跳轉到,則跳轉到THREEGREETHREEGREEMOV A, R
20、0MOV A, R0CLR CCLR CSUBB A, #60SUBB A, #60JNC LFOURGREE ;JNC LFOURGREE ;如果大于等于如果大于等于6060,則跳轉到,則跳轉到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 LENDLTHREEGREE:MOV
21、 B, #3LTHREEGREE:MOV B, #3SJMP LENDSJMP LENDLFOURGREE:MOV B, #4LFOURGREE:MOV B, #4SJMP LENDSJMP LENDENDEND從以上的程序可以看出,如果從以上的程序可以看出,如果A A寄存器的成績值小于寄存器的成績值小于6060,那么要做四個減法和條件判斷才能最后得到所需要的等級值那么要做四個減法和條件判斷才能最后得到所需要的等級值,所以這種多分支的程序結構的效率是比較低的。為了提高,所以這種多分支的程序結構的效率是比較低的。為了提高多分支程序的效率,往往采用地址表查詢等方式來實現,這多分支程序的效率,往往采
22、用地址表查詢等方式來實現,這將在后面進行分析。將在后面進行分析。循環是為了重復執行一個程序段。在循環是為了重復執行一個程序段。在5151指令系統的匯編指令系統的匯編語言中,語言中,循環次數固定的循環常常采用循環次數固定的循環常常采用DJNZDJNZ指令來實現。指令來實現。在在循環初始化時,將循環次數放置于某個通用寄存器中或某個循環初始化時,將循環次數放置于某個通用寄存器中或某個內部內部RAMRAM單元中;在循環結束處放置一條單元中;在循環結束處放置一條DJNZDJNZ,可同時完成對,可同時完成對循環計數單元的減循環計數單元的減1 1和條件跳轉功能(如果循環計數單元不為和條件跳轉功能(如果循環計
23、數單元不為0 0,則跳轉到循環程序段的起始處)。,則跳轉到循環程序段的起始處)。對于循環次數依賴于循環體中執行結果的循環程序,則對于循環次數依賴于循環體中執行結果的循環程序,則需要其他類型的有條件跳轉指令。需要其他類型的有條件跳轉指令。 程序如下:程序如下: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 ACC.7,
24、 NEXT ;如果如果A A最高位為最高位為0 0,則,則 ; ;大于等于大于等于0 0,不計入,不計入INC R0INC R0NEXT:DJNZ R1, LOOP ;NEXT:DJNZ R1, LOOP ;將將R1R1減減1 1,如果大于,如果大于0 0表明循環繼續表明循環繼續 SJMP $ SJMP $ END END ORG 0000HORG 0000HMOV R0, #-1 ;MOV R0, #-1 ;MOV DPTR, #3000HMOV DPTR, #3000HL00P:L00P:MOVX A, DPTR ;MOVX A, DPTR ;將當前字符的將當前字符的ASCIIASCII碼
25、送入碼送入A A寄存器寄存器INC DPTRINC DPTRINC R0 INC R0 CJNE A, #0, LOOP ;CJNE A, #0, LOOP ;如果當前字符的如果當前字符的ASCIIASCII碼不為碼不為0 0,循,循環繼續環繼續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 ;清除清除CY
26、CY標志位標志位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 ;查表得到溫度值的高字節查表得到溫度值的高字節MOV R2, A ;MOV R2, A ;將溫度值的高字節置于將溫度值的高字節置于R2R2寄存器寄存器MOV A, R4 ;MOV A, R4 ;恢復索引值恢復索引值A AINC A ;INC A ;索引值索引值A A加加1 1MOVC A, A+DPTR ;MOVC A, A+DPTR ;查表得到溫度值的低字節查表得到溫度值的低字節MOVC R3, A ;MOVC R3, A ;將溫度值
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- JG/T 3053-1998可撓金屬電線保護套管
- JG/T 192-2006建筑門窗反復啟閉性能檢測方法
- JG 5058-1995施工升隆機防墜安全器
- GB/T 42239.1-2022洗滌用酶制劑第1部分:堿性蛋白酶
- DZ/T 0276.26-2015巖石物理力學性質試驗規程第26部分:巖體變形試驗(承壓板法)
- DZ/T 0077-1993石油和天然氣、煤田地震勘探圖式、圖例及用色標準
- CJ/T 467-2014半即熱式換熱器
- CJ/T 432-2013生活垃圾焚燒廠垃圾抓斗起重機技術要求
- CJ/T 404-2012防氣蝕大壓差可調減壓閥
- CJ/T 362-2011城鎮污水處理廠污泥處置林地用泥質
- 項目管理與評估試題及答案
- 2024年安徽省淮南市田家庵區小升初數學試卷(空白卷)
- 航海英語閱讀與寫作能力測試考核試卷
- 環境設計人才培養方案
- 龍巖市2025年高中高三畢業班五月教學質量檢政治試卷(含答案)
- 自動跟蹤定位射流滅火系統設計與實施及驗收標準化研究
- 巴黎奧運會試題及答案
- 城市道路交通標志和標線設置規范
- 高二語文期末復習重點知識歸納總結
- 大數據與商業決策的應用試題及答案
- 南京二模 南京市2025屆高三年級第二次模擬考試 數學試卷
評論
0/150
提交評論