




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、匯編語言程序設計第四章4.0 概述4.1 匯編語言程序格式4.2 MASM中的表達式4.3 偽指令語句4.4 程序設計方法4.5 DOS系統(tǒng)功能調(diào)用4.4 程序設計方法一、匯編語言源程序設計基本步驟 1、明確任務,確定算法。 2、畫流程圖。 3、分配存儲空間及工作單元 分析需要定義的段、變量、變量類型、長度;規(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)兩個分支YN三個分支YYNN順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)子程序結(jié)構(gòu)循環(huán)初始設置循環(huán)體循環(huán)條件判斷?YNYN循環(huán)初始設置循環(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:已知當前數(shù)據(jù)段中有一個十進制數(shù)字09的七段代碼表,其數(shù)值依次為40H、79H、24H、30H、19H、12H、02H、78H、00H、18H。要求用XLAT指令將十進制數(shù)57轉(zhuǎn)換成相應的七段代碼值,存到BX寄存器中,編寫完整的匯編源程序。分析:先求5的七段代碼值,再求數(shù)字7的; 需定義數(shù)據(jù)段、七段代碼表:TAB,字節(jié)變量; 關鍵指令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求負并回送 結(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 ;求負MOV X,AL ;回送結(jié)果RETURN:MOV AH,4CH ;返回DOS INT 21HCODE ENDS END START ;結(jié)束源程序3、循環(huán)結(jié)構(gòu)兩種形式:1)“先執(zhí)行,后判斷” :進入循環(huán)后至少要執(zhí)行一次循環(huán)體,再判斷循
6、環(huán)是否結(jié)束。 -用于循環(huán)次數(shù)固定的程序(簡單)(掌握)2)“先判斷,后執(zhí)行”:進入循環(huán)后,先判斷循環(huán)結(jié)束條件,再決定是否執(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ù)值、地址指針2)循環(huán)體 -循環(huán)部分的核心:循環(huán)的全部指令3)修改參數(shù)-改地址指針,為下次循環(huán)做準備4)循環(huán)控制-修改計數(shù)值,進行判斷(LOOP)例3:將附加段起始地址為DA1的100個字節(jié)的存儲區(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個字節(jié)型帶符號數(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)計一字符串BUF(長度小于
9、256)中的大寫字母、數(shù)字及其他字符的個數(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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國瞬間接著劑數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國白色籃球板市場現(xiàn)狀分析及前景預測報告
- 2024年山東黃河三角洲人才發(fā)展集團工作人員招聘10人筆試參考題庫附帶答案詳解
- 農(nóng)村小院改造合同樣本
- 2024年國家能源投資集團有限責任公司采煤自營專項社會招聘421人筆試參考題庫附帶答案詳解
- 學校大學生學習計劃
- 2024年3月吉林省高速公路集團有限公司公開招聘3人(總部崗位)筆試參考題庫附帶答案詳解
- 家園共育活動設計計劃
- 幼兒園團隊合作活動計劃
- 委托物流公司運輸合同
- 小學創(chuàng)建“五好”學校關工委實施方案
- 2025屆河南省五市高三第一次聯(lián)考生物試題(原卷版+解析版)
- 2025年安徽九華山旅游發(fā)展股份有限公司招聘66人筆試參考題庫附帶答案詳解
- 統(tǒng)編版2024~2025學年度六年級語文第二學期期中測試卷(有答案)
- 排水運維技巧培訓課件
- 多發(fā)性硬化課件
- 2019全國中學生生物學聯(lián)賽試題詳解
- 2025年職業(yè)指導師專業(yè)能力測試卷:職業(yè)心理健康與心理測評試題
- 安徽省蚌埠市2024-2025學年高三(下)第二次質(zhì)檢物理試卷(含解析)
- 2025屆山東省菏澤市高三下學期一模政治試題及答案
- 乒乓球愛好者如何制定乒乓球訓練計劃
評論
0/150
提交評論