匯編語言程序設(shè)計(jì)_第1頁
匯編語言程序設(shè)計(jì)_第2頁
匯編語言程序設(shè)計(jì)_第3頁
匯編語言程序設(shè)計(jì)_第4頁
匯編語言程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第四章第四章 匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì)4.1 匯編語言與機(jī)器語言4.2 程序設(shè)計(jì)步驟與方法程序設(shè)計(jì)步驟 一、分析問題,確定算法 二、根據(jù)算法畫出程序流程圖三、根據(jù)流程圖編寫源程序。四、上機(jī)調(diào)試程序,直至實(shí)現(xiàn)預(yù)定的功能編程的方法和技巧 一、模塊化的程序設(shè)計(jì)方法 二、編程技巧 在進(jìn)行程序設(shè)計(jì)時(shí),應(yīng)注意以下事項(xiàng)及技巧: 盡量采用循環(huán)結(jié)構(gòu)和子程序。 對于通用子程序,除了用于存放子程序入口參數(shù)的寄存器外,子程序中用到的其他寄存器的內(nèi)容應(yīng)壓入堆棧(返回前彈出)。 對于中斷處理程序由于它的執(zhí)行是隨機(jī)的所以要保護(hù)好中斷現(xiàn)場。 匯編語言程序的基本結(jié)構(gòu) 一、順序程序 二、分支程序 三、循環(huán)程序 四、子程序

2、 匯編語言源程序的匯編 一、手工匯編 二、機(jī)器匯編 匯編語言匯編語言源程序源程序目標(biāo)程序目標(biāo)程序 匯編(匯編程序)匯編(匯編程序) 反匯編(反匯編程序)反匯編(反匯編程序) 4.3 偽 指 令 (1)ORG 匯編起始命令 (2)END 匯編結(jié)束命令 (3)EQU 賦值命令 (4)DB 定義字節(jié)命令 (5)DW 定義字命令 (6)DS 定義存儲空間命令 (7)BIT 位地址符號命令 4.4 MCS-51系統(tǒng)典型程序設(shè)計(jì)1、試編寫程序?qū)?nèi)部、試編寫程序?qū)?nèi)部RAM 50H6FH單元中的無符號數(shù)按照單元中的無符號數(shù)按照從小到大的次序排列,結(jié)果仍存放在原存儲空間。從小到大的次序排列,結(jié)果仍存放在原存儲

3、空間。 MOVMOV R7 R7,#1FH #1FH BB4BB4: MOVMOV A A,R7R7 MOV R3 MOV R3,A A CLR F0 CLR F0 MOV R0 MOV R0,#50H#50HBB2BB2: MOV AMOV A,R0R0 MOV R6,A MOV R6,A INC R0 INC R0 MOV A, R0 MOV A, R0 CLR C CLR C SUBB A, R6 SUBB A, R6 JNC BB1 JNC BB1 MOV A, R6 MOV A, R6 XCH A, R0 XCH A, R0 DEC R0 DEC R0 XCH A, R0 XCH A

4、, R0 INC R0 INC R0 SETB F0 SETB F0 BB1: DJNZ R3, B2BB1: DJNZ R3, B2 JNB F0, BB3 JNB F0, BB3 DJNZ R7, BB4 DJNZ R7, BB4BB3: RET BB3: RET 2、外部外部RAM 4000H401FH單元中的內(nèi)容為有符號數(shù)。試編寫單元中的內(nèi)容為有符號數(shù)。試編寫程序?qū)⑵渲械恼龜?shù)和負(fù)數(shù)分別送到內(nèi)部程序?qū)⑵渲械恼龜?shù)和負(fù)數(shù)分別送到內(nèi)部RAM80H和和0A0H單元開單元開始的地址,并分別記下正數(shù)和負(fù)數(shù)的個(gè)數(shù)送始的地址,并分別記下正數(shù)和負(fù)數(shù)的個(gè)數(shù)送60H和和61H單元。單元。 MOV R7MOV

5、R7,#20H#20HMOV DPTRMOV DPTR,#4000H#4000H MOV R0 MOV R0,#80H #80H MOV R1MOV R1,#0A0H #0A0H MOV 60HMOV 60H,#00H#00HMOV 61HMOV 61H,#00H #00H LOOPLOOP:MOVX AMOVX A,DPTRDPTR JB ACC.7 JB ACC.7,NEG1 NEG1 MOV R0 MOV R0,A A INC R0 INC R0 INC 60H INC 60H SJMP NEXT1 SJMP NEXT1 NEG1NEG1:MOV R1MOV R1,A A INC R1

