




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 匯編語言中匯編語言中, ,可進(jìn)行數(shù)值計(jì)算的僅有加、減、乘、除、可進(jìn)行數(shù)值計(jì)算的僅有加、減、乘、除、移位等最最基本的指令。移位等最最基本的指令。 運(yùn)用這些基本指令哪怕是完成稍微復(fù)雜一些的數(shù)值運(yùn)用這些基本指令哪怕是完成稍微復(fù)雜一些的數(shù)值計(jì)算都是比較困難的。計(jì)算都是比較困難的。 要把某一問題分解成能夠用加、減、乘、除完成的要把某一問題分解成能夠用加、減、乘、除完成的基本操作基本操作, ,然后才能著手編程。然后才能著手編程。 .486DATA SEGMENT USE16XX DD 13572468HYY DD 55667788HSUM DB ?,?,?,?,?DATA ENDSCODE SEGMEN
2、T USE16 ASSUME CS:CODE,DS:DATA BEG: MOV AX,DATA MOV DS,AX MOV SI,OFFSET XX MOV DI,OFFSET YY MOV BX,OFFSET SUM+4 CLC ;C標(biāo)志清標(biāo)志清0 MOV CX,4 ;不影響不影響C標(biāo)志標(biāo)志EXE格式源程序清單:格式源程序清單:BCD_ADD: MOV AL,SI ;不影響不影響C標(biāo)志標(biāo)志 ADC AL,DI DAA ;調(diào)整指令調(diào)整指令 MOV BX,AL ;不影響不影響C標(biāo)志標(biāo)志 INC SI ;不影響不影響C標(biāo)志標(biāo)志 INC DI ;不影響不影響C標(biāo)志標(biāo)志 DEC BX ;不影響不影響C
3、標(biāo)志標(biāo)志 LOOP BCD_ADD ;不影響不影響C標(biāo)志標(biāo)志 ADC CL,0 MOV BX,CL CALL DISP MOV AH,4CH INT 21HDISP PROC MOV CX,5 MOV BX,OFFSET SUMLLL: MOV DH,BX ROL DX,4 AND DL,0FH ADD DL,30H MOV AH,2 INT 21H ROL DX,4 AND DL,0FH ADD DL,30H MOV AH,2 INT 21H INC BX LOOP LLL RETDISP ENDPCODE ENDS END BEG 數(shù)據(jù)處理涉及的面比較寬數(shù)據(jù)處理涉及的面比較寬, ,其中其中
4、字符串字符串處理和處理和表格表格處理都屬處理都屬于數(shù)據(jù)處理范疇于數(shù)據(jù)處理范疇 數(shù)據(jù)表由若干表項(xiàng)組成。根據(jù)表項(xiàng)的內(nèi)容可分為無序表和數(shù)據(jù)表由若干表項(xiàng)組成。根據(jù)表項(xiàng)的內(nèi)容可分為無序表和有序表兩種。在無序表中各個(gè)表項(xiàng)的數(shù)值排列是無規(guī)則的有序表兩種。在無序表中各個(gè)表項(xiàng)的數(shù)值排列是無規(guī)則的, ,而在有序表中而在有序表中, ,表項(xiàng)是按其數(shù)值大小表項(xiàng)是按其數(shù)值大小, ,從小到大從小到大, ,或從大到小或從大到小依次排列的。依次排列的。 表格處理涉及到數(shù)據(jù)查找、插入、刪除、排序、數(shù)據(jù)表轉(zhuǎn)表格處理涉及到數(shù)據(jù)查找、插入、刪除、排序、數(shù)據(jù)表轉(zhuǎn)換等操作換等操作, ,其中查表是最基本的操作。其中查表是最基本的操作。 查表
5、的方法有順序查表、計(jì)算查表、對半搜索等查表的方法有順序查表、計(jì)算查表、對半搜索等 Eg:Eg:數(shù)據(jù)查找數(shù)據(jù)查找 設(shè)內(nèi)存緩沖區(qū)從設(shè)內(nèi)存緩沖區(qū)從BUFBUF單元開始單元開始, ,有若干單字節(jié)有符號數(shù)有若干單字節(jié)有符號數(shù), ,要求要求找出最大數(shù)送找出最大數(shù)送MAXMAX單元單元, ,最小數(shù)送最小數(shù)送MINMIN單元。單元。 編程思路編程思路 :數(shù)據(jù)查找的關(guān)鍵是進(jìn)行數(shù)據(jù)比較數(shù)據(jù)查找的關(guān)鍵是進(jìn)行數(shù)據(jù)比較, ,對于有符號數(shù)查找對于有符號數(shù)查找, ,其最大數(shù)其最大數(shù)和最小數(shù)都是針對真值數(shù)而言的。因此應(yīng)使用有符號數(shù)的比較和最小數(shù)都是針對真值數(shù)而言的。因此應(yīng)使用有符號數(shù)的比較轉(zhuǎn)移指令。轉(zhuǎn)移指令。 .486DAT
6、A SEGMENT USE16BUF DB 34,56,-1,7FH,-88,200,22,80HCOUNT EQU $-BUFMAX DB ?MIN DB ?DATA ENDSCODE SEGMENT USE16 ASSUME CS:CODE,DS:DATABEG: MOV AX,DATA MOV DS,AX MOV CX,COUNT ;CX=數(shù)據(jù)個(gè)數(shù)數(shù)據(jù)個(gè)數(shù) MOV AL,BUF MOV MAX,AL ;假設(shè)第一個(gè)數(shù)是最大數(shù)假設(shè)第一個(gè)數(shù)是最大數(shù) MOV MIN,AL ;假設(shè)第一個(gè)數(shù)是最小數(shù)假設(shè)第一個(gè)數(shù)是最小數(shù) DEC CX ;CX=比較次數(shù)比較次數(shù) MOV BX,OFFSET BUF+1E
7、XE格式源程序清單:格式源程序清單:LAST: MOV AL,BX CMP AL,MAX ;比較比較 JG GREAT CMP AL,MIN JL LESS JMP NEXTGREAT: MOV MAX,AL ;大數(shù)大數(shù)MAX JMP NEXT LESS: MOV MIN,AL ;小數(shù)小數(shù)MIN NEXT: INC BX LOOP LAST MOV AH,4CH INT 21H CODE ENDS END BEG Eg:Eg:字符串搜索字符串搜索 假設(shè)從假設(shè)從STRINGSTRING單元開始有一源串字符單元開始有一源串字符, ,程序執(zhí)行后采用人程序執(zhí)行后采用人機(jī)會話方式機(jī)會話方式, ,從鍵盤輸
8、入一個(gè)任意長度的子串從鍵盤輸入一個(gè)任意長度的子串, ,請查找源串中是請查找源串中是否蘊(yùn)含著鍵入的子串否蘊(yùn)含著鍵入的子串, ,并給出結(jié)果信息。并給出結(jié)果信息。 設(shè)計(jì)思路設(shè)計(jì)思路 : 1.1.子串的長度小于或者等于源串長度時(shí)才進(jìn)行搜索;子串的長度小于或者等于源串長度時(shí)才進(jìn)行搜索; 2.2.搜索的次數(shù)應(yīng)當(dāng)是源串長度減去子串長度再加搜索的次數(shù)應(yīng)當(dāng)是源串長度減去子串長度再加1 1; 3.3.用串指令實(shí)現(xiàn)主要的比較功能;用串指令實(shí)現(xiàn)主要的比較功能; 4.REPE CMPSB ; 4.REPE CMPSB ;然后判斷然后判斷Z Z標(biāo)志。標(biāo)志。CMPSBCMPSB指令執(zhí)行前應(yīng)做的準(zhǔn)備工作指令執(zhí)行前應(yīng)做的準(zhǔn)備工
9、作: : 欲進(jìn)行增址型比較欲進(jìn)行增址型比較: : 用用CLDCLD指令使方向標(biāo)志指令使方向標(biāo)志D=0D=0。源串首地。源串首地 址址DS:SI,DS:SI,目標(biāo)串首地址目標(biāo)串首地址ES:DIES:DI。 欲進(jìn)行減址型比較欲進(jìn)行減址型比較: : 用用STDSTD指令使方向標(biāo)志指令使方向標(biāo)志D=1D=1。源串末地。源串末地 址址DS:SI,DS:SI,目標(biāo)串末地址目標(biāo)串末地址ES:DIES:DI。示范:示范: welcome to our universitywelcome to our university ourour 第一次搜索第一次搜索 ourour 第二次搜索第二次搜索 。 ourour
10、 搜索到,停搜索到,停 止搜索止搜索 welcome to our universitywelcome to our university fox fox 第一次搜索第一次搜索 fox fox 第二次搜索第二次搜索 。 fox fox;未搜索到;未搜索到 最多搜索次數(shù)最多搜索次數(shù)=源串長度源串長度-子串長度子串長度+1用用DOS系統(tǒng)系統(tǒng)0AH號功能調(diào)用號功能調(diào)用,接受鍵入的子串接受鍵入的子串,并限制子串輸入的有效長度并限制子串輸入的有效長度(不包括回車不包括回車)不超過源串長度不超過源串長度(定義緩沖區(qū)時(shí)限制)(定義緩沖區(qū)時(shí)限制) ;FILENAME:6115.ASM .486DISP MAC
11、RO VAR MOV AH,9 MOV DX,OFFSET VAR INT 21H ENDMEXE格式源程序清單:格式源程序清單:DATA SEGMENT USE16DATA SEGMENT USE16STRING DB BASIC FORTRAN_77 C+ FOXPRO JAVASTRING DB BASIC FORTRAN_77 C+ FOXPRO JAVALENS EQU $-STRING ;LENS EQU $-STRING ;源串長度源串長度BUF DB LENS+1 ;BUF DB LENS+1 ;限制子串長度最長為限制子串長度最長為LENSLENS DB ? DB ? DB L
12、ENS+1 DUP(?) ; DB LENS+1 DUP(?) ;預(yù)留子串的存儲空間預(yù)留子串的存儲空間NNN DW ?NNN DW ?COUNT DB ?COUNT DB ?MESG1 DB Please Enter.$ MESG1 DB Please Enter.$ MESG2 DB 0AH,- Found ! $MESG2 DB 0AH,- Found ! $MESG3 DB 0AH,- No Found ! $MESG3 DB 0AH,- No Found ! $DATA ENDSDATA ENDSCODE SEGMENT USE16CODE SEGMENT USE16 ASSUME C
13、S:CODE,DS:DATA, ASSUME CS:CODE,DS:DATA,ES:DATAES:DATABEG: MOV AX,DATABEG: MOV AX,DATA MOV DS,AX MOV DS,AX MOV ES,AXMOV ES,AX DISP MESG1 DISP MESG1 MOV AH,0AH MOV AH,0AH MOV DX,OFFSET BUF MOV DX,OFFSET BUF INT 21H ; INT 21H ;接收一個(gè)子串接收一個(gè)子串 MOV AL,BUF+1MOV AL,BUF+1 CMP AL,0 CMP AL,0 JZ NOFOUND ; JZ NOFO
14、UND ;子串長度為子串長度為0 0轉(zhuǎn)轉(zhuǎn) MOV BYTE PTR NNN,ALMOV BYTE PTR NNN,AL MOV AH,LENS MOV AH,LENS SUB AH,AL SUB AH,AL INC AH ; INC AH ;計(jì)算搜索次數(shù)計(jì)算搜索次數(shù) MOV COUNT,AH ;MOV COUNT,AH ;搜索次數(shù)搜索次數(shù) COUNTCOUNT單元單元 CLDCLD MOV BX,OFFSET STRING MOV BX,OFFSET STRINGAGAIN: MOV SI,BXAGAIN: MOV SI,BX MOV DI,OFFSET BUF+2 MOV DI,OFFSET
15、 BUF+2 MOV CX,NNN MOV CX,NNN REPE CMPSB ; REPE CMPSB ;字符串搜索字符串搜索 JZ FOUNDJZ FOUND INC BX INC BX DEC COUNT DEC COUNT JNZ AGAIN JNZ AGAINNOFOUND: DISP MESG3NOFOUND: DISP MESG3 JMP EXIT JMP EXITFOUND: DISP MESG2FOUND: DISP MESG2EXIT: MOV AH,4CHEXIT: MOV AH,4CH INT 21H INT 21HCODE ENDSCODE ENDS END BEG
16、END BEG串搜索指令串搜索指令scasscas準(zhǔn)備工作準(zhǔn)備工作: : 欲進(jìn)行增址型比較欲進(jìn)行增址型比較: : 用用CLDCLD指令使方向標(biāo)志指令使方向標(biāo)志D=0D=0。 要搜索的關(guān)鍵字放入要搜索的關(guān)鍵字放入ALAL、AXAX或或EAXEAX中。中。 目標(biāo)串首址目標(biāo)串首址ES:DIES:DI。 欲進(jìn)行減址型比較欲進(jìn)行減址型比較: : 用用CLDCLD指令使方向標(biāo)志指令使方向標(biāo)志D=1D=1。 要搜索的關(guān)鍵字放入要搜索的關(guān)鍵字放入ALAL、AXAX或或EAXEAX中。中。 目標(biāo)串末址目標(biāo)串末址ES:DIES:DI。應(yīng)用:根據(jù)源數(shù)據(jù),查找目標(biāo)數(shù)據(jù)應(yīng)用:根據(jù)源數(shù)據(jù),查找目標(biāo)數(shù)據(jù)例:例:用用XLAT
17、指令完成十六進(jìn)制指令完成十六進(jìn)制 ASCII碼碼 的轉(zhuǎn)換,的轉(zhuǎn)換, 并將轉(zhuǎn)并將轉(zhuǎn)換結(jié)果顯示于屏幕換結(jié)果顯示于屏幕設(shè)計(jì)思路:設(shè)計(jì)思路: 用查表指令需做準(zhǔn)備工作用查表指令需做準(zhǔn)備工作 查表指令要求,查表時(shí)的相對位移量需存入查表指令要求,查表時(shí)的相對位移量需存入AL寄存器寄存器 十六進(jìn)制數(shù)有十六進(jìn)制數(shù)有 0 9、 A F, 對應(yīng)的對應(yīng)的ASCII碼為碼為30H39H、41H46H, 如何定義表?如何定義表? .486.486DATA SEGMENT USE16DATA SEGMENT USE16TAB1 DB 30HTAB1 DB 30H,31H31H,32H32H,33H33H,34H34H,35
18、H35H DB 36H DB 36H,37H37H,38H38H,39H39H DB 41H DB 41H,42H42H,43H43H,44H44H,45H45H,46H46HTAB2 DB 0TAB2 DB 0,1 1,2 2,3 3,4 4,5 5,6 6,7 7,8 8,9 9 DB 0AH DB 0AH,0BH0BH,0CH0CH,0DH0DH,0EH0EH,0FH0FHDATA ENDSDATA ENDSCODE SEGMENT USE16CODE SEGMENT USE16 ASSUME CS:CODE,DS:DATA ASSUME CS:CODE,DS:DATABEG: MOV
19、AX,DATABEG: MOV AX,DATA MOV DS,AX MOV DS,AXEXE格式源程序清單:格式源程序清單:MOVMOVCXCX,10H10HMOVMOVBXBX,OFFSET TAB1OFFSET TAB1MOVMOVSISI,OFFSET TAB2OFFSET TAB2L1L1:MOVMOVALAL,SISIXLATXLATMOVMOVDLDL,ALALMOVMOVAHAH,2 2INTINT21H21HMOVMOVDLDL, MOVMOVAHAH,2 2INTINT21H21HINCINCSISILOOPLOOPL1L1MOVMOVAHAH,4CH4CHINTINT21H
20、21HCODECODEENDSENDSENDENDBEGBEG什么是什么是“模塊模塊”?能夠獨(dú)立匯編的一個(gè)邏輯段能夠獨(dú)立匯編的一個(gè)邏輯段( (例如僅有一個(gè)數(shù)例如僅有一個(gè)數(shù)據(jù)段據(jù)段),),或者是能夠獨(dú)立匯編的若干個(gè)邏輯段或者是能夠獨(dú)立匯編的若干個(gè)邏輯段的集合的集合, ,就稱為一個(gè)模塊。每個(gè)模塊都可以有就稱為一個(gè)模塊。每個(gè)模塊都可以有自己的數(shù)據(jù)段、附加段、代碼段。自己的數(shù)據(jù)段、附加段、代碼段。什么是什么是“模塊化程序設(shè)計(jì)方法模塊化程序設(shè)計(jì)方法”? ?把一個(gè)大型程序分解成若干個(gè)有相對獨(dú)立功把一個(gè)大型程序分解成若干個(gè)有相對獨(dú)立功能的小程序能的小程序, ,由多人分別設(shè)計(jì)、調(diào)試生成各自由多人分別設(shè)計(jì)、調(diào)試
21、生成各自的的OBJOBJ文件文件,最后由鏈接程序?qū)⑺鼈冩溄映梢唬詈笥涉溄映绦驅(qū)⑺鼈冩溄映梢粋€(gè)可執(zhí)行文件。個(gè)可執(zhí)行文件。模塊化程序設(shè)計(jì)模塊化程序設(shè)計(jì)模塊化程序結(jié)構(gòu)模塊化程序結(jié)構(gòu)1. 主模塊和子模塊主模塊和子模塊 只允許有一個(gè)主模塊只允許有一個(gè)主模塊, ,其它都是子模塊其它都是子模塊 子模塊用子模塊用“END”END”做為本源程序結(jié)束語句做為本源程序結(jié)束語句 主模塊用主模塊用“END END 啟動(dòng)指令標(biāo)號啟動(dòng)指令標(biāo)號”做為源程做為源程序序 的結(jié)束語句的結(jié)束語句模塊化程序設(shè)計(jì)模塊化程序設(shè)計(jì)2. 模塊之間符號名的引用模塊之間符號名的引用 用于模塊用于模塊間間 轉(zhuǎn)移轉(zhuǎn)移 模塊間模塊間 調(diào)用調(diào)用 模塊間
22、模塊間 互訪互訪 等一系列跨模塊的操作等一系列跨模塊的操作模塊化程序設(shè)計(jì)模塊化程序設(shè)計(jì)PUBLICPUBLIC偽指令偽指令 (公用符號名說明語句)(公用符號名說明語句)格式:格式:PUBLIC PUBLIC 符號名符號名,符號名符號名 例如:例如:PUBLIC BEG,NEXT,MESGPUBLIC BEG,NEXT,MESG 功能:功能: 語句右側(cè)列出的符號名是語句右側(cè)列出的符號名是本模塊中定義本模塊中定義的的變量名變量名、 標(biāo)號名標(biāo)號名、過程名過程名, ,它們要它們要被其他的模塊引用被其他的模塊引用。 用于被調(diào)用模塊用于被調(diào)用模塊 通常的做法是通常的做法是PUBLICPUBLIC語句放在定
23、義這些符號名的語句放在定義這些符號名的 模塊的上方。模塊的上方。模塊化程序設(shè)計(jì)模塊化程序設(shè)計(jì)EXTRNEXTRN偽指令偽指令 (外部符號名說明語句)(外部符號名說明語句)格式格式: EXTRN : EXTRN 符號名符號名: :類型類型,符號名符號名: :類型類型 例如例如: EXTRN BEG:FAR,NEXT:FAR,MESG:BYTE: EXTRN BEG:FAR,NEXT:FAR,MESG:BYTE 功能:語句右側(cè)的符號名是功能:語句右側(cè)的符號名是本模塊引用本模塊引用的的, ,而在而在其他其他模塊中定義模塊中定義過的過的變量名變量名、標(biāo)號名標(biāo)號名、過程名過程名。 符號名右側(cè)的類型符號名
24、右側(cè)的類型, ,必須是這些符號名在定義時(shí)被說明必須是這些符號名在定義時(shí)被說明的類型的類型, ,類型說明符有類型說明符有BYTE(BYTE(字節(jié)型字節(jié)型) )、WORD(WORD(字型字型) )、DWORD(DWORD(雙字型雙字型) )、FAR(FAR(遠(yuǎn)遠(yuǎn)) )、NEAR(NEAR(近近) )。 通常的做法是通常的做法是EXTRNEXTRN語句放在調(diào)用模塊的上方語句放在調(diào)用模塊的上方, ,它通知匯它通知匯編程序編程序, ,所列出的符號名所列出的符號名, ,在其他模塊中已定義過了在其他模塊中已定義過了, ,否則否則匯編時(shí)出錯(cuò)。匯編時(shí)出錯(cuò)。 用于調(diào)用模塊用于調(diào)用模塊模塊化程序設(shè)計(jì)模塊化程序設(shè)計(jì)這
25、兩個(gè)偽指令提供了模塊之間這兩個(gè)偽指令提供了模塊之間互訪互訪的可能性。的可能性。這兩個(gè)偽指令的使用必須相這兩個(gè)偽指令的使用必須相匹配匹配。鏈接(鏈接(TLINK)程序的任務(wù)之一就是要檢查)程序的任務(wù)之一就是要檢查每個(gè)模塊中每個(gè)模塊中EXTRN說明的符號是否與其相連說明的符號是否與其相連的其他模塊中的的其他模塊中的PUBLIC說明的符號相匹配,說明的符號相匹配,若不匹配,則給出出錯(cuò)信息。若不匹配,則給出出錯(cuò)信息。模塊化程序設(shè)計(jì)模塊化程序設(shè)計(jì)INCLUDEINCLUDE偽指令偽指令 格式:格式: INCLUDE INCLUDE 盤符:盤符: 路徑路徑 文件名文件名. .擴(kuò)展名擴(kuò)展名 功能:功能:通知
26、匯編程序把指定的文件通知匯編程序把指定的文件“拷貝拷貝”一份一份, ,插插入到該語句的下方供匯編時(shí)使用。當(dāng)然入到該語句的下方供匯編時(shí)使用。當(dāng)然, ,當(dāng)前當(dāng)前盤的盤符、路徑可以省略。盤的盤符、路徑可以省略。模塊化程序設(shè)計(jì)模塊化程序設(shè)計(jì)模塊化程序的設(shè)計(jì)考慮模塊化程序的設(shè)計(jì)考慮(1) (1) 合理劃分模塊合理劃分模塊, ,使每一個(gè)模塊有相對獨(dú)立的功能使每一個(gè)模塊有相對獨(dú)立的功能, , 大小適中,盡量減少模塊之間的耦合。大小適中,盡量減少模塊之間的耦合。(2) (2) 在實(shí)模式下在實(shí)模式下, ,鏈接之后的同類型邏輯段不能超過鏈接之后的同類型邏輯段不能超過 64K64K。(3) (3) 模塊之間模塊之間
27、, ,同類型邏輯段的組合與否同類型邏輯段的組合與否, ,是重點(diǎn)考是重點(diǎn)考 慮的問題。慮的問題。(4) (4) 模塊之間的模塊之間的轉(zhuǎn)移和調(diào)用轉(zhuǎn)移和調(diào)用(5) (5) 模塊之間出現(xiàn)符號名引用的時(shí)候必須用模塊之間出現(xiàn)符號名引用的時(shí)候必須用PUBLICPUBLIC 、EXTRNEXTRN語句說明。語句說明。 模塊化程序設(shè)計(jì)模塊化程序設(shè)計(jì) * *模塊之間模塊之間, ,同類型邏輯段的組合與否同類型邏輯段的組合與否(1 1)不同模塊中的代碼段)不同模塊中的代碼段, ,可以組合成一個(gè)統(tǒng)一的代碼段可以組合成一個(gè)統(tǒng)一的代碼段, ,也可以不組合也可以不組合, ,仍舊是各自獨(dú)立的代碼段。仍舊是各自獨(dú)立的代碼段。 (
28、2(2) 不同模塊中的數(shù)據(jù)段不同模塊中的數(shù)據(jù)段( (附加段附加段),),可以組合成一個(gè)統(tǒng)可以組合成一個(gè)統(tǒng)一的數(shù)據(jù)段一的數(shù)據(jù)段( (附加段附加段),),也可以不組合也可以不組合, ,仍舊保持各自的獨(dú)立仍舊保持各自的獨(dú)立性。性。 以代碼段為例以代碼段為例, ,怎樣把各模塊中的代碼段組合成一個(gè)統(tǒng)一怎樣把各模塊中的代碼段組合成一個(gè)統(tǒng)一的代碼段呢?需要采取以下措施:的代碼段呢?需要采取以下措施: 各模塊的代碼段選用各模塊的代碼段選用相同的段名相同的段名。 在代碼段段定義語句中都選用在代碼段段定義語句中都選用“PUBLIC”PUBLIC”鏈接參數(shù)鏈接參數(shù)。 以上措施缺一不可。如果選用相同的分類名更好。以上
29、措施缺一不可。如果選用相同的分類名更好。 反之反之, ,如果不采取以上措施如果不采取以上措施, ,則鏈接后各模塊的代碼段則鏈接后各模塊的代碼段仍舊是各自獨(dú)立的。仍舊是各自獨(dú)立的。 模塊化程序設(shè)計(jì)模塊化程序設(shè)計(jì)* *模塊之間的轉(zhuǎn)移和調(diào)用模塊之間的轉(zhuǎn)移和調(diào)用 如果各模塊之間的代碼段如果各模塊之間的代碼段, ,最后要組合成最后要組合成一個(gè)代碼段一個(gè)代碼段, ,那么模塊之間的轉(zhuǎn)移就是段內(nèi)轉(zhuǎn)那么模塊之間的轉(zhuǎn)移就是段內(nèi)轉(zhuǎn)移移, ,可以使用段內(nèi)轉(zhuǎn)移的各種指令格式;模塊可以使用段內(nèi)轉(zhuǎn)移的各種指令格式;模塊之間的子程序調(diào)用為近過程調(diào)用之間的子程序調(diào)用為近過程調(diào)用, ,可以使用段可以使用段內(nèi)調(diào)用的各種指令格式。內(nèi)
30、調(diào)用的各種指令格式。 如果鏈接后的代碼段仍然是各自獨(dú)立的如果鏈接后的代碼段仍然是各自獨(dú)立的, ,則模塊之間轉(zhuǎn)移屬于段間轉(zhuǎn)移則模塊之間轉(zhuǎn)移屬于段間轉(zhuǎn)移, ,模塊之間的子模塊之間的子程序調(diào)用屬于遠(yuǎn)過程調(diào)用程序調(diào)用屬于遠(yuǎn)過程調(diào)用( (被調(diào)用的子程序應(yīng)被調(diào)用的子程序應(yīng)明確寫出有明確寫出有FARFAR屬性屬性) ) 模塊化程序設(shè)計(jì)模塊化程序設(shè)計(jì)模塊化程序設(shè)計(jì)舉例模塊化程序設(shè)計(jì)舉例 設(shè)計(jì)一個(gè)簡易的旅游菜單程序設(shè)計(jì)一個(gè)簡易的旅游菜單程序, ,主菜單界面如上圖所示主菜單界面如上圖所示, ,用戶鍵入用戶鍵入“1”,1”,轉(zhuǎn)北京二級菜單轉(zhuǎn)北京二級菜單, ,屏幕中央顯示屏幕中央顯示“WELCOME TO WELCO
31、ME TO BEIJINGBEIJING!”, ,底部顯示底部顯示“Please strike any key”,Please strike any key”,用戶敲用戶敲擊任意鍵之后擊任意鍵之后, ,程序又轉(zhuǎn)而顯示主菜單。程序又轉(zhuǎn)而顯示主菜單。用戶鍵入用戶鍵入“2”,2”,轉(zhuǎn)南京二級菜單轉(zhuǎn)南京二級菜單, ,屏幕中央顯示類似的歡迎詞屏幕中央顯示類似的歡迎詞和提示信息和提示信息。鍵入。鍵入“3”,3”,程序結(jié)束返回程序結(jié)束返回DOSDOS。 CHOICE(1,2,3):): MENU 1. BEIJING 2. NANJING 3. RETURN DOS 模塊化程序設(shè)計(jì)模塊化程序設(shè)計(jì)解法解法1
32、1設(shè)計(jì)思路與程序分析:設(shè)計(jì)思路與程序分析:1.1.合理劃分模塊合理劃分模塊 程序劃分為程序劃分為3 3個(gè)模塊:個(gè)模塊:主模塊主模塊6131.ASM6131.ASM顯示主菜單顯示主菜單, ,并完成菜單項(xiàng)的選擇和轉(zhuǎn)移并完成菜單項(xiàng)的選擇和轉(zhuǎn)移子模塊子模塊6131_1.ASM6131_1.ASM顯示顯示“歡迎到北京來歡迎到北京來”及提示信息及提示信息, ,子模塊子模塊6131_2.ASM6131_2.ASM顯示顯示“歡迎到南京來歡迎到南京來”及提示信息。及提示信息。2.2.每一模塊中應(yīng)設(shè)置哪些段?每一模塊中應(yīng)設(shè)置哪些段? 3 3個(gè)模塊都有自己的代碼段和數(shù)據(jù)段,段名均不相同。個(gè)模塊都有自己的代碼段和數(shù)據(jù)
33、段,段名均不相同。3.3.模塊之間相同性質(zhì)的邏輯段如何組合?模塊之間相同性質(zhì)的邏輯段如何組合?模塊之間的數(shù)據(jù)段、代碼段不組合模塊之間的數(shù)據(jù)段、代碼段不組合, ,均為各自獨(dú)立的邏輯段。均為各自獨(dú)立的邏輯段。鏈接之后,各模塊的數(shù)據(jù)段,代碼段仍然相互獨(dú)立。鏈接之后,各模塊的數(shù)據(jù)段,代碼段仍然相互獨(dú)立。模塊化程序設(shè)計(jì)模塊化程序設(shè)計(jì)4.4.模塊之間的轉(zhuǎn)移和調(diào)用方法模塊之間的轉(zhuǎn)移和調(diào)用方法模塊之間的轉(zhuǎn)移是段間轉(zhuǎn)移模塊之間的轉(zhuǎn)移是段間轉(zhuǎn)移, ,EXTRNEXTRN語句中對于轉(zhuǎn)移標(biāo)號語句中對于轉(zhuǎn)移標(biāo)號, ,均說明為均說明為“FAR”FAR”。5.DS5.DS值的考慮值的考慮 由于各模塊有獨(dú)立的代碼段和獨(dú)立的數(shù)
34、據(jù)段,由于各模塊有獨(dú)立的代碼段和獨(dú)立的數(shù)據(jù)段,DSDS寄寄存器必須訪問存器必須訪問自身模塊的數(shù)據(jù)段自身模塊的數(shù)據(jù)段, ,所以一旦發(fā)生模塊所以一旦發(fā)生模塊之間的轉(zhuǎn)移之間的轉(zhuǎn)移, ,DSDS的值必須跟蹤變化的值必須跟蹤變化, ,否則定會產(chǎn)生邏輯否則定會產(chǎn)生邏輯錯(cuò)誤錯(cuò)誤( (邏輯錯(cuò)誤匯編時(shí)發(fā)現(xiàn)不了邏輯錯(cuò)誤匯編時(shí)發(fā)現(xiàn)不了) )為此子模塊的入口處為此子模塊的入口處(BEG1,BEG2)(BEG1,BEG2)都設(shè)置了給都設(shè)置了給DSDS賦值賦值的指令。的指令。模塊化程序設(shè)計(jì)模塊化程序設(shè)計(jì) 解法解法1 1程序清單程序清單 ;FILENAME:6131.ASM ;FILENAME:6131.ASM .486
35、.486 PUBLIC BEGPUBLIC BEG EXTRN BEG1:FAR,BEG2:FAR EXTRN BEG1:FAR,BEG2:FARDISP MACRO YYXX,VAR DISP MACRO YYXX,VAR MOV AH,2 MOV AH,2 MOV BH,0 MOV BH,0 MOV DX,YYXX MOV DX,YYXX INT 10H INT 10H ;預(yù)制光標(biāo)位置;預(yù)制光標(biāo)位置 MOV AH,9MOV AH,9 MOV DX,OFFSET VAR MOV DX,OFFSET VAR INT 21H INT 21H ENDM ENDM模塊化程序設(shè)計(jì)模塊化程序設(shè)計(jì)DATA
36、0 SEGMENT USE16DATA0 SEGMENT USE16N EQU 28 DUP( )N EQU 28 DUP( )L1 DB N, MENU ,0DH,0AHL1 DB N, MENU ,0DH,0AH DB N, ,0DH,0AH DB N, ,0DH,0AH DB N, 1. BEIJING ,0DH,0AH DB N, 1. BEIJING ,0DH,0AH DB N, 2. NANJING ,0DH,0AH DB N, 2. NANJING ,0DH,0AH DB N, 3. RETURN DOS ,0DH,0AH DB N, 3. RETURN DOS ,0DH,0AH
37、 DB N, ,0DH,0AH DB N, ,0DH,0AHL7 DB N, CHOICE(1,2,3):$ L7 DB N, CHOICE(1,2,3):$ DATA0 ENDSDATA0 ENDSCODE0 SEGMENT CODE USE16CODE0 SEGMENT CODE USE16 ASSUME CS:CODE0,DS:DATA0 ASSUME CS:CODE0,DS:DATA0BEG: MOV AX,DATA0BEG: MOV AX,DATA0 MOV DS,AX MOV DS,AX MOV AX,2 MOV AX,2 INT 10H INT 10H DISP 0500H,L1
38、DISP 0500H,L1AGA: DISP 0B00H,L7AGA: DISP 0B00H,L7 MOV AH,1 MOV AH,1 INT 21H INT 21H CMP AL,3 CMP AL,3 JE EXIT JE EXIT CMP AL,1 CMP AL,1 JE BEG1 JE BEG1 ;段內(nèi)有條件轉(zhuǎn)移;段內(nèi)有條件轉(zhuǎn)移 CMP AL,2 CMP AL,2 JE BEG2JE BEG2 JMP AGA JMP AGAEXIT: MOV AH,4CHEXIT: MOV AH,4CH INT 21H INT 21HCODE0 ENDSCODE0 ENDS END BEG END BE
39、G ;此模塊為主模塊;此模塊為主模塊;FILENAME:6131_1.ASM;FILENAME:6131_1.ASM .486 .486 PUBLIC BEG1PUBLIC BEG1 EXTRN BEG:FAR EXTRN BEG:FARDISP MACRO YYXX,VARDISP MACRO YYXX,VAR MOV AH,2 MOV AH,2 MOV BH,0 MOV BH,0 MOV DX,YYXX MOV DX,YYXX INT 10H INT 10H MOV AH,9 MOV AH,9 MOV DX,OFFSET VAR MOV DX,OFFSET VAR INT 21H INT
40、21H ENDM ENDMDATA1 SEGMENT USE16DATA1 SEGMENT USE16MESG1 DB WELCOME TO BEIJING ! $ MESG1 DB WELCOME TO BEIJING ! $ ENDMESG DB Please strike any key $ ENDMESG DB Please strike any key $ DATA1 ENDSDATA1 ENDSCODE1 SEGMENT CODE USE16CODE1 SEGMENT CODE USE16 ASSUME CS:CODE1,DS:DATA1 ASSUME CS:CODE1,DS:DA
41、TA1BEG1:BEG1: MOV AX,DATA1MOV AX,DATA1 MOV DS,AX MOV DS,AX MOV AX,2 MOV AX,2 INT 10H INT 10H DISP 0C1EH,MESG1 DISP 0C1EH,MESG1 DISP 171DH,ENDMESG DISP 171DH,ENDMESG MOV AH,1 MOV AH,1 INT 21H INT 21H JMP BEGJMP BEGCODE1 ENDSCODE1 ENDS END END ;子模塊結(jié)束語句;子模塊結(jié)束語句 ;FILENAME:6131_2.ASM;FILENAME:6131_2.ASM
42、.486 .486 PUBLIC BEG2PUBLIC BEG2 EXTRN BEG:FAR EXTRN BEG:FARDISP MACRO YYXX,VARDISP MACRO YYXX,VAR MOV AH,2 MOV AH,2 MOV BH,0 MOV BH,0 MOV DX,YYXX MOV DX,YYXX INT 10H INT 10H MOV AH,9 MOV AH,9 MOV DX,OFFSET VAR MOV DX,OFFSET VAR INT 21H INT 21H ENDMENDMDATA2 SEGMENT USE16DATA2 SEGMENT USE16MESG2 DB
43、WELCOME TO NANJING ! $ MESG2 DB WELCOME TO NANJING ! $ ENDMESG DB Please strike any key $ ENDMESG DB Please strike any key $ DATA2 ENDSDATA2 ENDSCODE2 SEGMENT CODE USE16CODE2 SEGMENT CODE USE16 ASSUME CS:CODE2,DS:DATA2 ASSUME CS:CODE2,DS:DATA2BEG2:BEG2: MOV AX,DATA2MOV AX,DATA2 MOV DS,AX MOV DS,AX M
44、OV AX,2 MOV AX,2 INT 10H INT 10H DISP 0C1EH,MESG2 DISP 0C1EH,MESG2 DISP 171DH,ENDMESG DISP 171DH,ENDMESG MOV AH,1 MOV AH,1 INT 21H INT 21H JMP BEGJMP BEGCODE2 ENDSCODE2 ENDS END END ;子模塊結(jié)束;子模塊結(jié)束模塊化程序可執(zhí)行文件的生成步驟如下模塊化程序可執(zhí)行文件的生成步驟如下: : 分別對分別對各個(gè)模塊進(jìn)行編輯和匯編生成各自的各個(gè)模塊進(jìn)行編輯和匯編生成各自的目標(biāo)文件目標(biāo)文件( (共享的宏文件只編輯不匯編共享的宏文件只
45、編輯不匯編),),假設(shè)解法假設(shè)解法1 1的目標(biāo)文件為:的目標(biāo)文件為:6131.OBJ,6131_1.OBJ,6131_2.OBJ6131.OBJ,6131_1.OBJ,6131_2.OBJ。 然后用鏈接程序進(jìn)行鏈接:例如:然后用鏈接程序進(jìn)行鏈接:例如: TLINK 6131TLINK 61316131_16131_16131_26131_2 生成的可執(zhí)行文件與第一個(gè)目標(biāo)文件同名生成的可執(zhí)行文件與第一個(gè)目標(biāo)文件同名, ,本本例的可執(zhí)行文件為例的可執(zhí)行文件為6131.EXE6131.EXE。模塊化程序設(shè)計(jì)模塊化程序設(shè)計(jì) 解法解法2 2設(shè)計(jì)思路與程序分析設(shè)計(jì)思路與程序分析 1. 1.合理劃分模塊合理
46、劃分模塊 程序劃分為程序劃分為3 3個(gè)模塊:個(gè)模塊:主模塊主模塊6132.ASM6132.ASM顯示主菜單顯示主菜單, ,并完成菜單項(xiàng)的選擇和轉(zhuǎn)并完成菜單項(xiàng)的選擇和轉(zhuǎn)移移子模塊子模塊6132_1.ASM6132_1.ASM顯示顯示“歡迎到北京來歡迎到北京來”及提示信息及提示信息, ,子模塊子模塊6132_2.ASM6132_2.ASM顯示顯示“歡迎到南京來歡迎到南京來”及提示信息。及提示信息。 2.2.每一模塊中應(yīng)設(shè)置哪些段?每一模塊中應(yīng)設(shè)置哪些段?主模塊設(shè)置代碼段和數(shù)據(jù)段,其中數(shù)據(jù)段集中存放程序主模塊設(shè)置代碼段和數(shù)據(jù)段,其中數(shù)據(jù)段集中存放程序中使用的數(shù)據(jù)。中使用的數(shù)據(jù)。子模塊不設(shè)置數(shù)據(jù)段,分
47、別設(shè)置各自的代碼段。子模塊不設(shè)置數(shù)據(jù)段,分別設(shè)置各自的代碼段。3 3個(gè)模塊的代碼段都選用了相同的段名個(gè)模塊的代碼段都選用了相同的段名, ,都選用都選用“PUBLIC”PUBLIC”做為鏈接參數(shù)。做為鏈接參數(shù)。模塊化程序設(shè)計(jì)模塊化程序設(shè)計(jì)3.3.模塊之間相同性質(zhì)的邏輯段如何組合?模塊之間相同性質(zhì)的邏輯段如何組合?3 3個(gè)模塊的代碼段個(gè)模塊的代碼段, ,最后要組合成一個(gè)統(tǒng)一的代碼段。最后要組合成一個(gè)統(tǒng)一的代碼段。鏈接程序?qū)⒉煌K中具有鏈接程序?qū)⒉煌K中具有PUBLICPUBLIC屬性的同名段,按照屬性的同名段,按照指定的連接順序進(jìn)行鏈接,組成一個(gè)邏輯段。指定的連接順序進(jìn)行鏈接,組成一個(gè)邏輯段。
48、4.4.模塊之間的轉(zhuǎn)移和調(diào)用方法模塊之間的轉(zhuǎn)移和調(diào)用方法統(tǒng)一的代碼段統(tǒng)一的代碼段, ,所以模塊之間的轉(zhuǎn)移是段內(nèi)轉(zhuǎn)移所以模塊之間的轉(zhuǎn)移是段內(nèi)轉(zhuǎn)移EXTRNEXTRN語句中語句中, ,對轉(zhuǎn)移標(biāo)號用對轉(zhuǎn)移標(biāo)號用NEARNEAR說明它們是近距離轉(zhuǎn)移說明它們是近距離轉(zhuǎn)移某一個(gè)標(biāo)號既是段內(nèi)轉(zhuǎn)移的目標(biāo)某一個(gè)標(biāo)號既是段內(nèi)轉(zhuǎn)移的目標(biāo), ,又是段間轉(zhuǎn)移的目標(biāo)又是段間轉(zhuǎn)移的目標(biāo), ,在這種情況下在這種情況下EXTRNEXTRN語句對于這些標(biāo)號名、過程名語句對于這些標(biāo)號名、過程名, ,應(yīng)當(dāng)應(yīng)當(dāng)寫成寫成“FAR”FAR”。5.DS5.DS值的考慮值的考慮 由于由于3 3個(gè)模塊使用一個(gè)數(shù)據(jù)段個(gè)模塊使用一個(gè)數(shù)據(jù)段, ,因此
49、在主模塊完成對因此在主模塊完成對DSDS賦賦值之后值之后, ,轉(zhuǎn)入其他模塊時(shí)不應(yīng)破壞轉(zhuǎn)入其他模塊時(shí)不應(yīng)破壞DSDS的初值。的初值。模塊化程序設(shè)計(jì)模塊化程序設(shè)計(jì) 解法解法2 2程序清單程序清單 ;FILENAME:6132.ASM ;FILENAME:6132.ASM .486 .486 PUBLIC BEG,MESG1,MESG2,ENDMESGPUBLIC BEG,MESG1,MESG2,ENDMESG EXTRN BEG1:NEAR,BEG2:NEAR EXTRN BEG1:NEAR,BEG2:NEARDISP MACRO YYXX,VARDISP MACRO YYXX,VAR MOV A
50、H,2 MOV AH,2 MOV BH,0 MOV BH,0 MOV DX,YYXX MOV DX,YYXX INT 10H INT 10H MOV AH,9 MOV AH,9 MOV DX,OFFSET VAR MOV DX,OFFSET VAR INT 21H INT 21H ENDM ENDM模塊化程序設(shè)計(jì)模塊化程序設(shè)計(jì)DATA SEGMENT USE16DATA SEGMENT USE16N EQU 28 DUP( )N EQU 28 DUP( )L1 DB N, MENU ,0DH,0AHL1 DB N, MENU ,0DH,0AH DB N, ,0DH,0AH DB N, ,0DH
51、,0AH DB N, 1. BEIJING ,0DH,0AH DB N, 1. BEIJING ,0DH,0AH DB N, 2. NANJING ,0DH,0AH DB N, 2. NANJING ,0DH,0AH DB N, 3. RETURN DOS ,0DH,0AH DB N, 3. RETURN DOS ,0DH,0AH DB N, ,0DH,0AH DB N, ,0DH,0AHL7 DB N, CHOICE(1,2,3):$ L7 DB N, CHOICE(1,2,3):$ MESG1 DB WELCOME TO BEIJING ! $ MESG1 DB WELCOME TO BE
52、IJING ! $ MESG2 DB WELCOME TO NANJING ! $ MESG2 DB WELCOME TO NANJING ! $ ENDMESG DB please strike any key $ ENDMESG DB please strike any key $ DATA ENDSDATA ENDSCODE SEGMENT CODE SEGMENT BYTE PUBLIC BYTE PUBLIC CODEUSE16CODEUSE16 ASSUME CS:CODE,DS:DATA ASSUME CS:CODE,DS:DATABEG: MOV AX,DATABEG: MOV
53、 AX,DATA MOV DS,AX MOV DS,AX MOV AX,2 MOV AX,2 INT 10H INT 10H DISP 0500H,L1 DISP 0500H,L1AGA: DISP 0B00H,L7AGA: DISP 0B00H,L7 MOV AH,1 MOV AH,1 INT 21H INT 21H CMP AL,3 CMP AL,3 JE EXIT JE EXIT CMP AL,1 CMP AL,1 JE BEG1 JE BEG1 CMP AL,2CMP AL,2 JE BEG2 JE BEG2 JMP AGA JMP AGAEXIT: MOV AH,4CHEXIT: M
54、OV AH,4CH INT 21H INT 21HCODE ENDSCODE ENDS END BEG END BEG ;FILENAME:6132_1.ASM;FILENAME:6132_1.ASM .486 .486 PUBLIC BEG1PUBLIC BEG1 EXTRN MESG1:BYTE,NEXT:NEAR EXTRN MESG1:BYTE,NEXT:NEARDISP MACRO YYXX,VARDISP MACRO YYXX,VAR MOV AH,2 MOV AH,2 MOV BH,0 MOV BH,0 MOV DX,YYXX MOV DX,YYXX INT 10H INT 10
55、H MOV AH,9 MOV AH,9 MOV DX,OFFSET VAR MOV DX,OFFSET VAR INT 21H INT 21H ENDM ENDMCODE SEGMENT BYTE PUBLIC CODEUSE16CODE SEGMENT BYTE PUBLIC CODEUSE16 ASSUME CS:CODE ASSUME CS:CODEBEG1: MOV AX,2BEG1: MOV AX,2 INT 10H INT 10H DISP 0C1EH,MESG1 DISP 0C1EH,MESG1 JMP NEXT JMP NEXTCODE ENDSCODE ENDS END EN
56、D ;FILENAME:6132_2.ASM;FILENAME:6132_2.ASM .486 .486 PUBLIC BEG2,NEXTPUBLIC BEG2,NEXT EXTRN EXTRN MESG2:BYTE,ENDMESG:BYTE,BEG:NEARMESG2:BYTE,ENDMESG:BYTE,BEG:NEARDISP MACRO YYXX,VARDISP MACRO YYXX,VAR MOV AH,2 MOV AH,2 MOV BH,0 MOV BH,0 MOV DX,YYXX MOV DX,YYXX INT 10H INT 10H MOV AH,9 MOV AH,9 MOV D
57、X,OFFSET VAR MOV DX,OFFSET VAR INT 21H INT 21H ENDM ENDMCODE SEGMENT BYTE PUBLIC CODE USE16CODE SEGMENT BYTE PUBLIC CODE USE16 ASSUME CS:CODE ASSUME CS:CODEBEG2: MOV AX,2BEG2: MOV AX,2 INT 10H INT 10H DISP 0C1EH,MESG2 DISP 0C1EH,MESG2NEXT:NEXT: DISP 171DH,ENDMESG DISP 171DH,ENDMESG MOV AH,1 MOV AH,1
58、 INT 21H INT 21H JMP BEG JMP BEGCODE ENDSCODE ENDS END END解法解法1 1,2 2中,每一個(gè)模塊中都定義了一條宏指令中,每一個(gè)模塊中都定義了一條宏指令DISP,DISP,該指令完成該指令完成光標(biāo)定位與字符串顯示光標(biāo)定位與字符串顯示, ,宏指令的名稱、結(jié)構(gòu)和參數(shù)都相同。宏指令的名稱、結(jié)構(gòu)和參數(shù)都相同。 解法解法3 3設(shè)計(jì)思路與程序分析設(shè)計(jì)思路與程序分析 定義一次宏指令定義一次宏指令DISP,DISP,各模塊共享各模塊共享. . 把要共享的宏指令單獨(dú)組織一個(gè)文件把要共享的宏指令單獨(dú)組織一個(gè)文件( (注意:只編輯不匯編注意:只編輯不匯編),),
59、存存放在指定的目錄下放在指定的目錄下, ,然后在調(diào)用模塊中用然后在調(diào)用模塊中用INCLUDEINCLUDE偽指令說明即可偽指令說明即可。 本例將本例將DISPDISP宏指令單獨(dú)組織一個(gè)文件,文件名為宏指令單獨(dú)組織一個(gè)文件,文件名為”DISPLAY.MAC”,DISPLAY.MAC”,該文件和主模塊文件以及兩個(gè)子模塊文件都放該文件和主模塊文件以及兩個(gè)子模塊文件都放在同一個(gè)目錄下,因此,在同一個(gè)目錄下,因此,INCLUDEINCLUDE偽指令可以不必寫出該文件的盤偽指令可以不必寫出該文件的盤符和路徑。符和路徑。以解法以解法2 2為基礎(chǔ)運(yùn)用宏指令共享技術(shù)為基礎(chǔ)運(yùn)用宏指令共享技術(shù), ,該程序由該程序由
60、4 4個(gè)源文件組成。個(gè)源文件組成。模塊化程序設(shè)計(jì)模塊化程序設(shè)計(jì) 解法解法3 3程序清單程序清單 ; ;FILENAME:DISPLAY.MACFILENAME:DISPLAY.MACDISP MACRO YYXX,VARDISP MACRO YYXX,VAR MOV AH,2 MOV AH,2 MOV BH,0 MOV BH,0 MOV DX,YYXX MOV DX,YYXX INT 10H INT 10H MOV AH,9 MOV AH,9 MOV DX,OFFSET VAR MOV DX,OFFSET VAR INT 21H INT 21H ENDM ENDM模塊化程序設(shè)計(jì)模塊化程序設(shè)計(jì)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國木質(zhì)可調(diào)節(jié)床架數(shù)據(jù)監(jiān)測研究報(bào)告
- Module 4 Unit 1 We'll pick fruit (教學(xué)設(shè)計(jì))-2023-2024學(xué)年外研版(一起)英語三年級下冊
- 2025至2030年中國無紡布防護(hù)衣數(shù)據(jù)監(jiān)測研究報(bào)告
- 第12課 新文化運(yùn)動(dòng)(新教學(xué)設(shè)計(jì))2023-2024學(xué)年八年級上冊歷史(部編版)
- 機(jī)器學(xué)習(xí)原理與應(yīng)用課件 第1章 概述
- 2025至2030年中國指甲膠數(shù)據(jù)監(jiān)測研究報(bào)告
- 輸電線路遷改項(xiàng)目組織結(jié)構(gòu)與人員配置
- 城區(qū)供水設(shè)施智能化改造項(xiàng)目概述
- MiniLED在顯示器行業(yè)的應(yīng)用
- 項(xiàng)目成本實(shí)施計(jì)劃
- 美團(tuán)外賣騎手服務(wù)合同(2025年度)
- 應(yīng)急預(yù)案解讀與實(shí)施
- 2025年《國有企業(yè)領(lǐng)導(dǎo)人員腐敗案例剖析》心得體會樣本(3篇)
- 廣告行業(yè)安全培訓(xùn)詳細(xì)介紹
- 2024-2029年全球及中國氨能源(綠氨)應(yīng)用可行性研究與投資戰(zhàn)略規(guī)劃分析報(bào)告
- 2025福南平市建武夷水務(wù)發(fā)展限公司招聘21人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年上半年工業(yè)和信息化部裝備工業(yè)發(fā)展中心應(yīng)屆畢業(yè)生招聘(第二批)易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年中遠(yuǎn)海運(yùn)物流有限公司招聘筆試參考題庫含答案解析
- 2024年廣州市海珠區(qū)衛(wèi)生健康系統(tǒng)招聘事業(yè)單位工作人員筆試真題
- 一科一品一骨科護(hù)理
- 加氣站安全培訓(xùn)課件
評論
0/150
提交評論