版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、匯編語言程序設(shè)計(jì)第四章4.0 概述4.1 匯編語言程序格式4.2 MASM中的表達(dá)式4.3 偽指令語句4.4 程序設(shè)計(jì)方法4.5 DOS系統(tǒng)功能調(diào)用4.4 程序設(shè)計(jì)方法一、匯編語言源程序設(shè)計(jì)基本步驟 1、明確任務(wù),確定算法。 2、畫流程圖。 3、分配存儲(chǔ)空間及工作單元 分析需要定義的段、變量、變量類型、長度;規(guī)劃各寄存器的使用等 4、編寫源程序(.ASM)、匯編(.OBJ)、連接(.EXE)。 5、程序調(diào)試。主要采用DEBUG來調(diào)試。開始執(zhí)行框判斷二、基本程序結(jié)構(gòu)順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)子程序結(jié)構(gòu)DATA SEGMENT DATA ENDSCODE SEGMENTASSUME CS:CODE,
2、 DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AH,4CH INT 21HCODE ENDS END START 順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)子程序結(jié)構(gòu)順序結(jié)構(gòu)順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)子程序結(jié)構(gòu)兩個(gè)分支YN三個(gè)分支YYNN順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)子程序結(jié)構(gòu)循環(huán)初始設(shè)置循環(huán)體循環(huán)條件判斷?YNYN循環(huán)初始設(shè)置循環(huán)體循環(huán)條件判斷?順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)子程序結(jié)構(gòu)code SEGMENT begin: CALL sub1 CALL sub2 MOV AH, 4CH INT 21Hsub1 PROC RETsub1 ENDPsub2 PROC RETsub2 ENDP
3、code ENDS END begin 1、順序結(jié)構(gòu)例1:已知當(dāng)前數(shù)據(jù)段中有一個(gè)十進(jìn)制數(shù)字09的七段代碼表,其數(shù)值依次為40H、79H、24H、30H、19H、12H、02H、78H、00H、18H。要求用XLAT指令將十進(jìn)制數(shù)57轉(zhuǎn)換成相應(yīng)的七段代碼值,存到BX寄存器中,編寫完整的匯編源程序。分析:先求5的七段代碼值,再求數(shù)字7的; 需定義數(shù)據(jù)段、七段代碼表:TAB,字節(jié)變量; 關(guān)鍵指令XLAT,表偏移地址放BX,原數(shù)字放入AL;三、程序舉例源程序清單:DATA SEGMENT TAB DB 40H,79H,24H,30H DB 19H,12H,02H,78H DB 00H,18HDATA
4、ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX (轉(zhuǎn)右) MOV AH,4CH ;返回DOS INT 21HCODE ENDS END START MOV BX,OFFSET TAB MOV AL,5 XLAT MOV AH,AL MOV AL,7 XLAT MOV BX,AX2、分支結(jié)構(gòu)程序根據(jù)不同條件選擇不同處理方法三、程序舉例例2:求內(nèi)存中數(shù)X的絕對值,并送回原處2.根據(jù)以上分析畫出流程框圖3.根據(jù)流程圖確定所用寄存器,并編寫源程序; 需定義數(shù)據(jù)段、變量X、使用寄存器AL1.分析:XX-0X 0X 0|
5、X|= 程序框圖及清單:開始從內(nèi)存取數(shù)X0?對X求負(fù)并回送 結(jié)束YN DATA SEGMENT X DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA ; MOV DS,AX將數(shù)據(jù)段段地址送入DSMOV AL,XCMP AL,00H ;與0比較JGE RETURNNEG AL ;求負(fù)MOV X,AL ;回送結(jié)果RETURN:MOV AH,4CH ;返回DOS INT 21HCODE ENDS END START ;結(jié)束源程序3、循環(huán)結(jié)構(gòu)兩種形式:1)“先執(zhí)行,后判斷” :進(jìn)入循環(huán)后至少要執(zhí)行一次循環(huán)體,再判斷循
6、環(huán)是否結(jié)束。 -用于循環(huán)次數(shù)固定的程序(簡單)(掌握)2)“先判斷,后執(zhí)行”:進(jìn)入循環(huán)后,先判斷循環(huán)結(jié)束條件,再?zèng)Q定是否執(zhí)行循環(huán)體,可能循環(huán)體一次也不執(zhí)行。 -用于循環(huán)次數(shù)不確定的程序三、程序舉例(a)“先執(zhí)行,后判斷”結(jié)構(gòu)(b)“先判斷,后執(zhí)行”結(jié)構(gòu)初始化部分入口循環(huán)體修改參數(shù)出口循環(huán)條件?YN初始化部分入口循環(huán)體修改參數(shù)出口YN循環(huán)條件?兩種循環(huán)結(jié)構(gòu)都包括四部分:1)初始化-設(shè)置計(jì)數(shù)值、地址指針2)循環(huán)體 -循環(huán)部分的核心:循環(huán)的全部指令3)修改參數(shù)-改地址指針,為下次循環(huán)做準(zhǔn)備4)循環(huán)控制-修改計(jì)數(shù)值,進(jìn)行判斷(LOOP)例3:將附加段起始地址為DA1的100個(gè)字節(jié)的存儲(chǔ)區(qū)內(nèi)容清0。DA
7、TA SEGMENT DA1 DB 100 DUP(?)DATA ENDSCODE SEGMENT ASSUME CS:CODE,ES:DATASTART:MOV AX,DATA MOV ES,AX (轉(zhuǎn)右邊) MOV AH,4CH ;返回DOS INT 21HCODE ENDS END START MOV AL,00H MOV CX,0064H LEA BX,DA1 ;初始化LP:MOV BX,AL ;循環(huán)體 INC BX ;修改參數(shù) LOOP LP ;循環(huán)控制ES: 例4:已知數(shù)據(jù)區(qū)BUF有10個(gè)字節(jié)型帶符號(hào)數(shù),找出其中的最小數(shù)存放到MIN單元中,編寫完整的匯編程序(循環(huán)分支結(jié)構(gòu)) DAT
8、A SEGMENT BUF DB 10 DUP(?) MIN DB 00H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX(轉(zhuǎn)下頁) MOV AH,4CH INT 21H CODE ENDS END START MOV BX,0 MOV CX,9 MOV AL,BUFBX ;初始化 LP:CMP AL,BUFBX+1 ;循環(huán)體 JLE NEXT MOV AL,BUFBX+1 NEXT: INC BX ;修改參數(shù) LOOP LP ;循環(huán)控制 MOV MIN,AL 例5:統(tǒng)計(jì)一字符串BUF(長度小于
9、256)中的大寫字母、數(shù)字及其他字符的個(gè)數(shù),分別存入LETTR、DIGIT和OTHER單元。(循環(huán)分支結(jié)構(gòu)) DATA SEGMENT BUF DB 123SAFASFLXCvfv%¥&% COUNT EQU $-BUF LETTER DB 0 DIGIT DB 0 OTHER DB 0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX(轉(zhuǎn)下頁) MOV AH,4CH INT 21H CODE ENDS END START MOV CX,COUNT MOV BX,00H MOV DX,0 ;初始化LP: MOV AL,BUFBX ;循環(huán)體 CMP AL,30H JB NEXT CMP AL,39H JA ABC INC DH JMP NEXTABC: CMP AL,41H JB NEXT CMP AL,5AH(轉(zhuǎn)右邊) JA NEXT INC DLNEXT:INC BX LOOP LP MO
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度首付分期購房借款合同范本規(guī)定6篇
- 年度線性低密度聚乙烯產(chǎn)業(yè)分析報(bào)告
- 年度吸污車產(chǎn)業(yè)分析報(bào)告
- 2025年度樓房建筑工程合同糾紛解決協(xié)議4篇
- 二零二四年養(yǎng)老社區(qū)三方物業(yè)服務(wù)委托合同文本3篇
- 二零二五年度船舶租賃船運(yùn)輸協(xié)議合同3篇
- 二零二五年酒店客房家具更新?lián)Q代合同3篇
- 2025年度智能交通信號(hào)系統(tǒng)安裝與維護(hù)承包協(xié)議合同范本3篇
- 二零二五版教育培訓(xùn)機(jī)構(gòu)合同標(biāo)的課程開發(fā)與教學(xué)質(zhì)量承諾3篇
- 2025年度生物質(zhì)能發(fā)電項(xiàng)目合作協(xié)議合同范本
- GB/T 33688-2017選煤磁選設(shè)備工藝效果評定方法
- GB/T 304.3-2002關(guān)節(jié)軸承配合
- 漆畫漆藝 第三章
- CB/T 615-1995船底吸入格柵
- 光伏逆變器一課件
- 貨物供應(yīng)、運(yùn)輸、包裝說明方案
- (完整版)英語高頻詞匯800詞
- 《基礎(chǔ)馬來語》課程標(biāo)準(zhǔn)(高職)
- IEC61850研討交流之四-服務(wù)影射
- 《兒科學(xué)》新生兒窒息課件
- 材料力學(xué)壓桿穩(wěn)定
評論
0/150
提交評論