6、INC R1 INC 61H INC 61H NEXT1NEXT1:INC DPTRINC DPTR DJNZ R7 DJNZ R7,LOOPLOOP RET RET 3 3、編寫程序統(tǒng)計(jì)某班學(xué)生的數(shù)學(xué)考試成績,已知該班有、編寫程序統(tǒng)計(jì)某班學(xué)生的數(shù)學(xué)考試成績,已知該班有3232名學(xué)名學(xué)生生,數(shù)學(xué)考試成績置內(nèi)部,數(shù)學(xué)考試成績置內(nèi)部RAM30H4FH,一個(gè)學(xué)生成績占一,一個(gè)學(xué)生成績占一個(gè)字節(jié),求出該班的平均成績置個(gè)字節(jié),求出該班的平均成績置60H。 MOV R7, #20HMOV R7, #20H MOV R0, #30H MOV R0, #30H MOV R2, #00H MOV R2, #00

7、H MOV R3, #00H MOV R3, #00H RE: MOV A, R2 RE: MOV A, R2 ADD A, R0 ADD A, R0 MOV R2, A MOV R2, A MOV A, R3 MOV A, R3 ADDC A, #00H ADDC A, #00H MOV R3, A MOV R3, A INC R0INC R0 DJNZ R7, RE DJNZ R7, RE MOV R7, #05H MOV R7, #05H RE1: CLR C RE1: CLR C MOV A, R3 MOV A, R3 RRC A RRC A MOV R3, A MOV R3, A M

8、OV A, R2 MOV A, R2 RRC A RRC A MOV R2, A MOV R2, A DJNZ R7, RE1 DJNZ R7, RE1 MOV 60H, R2 MOV 60H, R2 RET RET4、試編寫程序?qū)ⅰ⒃嚲帉懗绦驅(qū)?0H34H單元中壓縮的單元中壓縮的BCD碼數(shù)(每個(gè)字節(jié)碼數(shù)(每個(gè)字節(jié)存放兩個(gè)存放兩個(gè)BCD碼數(shù))轉(zhuǎn)換為碼數(shù))轉(zhuǎn)換為ASCII碼數(shù),并將結(jié)果存放在內(nèi)部碼數(shù),并將結(jié)果存放在內(nèi)部RAM 80H89H單元。單元。 MOV R0, #30H CHAG: ANL A, #0FHMOV R0, #30H CHAG: ANL A, #0FH MOV R1, #80H

9、 ADD A, #30H MOV R1, #80H ADD A, #30H MOV R7, #05H MOV R1,A MOV R7, #05H MOV R1,ARE: MOV A, R0 INC R1RE: MOV A, R0 INC R1 LCALL CHAG RET LCALL CHAG RET MOV A, R0 MOV A, R0 SWAP A SWAP A LCALL CHAG LCALL CHAG INC R0 INC R0 DJNZ R7,RE DJNZ R7,RE RET RET 5、試編寫程序統(tǒng)計(jì)外部、試編寫程序統(tǒng)計(jì)外部RAM 8000H80FFH單元中出現(xiàn)正數(shù)、單元中出現(xiàn)

10、正數(shù)、0和負(fù)數(shù)的個(gè)數(shù),并將統(tǒng)計(jì)結(jié)果依次送和負(fù)數(shù)的個(gè)數(shù),并將統(tǒng)計(jì)結(jié)果依次送40H、41H以及以及42H單元,單元,若無數(shù)據(jù)若無數(shù)據(jù)“0”,則向內(nèi)部,則向內(nèi)部RAM50H送送00H。 MOV DPTRMOV DPTR,#8000H ZERO0: INC 41H#8000H ZERO0: INC 41H MOV R7 MOV R7, #00H SJMP NEXT1 #00H SJMP NEXT1 MOV 40HMOV 40H,#00H NEGTIVE1: INC 42H#00H NEGTIVE1: INC 42HMOV 41HMOV 41H,#00H NEXT1: DJNZ R7#00H NEXT1

11、: DJNZ R7,LOOPLOOPMOV 42HMOV 42H,#00H MOV A#00H MOV A,41H 41H LOOP:LOOP: MOVX AMOVX A,DPTR JNZ NEXT2DPTR JNZ NEXT2INC DPTR MOV 50HINC DPTR MOV 50H, #00H#00H JZ ZERO0 NEXT2 JZ ZERO0 NEXT2: RETRETJB ACC.7JB ACC.7,NEGTIVE1 NEGTIVE1 INC 40HINC 40HSJMP NEXT1SJMP NEXT16、根據(jù)給出的、根據(jù)給出的X值,值,X值存放在值存放在20H單元,查找對應(yīng)的單元,查找對應(yīng)的Y值(雙值(雙字節(jié)

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論