![微機系統(tǒng)與接口課件:CH3_2第三章匯編語言程序設(shè)計(二)_第1頁](http://file4.renrendoc.com/view/b1a47e02b7f4da11b24304d6d0b20705/b1a47e02b7f4da11b24304d6d0b207051.gif)
![微機系統(tǒng)與接口課件:CH3_2第三章匯編語言程序設(shè)計(二)_第2頁](http://file4.renrendoc.com/view/b1a47e02b7f4da11b24304d6d0b20705/b1a47e02b7f4da11b24304d6d0b207052.gif)
![微機系統(tǒng)與接口課件:CH3_2第三章匯編語言程序設(shè)計(二)_第3頁](http://file4.renrendoc.com/view/b1a47e02b7f4da11b24304d6d0b20705/b1a47e02b7f4da11b24304d6d0b207053.gif)
![微機系統(tǒng)與接口課件:CH3_2第三章匯編語言程序設(shè)計(二)_第4頁](http://file4.renrendoc.com/view/b1a47e02b7f4da11b24304d6d0b20705/b1a47e02b7f4da11b24304d6d0b207054.gif)
![微機系統(tǒng)與接口課件:CH3_2第三章匯編語言程序設(shè)計(二)_第5頁](http://file4.renrendoc.com/view/b1a47e02b7f4da11b24304d6d0b20705/b1a47e02b7f4da11b24304d6d0b207055.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第三章 匯編語言程序設(shè)計(二) 格式# 偽指令# DOS/BIOS調(diào)用 (簡單了解) 重點:數(shù)據(jù)結(jié)構(gòu)表示 變量、指針 程序結(jié)構(gòu) 程序流控制(條件、分支、循環(huán)) 程序設(shè)計方法 Assembly Language Programming(2)1 匯編語言源程序格式(例) STACK1 SEGMENT PARA STACK STACK DB 512 dup(?) ;定義堆棧段STACK1 512字節(jié)STACK1 ENDS DATA SEGMENT ;定義數(shù)據(jù)段DATA MESSAGE DB This A Sample Program, LFCR$ DB 0DH,0AH,$ AnyDATA DW 10
2、0,. DATA ENDS ;數(shù)據(jù)段DATA結(jié)束 CODE SEGMENT ;定義代碼段CODE ASSUME CS:CODE,DS:DATA; 說明匯編程序活動段范圍段名段說明保留字標號.2862匯編語言例程 (續(xù)1 )MAIN PROC FAR ;MS-DOS 模板語句START:PUSH DS XOR AX,AX PUSH AX ;保存返回指針 DS:0START1:MOV AX,DATA MOV DS,AX LEA BX,MESSAGELOOP1:CMP BYTE PTR BX,$ ; 24H JZ NEXT ;是結(jié)束符 CALL PRINT_A CHAR ;輸出該字符 INC BX
3、JMP SHORT LOOP1 ; 繼續(xù)3匯編語言例程 (續(xù)2 )NEXT: RET ;返回OSMAIN ENDPPRINT_A_CHAR PROC MOV AH,5 DOS功能調(diào)用5=打印機輸出 MOV DL,BX DL中為打印輸出的字符; INT 21H 打印輸出一字符 RETPRINT_A_CHAR ENDP .CODE ENDS END START;匯編結(jié)束,運行從START開始子程序 NEAR4偽操作命令-合理設(shè)計數(shù)據(jù)結(jié)構(gòu)BV1 DB 30, 20H, 111110BBV2 DB 3 DUP(?) BV3 DB This is a exampleBV4 DB .WV1 DW BV1,
4、BV2,BV3 ;近指針變量WV2 DD BV4,. ;遠指針變量DWV1 DD WV1,WV2,. DP1 DD PRC1,PRC2 ;PRC1,PRC2為過程名BV2L EQU BV4-BV3 MOV BX,WV1+4 MOV AL, BX ; AL=? JMP FAR PTR DP1+4; ;執(zhí)行?5偽操作命令例1分析MYDATA SEGMENT AT 8A00HBV1 DB 30,20H,111110BBV2 DB 3 DUP(20H) DB ?,?BV3 DB This is a example$ BV4 DB It is a Problem$ WV1 DW BV1,BV2,BV3
5、WV2 DW BV4DWV1 DD WV1,WV2DW2 DD .MYDATA ENDSBV2的地址=?DW2的地址=?8A00:0003H8A00:003AH;- 0000;- 0003H;- 0006H;- 0008H;- 001AH;- 002AH;- 0030H;- 0032H;- 003AH6偽操作命令例2分析CODE SEGMENT PRC1 PROC FAR ;8B00:0000:PRC1 ENDPPRC2 PROC FAR ;8B00:2C20:PRC2 ENDPDP1 DD PRC1,PRC2 ;8B00:3000 ASSUME CS:CODE, DS:DATAJMP FAR
6、 PTR DP1+4; 00,00,00,8B,20,2C,00,8B8B00:2C20=JMP FAR PTR CS:3004H;DP1 內(nèi)容=?目標地址=?7匯編語言程序設(shè)計方法回顧 步驟:分析、建模-算法 -單任務(wù)同其它語言:判斷框 條件?終止框過程/執(zhí)行框起始/準備框 流程圖各框的表示法編程-調(diào)試(DEBUG版)-運行/發(fā)行(Release)版 設(shè)計方法:自頂向下,逐步細化,層層分解具體小任務(wù); 模塊化程序設(shè)計:相對獨立、功能單一、I/O關(guān)系明確8匯編語言程序設(shè)計結(jié)構(gòu)質(zhì)量評估 內(nèi)存容量(效率)、速度、源代碼(復(fù)雜性)、可維護性、可靠性基本結(jié)構(gòu) (單任務(wù)):順序、分支、循環(huán)語句1語句2語
7、句3語句nMOV AX,100MOV BX,200MOV CX,8000ADD BX, CXCMP BX,1000JZ NEXT9匯編語言程序設(shè)計分支結(jié)構(gòu)基本結(jié)構(gòu) (單任務(wù)):順序、分支、循環(huán)程序段條件?N程序段1程序段2條件?NY CMP AL,100 JZ NEXT MOV CX,2000NEXT: MOV CX,3000 CMP AL,100 JZ NEXT1 JMP NEXT2NEXT1: MOV CX,3000NEXT2:IF C IF C ELSE 10匯編語言程序設(shè)計循環(huán)結(jié)構(gòu)基本結(jié)構(gòu) (單任務(wù)):順序、分支、循環(huán)N程序段1結(jié)束循環(huán)?Y計數(shù)循環(huán)條件循環(huán)循環(huán)體結(jié)束?Nfor(i=0;
8、i100;i+)do . while(. )while (.) do . 11匯編語言程序設(shè)計結(jié)構(gòu)過程(子程序)反復(fù)使用程序段,簡化設(shè)計、減少程序空間開銷、易讀、易維護調(diào)試。-函數(shù), 方法 ENTRY/ EXIT/USED指明傳遞和保護(變量/寄存器)問題 保護現(xiàn)場/恢復(fù)現(xiàn)場(主程序(調(diào)用者)/子程序均可);主程序(調(diào)用者)完成 PUSH AX PUSH BX CALL SUBRT;(不保護) POP BX POP AX .SUBRT PROC子程序完成 SUNRT: PUSH AX PUSH BX . POP BX POP AX RET 12匯編語言程序設(shè)計處理與判別比較 CMP AL,A;
9、41H,65 JZ/JNZ ; CMP CX,BUFSI JC(JNC) JG/JL 分支結(jié)構(gòu)緩沖區(qū)/指針 初始化 XOR AX,AX; MOV BUF,AX; MOV BUFPT,0 ;OFFSET Buf_head INC BUFPT 修正計數(shù)(指針) CMP BUFPT, BUFEND ; full? OFFSET Buf_tail13匯編語言程序設(shè)計處理與判別2判零 AND AL,AL; OR AX,AX, TEST AL,AL ; CMP AL,0 JZ置位 OR AL, 00001000B; OR AL, 8 ;B3=1復(fù)位 AND AL,01110111B; AND AL,77H
10、; B7,B3=0判位0/1:TEST AL, 00001000B; JZ(0)/NZ(1)14順序程序舉例計算f(x)=5x3+4x2-3x+12=(5x+4)*x-3)*x+12 計算f(6)FXCALC PROC; ENTRY X=x,EXIT=f(x);Used:AX, DX MOV AX,5 MUL X ADD AX,4; MUL X;() SUB AX,3 ;() MUL X ADD AX,12 MOV RESULT,AX RETFXCALC ENDP ;:XDW 6; MOV X,6 存儲變量傳遞參數(shù)調(diào)用:MOV X,6 ; CALL FXCALC15分支:比較測試結(jié)構(gòu)跳轉(zhuǎn)結(jié)構(gòu):
11、 根據(jù)X0 給Y賦值-1,0,1 MOV AL, XX MOV AH, 1 CMP AL, 0 JG EXIT;X0, AH=1 JZ ZERO MOV AH, -1;0 JMP EXITZERO: MOV AH, AL; 0EXIT: MOV YY,AH16分支:比較測試結(jié)構(gòu)(最大值w) MOV BX, OFFSET CMPDAT MOV CX,COUNT MOV AX,BX INC BX INC BXCHECK0: CMP AX,BX JNC CHECK1 MOV AX,BXCHECK1:INC BX INC BX LOOP CHECK0EXIT: 17循環(huán)結(jié)構(gòu)條件控制法先判斷后工作while .do; MOV CX,0; CHECK:CMP CX,100; JNC FINISH; INC CX, JMP CHECK;FINISH: 先工作后判斷條件 do ( )while MOV CX,0; CHECK:. INC CX; CMP CX,100, JC CHECK;FINISH:18循環(huán)結(jié)構(gòu)(續(xù)2
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 明確責任的工作目標設(shè)定計劃
- 如何提升財務(wù)團隊的協(xié)作效率計劃
- 2025年鞋用乳液膠粘劑項目合作計劃書
- 2025年醫(yī)用冷療項目發(fā)展計劃
- 2025年其它核材料及相關(guān)特殊材料合作協(xié)議書
- 遠程在線教育平臺學(xué)習(xí)免責協(xié)議
- 電動汽車充電樁安裝施工合同
- Rac-Ganoderic-acid-C2-生命科學(xué)試劑-MCE
- 財務(wù)顧問聘用協(xié)議
- 工作總結(jié)寫作培訓(xùn)
- 小學(xué)數(shù)學(xué)教學(xué)評一體化教學(xué)探究
- 2024年保安員考試題庫【典型題】
- 餐飲行業(yè)系列研究之六:日本餐飲30年復(fù)盤與啟示
- 人教版數(shù)學(xué)八年級下冊第十九章課堂同步練習(xí)
- 第一章創(chuàng)新意識課件
- 2024-2029年中國R290制冷劑行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展研究報告
- 【真題】2023年南京市中考語文試卷(含答案解析)
- 安徽安慶家鄉(xiāng)介紹
- 售后工程師績效考核指南
- 自動測試系統(tǒng)第1章第1節(jié)測試系統(tǒng)發(fā)展綜述
- 2024年河南省水務(wù)規(guī)劃設(shè)計研究有限公司人才招聘筆試參考題庫附帶答案詳解
評論
0/150
提交評論