課堂匯編程序_第1頁(yè)
課堂匯編程序_第2頁(yè)
課堂匯編程序_第3頁(yè)
課堂匯編程序_第4頁(yè)
課堂匯編程序_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、一_內(nèi)存20H7FH清零;*;函數(shù)功能:20H7FH 單元數(shù)據(jù)清0;*ORG 000HMOV A,#01H ;需要清的數(shù)值MOV R1,#20H ;清數(shù)據(jù)的首地址20HMOV R2,#60H ;清數(shù)據(jù)所需要的次數(shù)LOOP:MOV R1,A ;把所需要清的數(shù)據(jù),間接尋址INC R1 ;首地址累加DJNZ R2,LOOP ;末地址7FH 循環(huán)-1 不為0 則轉(zhuǎn)移循環(huán)60H次LJMP $八_從#1000H起統(tǒng)計(jì)大等小#80H個(gè)數(shù)放R3R4R5;*;函數(shù)功能:從外部存儲(chǔ)單元(1000H開(kāi)始,外部輸入數(shù)據(jù); 統(tǒng)計(jì)大于#80H的數(shù)據(jù)個(gè)數(shù)存放在R3; 統(tǒng)計(jì)等于#80H的數(shù)據(jù)個(gè)數(shù)存放在R4; 統(tǒng)計(jì)小于#80H

2、的數(shù)據(jù)個(gè)數(shù)存放在R5;*ORG 000HMOV DPTR,#1000H ;外部?jī)?nèi)存地址XDATAMOV R3,#00H ;存放>#80H 的個(gè)數(shù)MOV R4,#00H ;存放=#80H 的個(gè)數(shù)MOV R5,#00H ;存放<#80H 的個(gè)數(shù);* 讀取外部存儲(chǔ)數(shù)據(jù)1000H起*LOOP1:MOVX A,DPTR ;MOVX 外部數(shù)據(jù)存儲(chǔ)由外部輸入JZ OVER ;判斷累加器A中的數(shù)據(jù)是否為0,為0 則轉(zhuǎn)移LOOP3:CJNE A,#80H,LOOP4 ;累加器A中的數(shù)據(jù)與#80H相比不相等則轉(zhuǎn)移INC R4 ;如果數(shù)據(jù)=#80H 則R4+1LJMP LOOP2 ;讀取下一個(gè)數(shù)據(jù)LOO

3、P4:JC LOOP5 ;JC 進(jìn)位標(biāo)志位為1則轉(zhuǎn)移INC R3 ;cy=0 A > #80H R3+1LJMP LOOP2LOOP5:INC R5 ;讀取下一個(gè)數(shù)據(jù);cy=1 A < #80H R5+1LOOP2:INC DPTR ;讀取下一個(gè)數(shù)據(jù)LJMP LOOP1OVER:LJMP $;*;函數(shù)功能:外部輸入數(shù)據(jù)30H 3FH; 從大到小排序;*LOOP:ORG 000HCLR 00H ;換位標(biāo)志清零MOV R0,#30H ;排序的起始位置MOV R3,#0FH ;排序的次數(shù)(N-1次LOOP1:MOV A,R0 ;取第一個(gè)數(shù)INC R0 ;地址+1MOV 21H,R0 ;取

4、第二個(gè)數(shù)據(jù)CJNE A,21H,LOOP2 ;比較兩個(gè)數(shù)的大小*注意*判斷的大小的時(shí)候大于和等于Cy位都為0LOOP2:JNC LOOP3 ;進(jìn)位標(biāo)志位為0則轉(zhuǎn)移也就是比較大小R0<21H則交換R021H取下一組數(shù)據(jù)MOV R0,A ;如果cy=0 R0<21H 開(kāi)始交換位置DEC R0 ;因?yàn)槭茿 B B C 比較R0已經(jīng)+1 所以現(xiàn)在要-1MOV R0,21HSETB 00H ;交換標(biāo)志位清1INC R0 ;開(kāi)始取下組數(shù)據(jù)比較LOOP3:DJNZ R3,LOOP1 ;判斷是否循環(huán)(N-1次JB 00H,LOOP ;判斷交換標(biāo)志位是否為1 為1則再次循環(huán)判斷;*;函數(shù)功能:外部輸

5、入數(shù)據(jù)30H 3FH; 從小到大排序;*LOOP:ORG 000HCLR 00H ;換位標(biāo)志清零MOV R0,#30H ;排序的起始位置MOV R3,#04H ;排序的次數(shù)(N-1次LOOP1:MOV A,R0 ;取第一個(gè)數(shù)INC R0 ;地址+1MOV 21H,R0 ;取第二個(gè)數(shù)CJNE A,21H,LOOP2 ;判斷兩個(gè)數(shù)據(jù)的大小不相等則轉(zhuǎn)移判斷cy位LCALL LOOP3 ;若相等則無(wú)視直接取下個(gè)數(shù)據(jù)做比較LOOP2:JC LOOP4 ;判斷cy位等1則轉(zhuǎn)移也就A < 21H 數(shù)據(jù),無(wú)需換位,直接取下一個(gè)數(shù)作比較MOV R0,A ;cy=0 說(shuō)明A>21H數(shù)據(jù)所以要開(kāi)始交換數(shù)

6、據(jù)DEC R0 ;兩數(shù)據(jù)交換需要地址-1 否則沒(méi)法交換MOV R0,21H ;SETB 00H ;交換標(biāo)志位置1LOOP3:INC R0 ;數(shù)據(jù)地址+1LOOP4:DJNZ R3,LOOP1 ;判斷(N-1次是否比較完JB 00H,LOOP ;判斷交換標(biāo)志位是否為1十四_BCD轉(zhuǎn)BIN;*; 函數(shù)功能:BCD 轉(zhuǎn)化BIN; BCD放到30H 31H 轉(zhuǎn)化的BIN 放到32H 33H;*;30H=1200(BCD31H=34(BCDORG 000HMOV 32H,#00H ;存放BIN高8位MOV 33H,#00H ;存放BIN低8位MOV A,30H ;取30H里的數(shù)據(jù)ANL A,#0F0H

7、;與邏輯SWAP A ;A里的數(shù)據(jù)高低字節(jié)交換,剩下高四位JZ LOOP ;累加器(A也就是千位為0 則轉(zhuǎn)移MOV R7,A ;取到的千位放到R7MOV B,#0E8H ;03E8代表BCD碼的1000 0E8=232MUL AB ;千位*232 低八位放到A里高八位放到B里(超過(guò)256的情況MOV 33H,A ;低八位MOV 32H,B ;高八位MOV A,R7 ;千位的高四位MOV B,#03H ;03E8才代表1000雙字節(jié)需要拆開(kāi)算MUL AB ;A*BADD A,32H ;把*0E8得到的數(shù)+*03得到的數(shù)加一起才算完整的千位MOV 32H,ALOOP:MOV A,30H ; ANL

8、 A,#0FH ;取30H的低四位MOV B,#64H ;64H=100MUL AB ;A*BADD A,33H ;33H加到A上MOV 33H,AMOV A,B ;把乘積的高四位給AADDC A,32H ;帶進(jìn)位32H加到A上MOV 32H,A ;A給32HMOV A,31H ;31H的(BCD低八位給ASWAP A ; ANL A,#0FH ;取低四位MOV B,#10 ;10MUL AB ;A*10MOV B,A ;把乘積的低四位給BMOV A,31H ;取31H數(shù)據(jù)給AANL A,#0FH ;取低四位ADD A,B ;把B里面的數(shù)據(jù)加給AADD A,33H ;33H加到A上(33H是個(gè)

9、位MOV 33H,A ;MOV A,32H ; 判斷個(gè)位十位是否有進(jìn)位所以判斷一下ADDC A,#00H ;MOV 32H,A ;LJMP $十五_BIN 轉(zhuǎn) BCD.ASM ;* ;函數(shù)功能: BIN 轉(zhuǎn)換 BCD 存放到 30H 31H ; (最大能表示 255 FF) ;* ORG 000H MOV A,R3 ;外部數(shù)據(jù)存入 ;64H=100 除數(shù)為 100 ;A/B 商放到 A 余數(shù)放到 B ;把百位的商放到 30H 里面 ;把 B 里面的余數(shù)給 A ;除數(shù)為 10 ;余數(shù)/10 商放到 A 中,余數(shù)放到 B 中 ;交換 A 的高 4 位和低 4 位 ;B 加到 A 上 ;最后把 A

10、里面的數(shù)據(jù)給 31H MOV B,#64H DIV AB MOV 30H,A MOV A,B MOV B,#10 DIV AB SWAP A ADD A,B MOV 31H,A LJMP $ 四_1+.+99 放到 R6R7 中(BCD) ;* ;函數(shù)功能: (1)從 20H 起開(kāi)始賦值 1 2 3 · · · ·99 ; (2) 199 累加求和放到 R6 R7 中 R6=49 R7=50 ; ;日期:2016.09.22 ;* ORG 000H MOV MOV MOV LOOP: A,#01H ;20H 起需要賦值 0199 R1,#20H ;賦值的首地址 R2,#99 ;循環(huán) 99 次 在這里是個(gè)起始值 MOV R1,A ;間接尋址賦值 INC R1 ;地址 20H 起+1 ADD A,#01H ;累加賦值 DA A ;10 進(jìn)制轉(zhuǎn)換 DJNZ R2,LOOP ;* ;函數(shù)功能(2: 199 累加部分 ;* MOV R1,#20H MOV MOV MOV L: MOV A,R7 ADD A,R1 DA A MOV R7,A INC R1 ;低 8 位數(shù)據(jù)給 A ;間接尋址得到的值加給 A ;十進(jìn)制轉(zhuǎn)換 ;得到的十進(jìn)制數(shù)放到低 8 位上 ;數(shù)據(jù)地址+1 R5,#99 ;循環(huán)累加 99 次 R6,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論