




已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
課程設(shè)計 設(shè)計名稱: 微型計算機技術(shù)及應(yīng)用簡易計算器 學(xué) 院: 信息工程學(xué)院 課 程: 微型計算機技術(shù)及應(yīng)用 姓 名: 李 智 學(xué) 號: 201407010252 班 級: 2014級 計算機科學(xué)與技術(shù)二班 目錄摘要3一、前言41.1背景41.2項目介紹4二、課程設(shè)計的目的與任務(wù)52.1設(shè)計目的52.2設(shè)計任務(wù)5三、設(shè)計過程53.1基礎(chǔ)理論53.1.1DOSBox簡介53.1.2中斷8四、設(shè)計114.1總體方案114.2原理框圖124.3程序代碼13五、系統(tǒng)模塊詳細(xì)設(shè)計與調(diào)試245.1系統(tǒng)模塊詳細(xì)設(shè)計245.1.1設(shè)置屏幕顯示方式245.1.2顯示主菜單245.1.3從鍵盤接收一個數(shù)字245.1.4接收鍵入用于計算的數(shù)255.1.5顯示結(jié)果255.1.6子程序A2將數(shù)的ASCII碼轉(zhuǎn)為二進制數(shù)255.1.7將計算結(jié)果的二進制數(shù)轉(zhuǎn)換為對應(yīng)的十進制數(shù)ASCII碼并輸出顯示(A3程序段)275.2程序編譯、運行與調(diào)試27六、設(shè)計總結(jié)29七、參考文獻31摘要本次課程設(shè)計是通過使用DOSBox匯編語言編程軟件實現(xiàn)的利用匯編語言編寫的較為復(fù)雜的程序設(shè)計。該課程設(shè)計主要是設(shè)計一個較為簡單的計算器,界面顯示要求用戶從鍵盤上分別輸入兩個隨機數(shù),完成四則運算,然后將運算結(jié)果顯示到屏幕上。該設(shè)計智能實現(xiàn)簡單的正整數(shù)之間的四則運算,無法對小數(shù)進行精確地識別。而除法運算可以精確到3位小數(shù),減法可以顯示出負(fù)數(shù)的結(jié)果。采用DOS調(diào)用(INT 21H)來完成鍵盤的輸入和屏幕的輸出。通過這次的課程設(shè)計能夠進一步加深對專業(yè)知識和理論知識學(xué)習(xí)的認(rèn)識和理解。關(guān)鍵詞:DOSBox;微機原理;計算器;匯編語言一、 前言1.1背景計算器是現(xiàn)代人發(fā)明的可以進行數(shù)字運算的電子機器。現(xiàn)代的電子計算器能進行數(shù)學(xué)運算的手持電子機器,擁有集成電路芯片,但結(jié)構(gòu)比電腦簡單得多,可以說是第一代的電子計算機(電腦),且功能也較弱。隨著微機和手機的普及,計算器逐漸退出了人們的視野,只能被局限于在課堂之上的計算工具。雖然計算器的使用范圍逐漸縮小,但計算器依舊在不斷發(fā)展。即使科技的發(fā)展帶動著小型計算器成為一個移動的計算實驗室。但它的核心卻依然沒有逃脫最簡單的四則運算:加、減、乘和除。1.2項目介紹本次課程設(shè)計就是根據(jù)微機原理與接口的相關(guān)知識,利用BIOS和DOS的中斷來設(shè)計一個簡易計算器,能夠?qū)崿F(xiàn)加減乘除四則運算,并在屏幕上顯示一個主菜單,提示用戶輸入相應(yīng)的數(shù)字鍵,分別執(zhí)行加、減、乘、除四種計算功能和結(jié)束程序的功能。同時利用BIOS中斷的10號功能調(diào)用來設(shè)置顯示方式,利用DOS中斷的01號和02號子功能來完成鍵盤接收,結(jié)果顯示。二、 課程設(shè)計的目的與任務(wù)2.1設(shè)計目的為了使學(xué)生加深對所學(xué)的微機原理知識的理解,培養(yǎng)學(xué)生的專業(yè)素質(zhì),提高其利用微機原理知識處理問題的能力,為今后專業(yè)課程的學(xué)習(xí)、畢業(yè)設(shè)計和工作打下良好的基礎(chǔ)。使學(xué)生能比較扎實地掌握微機原理的基礎(chǔ)知識和基本理論,掌握控制系統(tǒng)及有關(guān)設(shè)備的分析、開發(fā)等基本技能,受到必要工程訓(xùn)練、初步的科學(xué)研究方法訓(xùn)練和實踐鍛練,增強分析問題和解決問題的能力,了解微機原理和接口技術(shù)的新發(fā)展。2.2設(shè)計任務(wù)本課程設(shè)計是制作出一個簡易的計算器,并可以在DOCBOX上運行,并且正確地完成加、減、乘、除等四則運算。三、 設(shè)計過程3.1基礎(chǔ)理論3.1.1DOSBox簡介由于微軟公司對windos7的64位操作系統(tǒng)取締了為匯編程序開放的Edit、Masm、Link以及Debug等的功能。所以我選擇了一款比較簡單但同樣適用的Dos環(huán)境仿真器DOSBox。DOSBox是一種創(chuàng)造類DOS環(huán)境的開源x86仿真器,通常用于運行近代計算機或者非IBMPC兼容機的MS-DOSIBMPC兼容程序。不僅如此,它還是一個完整的中央處理器仿真器,并不是一個兼容層如dosemu或者依賴386類處理器虛擬化能力的Windows與OS/2VDM。不需要x86中央處理器或者任何DOS版本以運行,并且能運行真實模式與保護模式的程序。雖然DOSBox是Dos的仿真器,但它只是具有搭載環(huán)境的能力,卻并沒有自帶匯編程序的運行環(huán)境,。我們需要下載相對應(yīng)的運行環(huán)境masm或tasm。當(dāng)在下載完成后,我們需要對DOSBox進行相對應(yīng)的設(shè)置。當(dāng)配置好環(huán)境后,現(xiàn)在我們就可以使用它進行Edit,Masm,Link,Debug了EDIT:Masm和Link:完成masm和link兩步以后,我們就得到了可以運行的程序exe文件了:Debug:通過這幾個步驟,我們就可以得到我們需要的可以正確執(zhí)行地exe文件了。3.1.2中斷3.1.2.1 何謂中斷所謂中斷,是指CPU在執(zhí)行當(dāng)前程序時,由于外部事件和內(nèi)部事件,使得CPU中斷正在執(zhí)行的程序,轉(zhuǎn)到為外部與內(nèi)部事件服務(wù)的程序中去執(zhí)行。當(dāng)服務(wù)程序執(zhí)行完畢,再返回帶剛才被中斷的程序的斷點處,繼續(xù)執(zhí)行。8086有一個強有力的中斷系統(tǒng),可以處理256種不同的中斷,每個中斷對應(yīng)一個類型號,所以,256種中斷對應(yīng)的中斷類型號為0255.這256種中斷可以分成兩大類:一類叫硬件中斷;一類叫軟件中斷。硬件中斷是通過外部的硬件產(chǎn)生的,所以,也常常把硬件中斷。硬件中斷又分為兩類:一類叫非屏蔽中斷;另一類叫可屏蔽中斷。非屏蔽中斷是通過CPU的NMI引腳進入,它不受中斷允許標(biāo)志IF的屏蔽,并且整個系統(tǒng)中只有一個非屏蔽中斷??善帘沃袛嗍峭ㄟ^CPU的INTR引腳進入的,并且只有當(dāng)中斷允許標(biāo)志IF為1時,可屏蔽中斷才能進入,如果中斷允許標(biāo)志IF為0,則可屏蔽中斷受到禁止。軟件中斷是CPU根據(jù)某條指令或者軟件對標(biāo)志寄存器的設(shè)置而產(chǎn)生的,從軟件中斷的產(chǎn)生過程來說,完全和硬件電路無關(guān)。典型的軟件中斷是除數(shù)為0引起的中斷和中斷指令引起的中斷。3.1.2.2中斷向量和中斷向量表8086的中斷系統(tǒng)以位于內(nèi)存0段的03FFH區(qū)域的中斷向量表為基礎(chǔ),中斷向量表中最多可容納256個中斷向量。所謂中斷向量,實際上就是中斷處理子程序的入口地址,每個中斷類型對應(yīng)一個中斷向量。中斷向量并不是任意存放的。一個中斷向量占4個存儲單元,其中,前兩個單元存放中斷處理子程序入口地址的偏移量(IP),低位在前,高位在后,后兩個單元存放中斷處理子程序入口地址的段地址(CS),同樣也是低位在前,高位在后。256個中斷的前5個是專用中斷。類型0的中斷稱作除數(shù)為0中斷;類型1的中斷稱為單步中斷;非屏蔽中斷對應(yīng)類型2;類型3的中斷為斷點中斷;而類型4的中斷為溢出中斷。除了非屏蔽中斷外,其他幾個中斷都是軟件中斷。3.1.2.3中斷方式為了提高CPU的效率和使系統(tǒng)有實時性能,可采用中斷傳送方式。在中斷方式下,外設(shè)具有申請CPU服務(wù)的主動權(quán),當(dāng)輸入設(shè)備將數(shù)據(jù)準(zhǔn)備好或輸出設(shè)備可接收數(shù)據(jù)時,便可向CPU發(fā)中斷請求,使CPU暫時停下來目前的工作而和外設(shè)進行一次數(shù)據(jù)傳輸。等輸入操作或輸出操作完成后,CPU繼續(xù)進行原來的工作。(如左圖:)四、 設(shè)計4.1總體方案利用BIOS中斷的10號功能調(diào)用來設(shè)置顯示方式。利用DOS中斷的01號、02號子功能來完成鍵盤接受、結(jié)果顯示。設(shè)置屏幕顯示方式。 MOV AH,00H MOV AL,NUM INT 10H接著從鍵盤上接受鍵值,并判別后轉(zhuǎn)到相應(yīng)的子模塊進行運算,并顯示結(jié)果。 MOV AH,01H INT 21H ;AL=鍵入字符的ASCII碼從鍵盤上接收一串字符串命令: MOV AH,0AH MOV DX,OFFSET BUF ;BUF為數(shù)據(jù)段中定義的數(shù)據(jù)緩沖區(qū) INT 21H顯示單個字符命令: MOV AH,02H INT 21H顯示一串字符串的命令: MOV AH,09H MOV DX,OFFSET BUF ;BUF為被顯示字符串的首地址 INT 21H十進制數(shù)顯示過程:將十進制數(shù)送到BX中,BX除以1000,余數(shù)送BX中,商在AL中,范圍為09,顯示AL中的內(nèi)容。BX除以100,余數(shù)送BX中,商在AL中,顯示AL中的內(nèi)容,依次類推,直到分出個位數(shù)字。如最高位為0,則不應(yīng)顯示,而非最高位的0則顯示??衫迷O(shè)標(biāo)志位并結(jié)合商的方法來決定是否顯示0。4.2原理框圖主程序提示輸入第一個數(shù)提示輸入第二個數(shù)計 算判斷結(jié)果正負(fù),并儲存結(jié)果將結(jié)果轉(zhuǎn)為ASCII碼,并顯示結(jié)果提示返回DOS還是重新計算將第一個數(shù)的ASCII碼轉(zhuǎn)為二進制并保存將第二個數(shù)的ASCII碼轉(zhuǎn)為二進制并保存結(jié) 束子程序4.3程序代碼DATA SEGMENT N=15TOP DB 5 DUP(0AH) DB N DUP( ), Please input a number to choose the arithmetic operation, 0DH,0AH DB N DUP( ), , 0DH,0AH DB N DUP( ),1add, 0DH,0AH DB N DUP( ),2subtract, 0DH,0AH DB N DUP( ),3multiply , 0DH,0AH DB N DUP( ),4divide, 0DH,0AH DB N DUP( ),5return to DOS , 0DH,0AH DB N DUP( ), , 0DH,0AH DB N DUP( ),CHOICE (1.2.3.4.5):$MESG1 DB 0DH,0AH,PLEASE PRESS NUMBER 1.2.3.4.5 !$ MESG2 DB 0DH,0AH,PLEASE INPUT THE FIRST NUMBER :$MESG3 DB 0DH,0AH,PLEASE INPUT THE SECOND NUMBER :$MESG4 DB 0DH,0AH,PLAY ADD :$MESG5 DB 0DH,0AH,PLAY SUBTRACT :$MESG6 DB 0DH,0AH,PLAY MULTIPLY :$MESG7 DB 0DH,0AH,PLAY DIVIDE :$MESG8 DB 0DH,0AH,THE RESULT :$MESG9 DB 0DH,0AH,PRESS Q RETURN DOS,ANY PRESS RETURN START!$BUF1 DB 6 ;十進制數(shù)的緩沖區(qū),可接收6個字符 DB ? ;保留,用于10號調(diào)用時DOS填入實際輸入字符數(shù)DB 6 DUP(?) ;一個符號位,四位數(shù)字ASCII碼,加上一個回車符BUF2 DW ? ;將第一個數(shù)轉(zhuǎn)換為二進制后,放于這里BUF3 DB 6 DUP(?),$ ;將結(jié)果轉(zhuǎn)換為ASCII碼后,放在這DATA ENDSSTACK SEGMENT STACKSTACK STACK ENDSCODE SEGMENT ASSUME CS:CODE , DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AH,00H ;設(shè)置屏幕顯示方式 MOV AL,0 INT 10H MOV AH,09H ; 顯示菜單 MOV DX,OFFSET TOP INT 21HAA: MOV AH,01H ;從鍵盤接收一個數(shù)字 INT 21H CMP AL,1 ; 與1比較 JNE NEXT1 ; 不等于1就轉(zhuǎn)到NEXT1 JMP JIA ;等于1就轉(zhuǎn)到加法程序NEXT1: CMP AL,2 ; 與2比較 JNE NEXT2 ; 不等于2就轉(zhuǎn)到NEXT2 JMP JIAN ; 等于2就轉(zhuǎn)到減法程序NEXT2: CMP AL,3 ; 與3比較 JNE NEXT3 ; 不等于3就轉(zhuǎn)到NEXT3 JMP CHENG ; 等于3就轉(zhuǎn)到乘法程序NEXT3: CMP AL,4 ; 與4比較 JNE NEXT4 ; 不等于4就轉(zhuǎn)到NEXT4 JMP CHU ; 等于4就轉(zhuǎn)到除法程序NEXT4: CMP AL,5 ; 與5比較 JNE NEXT5 ; 不等于5就轉(zhuǎn)到NEXT5 MOV AH,4CH ; 返回DOS INT 21HNEXT5: MOV AH,09H ; 顯示MESG1 MOV DX,OFFSET MESG1 INT 21H JMP AA ; 跳到AAA1 PROC NEAR MOV AH,09H ; 提示輸入第一個數(shù) MOV DX,OFFSET MESG2 INT 21H MOV AH,0AH ; 接收第一個數(shù) MOV DX,OFFSET BUF1 INT 21H CALL A2 ; 調(diào)用A2進行ASCII-二進制的轉(zhuǎn)換 MOV BUF2,AX ; 把第一個數(shù)轉(zhuǎn)換的二進制放在BUF2 MOV AH,09H ; 提示輸入第二個數(shù) MOV DX,OFFSET MESG3 INT 21H MOV AH,0AH ; 接收第二個數(shù) MOV DX,OFFSET BUF1 INT 21H CALL A2 ; 調(diào)用A2把第二個數(shù)進行ASCII-二進制轉(zhuǎn)換 RETA1 ENDPA2 PROC NEAR MOV CL,BUF1+1 ; 把BUF1+1中的實際鍵入的字符數(shù)放入CL MOV CH,0 ; CH清零 MOV BX,OFFSET BUF1+2 ; 把第一個數(shù)字的地址放在BX PUSH BX ; 保護BX PUSH CX ; 保護CXL1: MOV AL,BX AND AL,0FH ; 把ASCII碼轉(zhuǎn)換為十進制 MOV BX,AL ; 存放十進制 INC BX ; 下一個數(shù)字的地址 LOOP L1 POP CX ; 恢復(fù)CX POP BX ; 恢復(fù)BX MOV AX,0 ; 將累加和賦零 MOV SI,10L2: MUL SI ADD AL,BX ADC AH,0 INC BX LOOP L2 ; 累加乘10L3: RET A2 ENDPJIA: MOV AH,09H ; 加法程序 MOV DX,OFFSET MESG4 INT 21H CALL A1 ; 調(diào)用A1 ADD AX,BUF2 ; 把轉(zhuǎn)換后的放在BUF2中的第一個數(shù)和放在AX的第二個數(shù)相加 JMP A3 JIAN: MOV AH,09H ; 減法程序 MOV DX,OFFSET MESG5 INT 21H CALL A1 MOV BX,AX ; 把轉(zhuǎn)換后的放在AX的第二個數(shù)放到BX MOV AX,BUF2 ; 把轉(zhuǎn)換后放在BUF2中的第一個數(shù)放到AX SBB AX,BX ; 兩數(shù)相減 JMP A3CHENG: MOV AH,09H ; 乘法程序 MOV DX,OFFSET MESG6 INT 21H CALL A1 MOV BX,AX ; 把轉(zhuǎn)換后的放在AX的第二個數(shù)放到BX MOV AX,BUF2 ; 把轉(zhuǎn)換后的放在BUF2中第一個數(shù)放到AX MUL BX ; 兩數(shù)相乘 JMP A3CHU: MOV AH,09H ; 除法程序 MOV DX,OFFSET MESG7 INT 21H CALL A1 MOV DX,AX ; 把轉(zhuǎn)換后的放在AX的第二個數(shù)放到DX MOV AX,BUF2 ; 把轉(zhuǎn)換后的放在BUF2中第一個數(shù)放到AX DIV DL ; 兩數(shù)相除,商在AL里 MOV AH,0H ; 使AH清零 JMP A3A3: MOV BUF3,+ ; 把BUF3放+ CMP AX,0 ; 把結(jié)果于0比較 JGE L4 ; AX0轉(zhuǎn)到 L4 NEG AX ; AX0將AX取反 MOV BUF3,- ; 把BUF3放-L4: CWD MOV BX,10000 DIV BX ; 商為第一位數(shù)字放在AL,余數(shù)放在DX CALL BB MOV BUF3+1,AL ; 把第一個數(shù)放在BUF3+1單元中 MOV AX,DX ; 把放在DX中的余數(shù)放到AX CWD MOV BX,1000 DIV BX ; 商為第二位數(shù)字放在AL,余數(shù)放在DX CALL BB MOV BUF3+2,AL ; 把第二個數(shù)放在BUF3+2單元中 MOV AX,DX ; 把放在DX中的余數(shù)放到AX MOV BL,100 DIV BL ; 商為第三位數(shù)字放在AL,余數(shù)放在AH CALL BB MOV BUF3+3,AL ; 把第三個數(shù)放在BUF3+3單元中 MOV AL,AH ; 把放在AH 中的余數(shù)放到AL CBW MOV BL,10 DIV BL ; 商為第四位數(shù)字放在AL,余數(shù)放在A CALL BB MOV BUF3+4,AL ; 把第四個數(shù)放在BUF3+4單元中 ADD AH,30H ; 把個位轉(zhuǎn)為ASSCII碼 MOV BUF3+5,AH ; 把第五個數(shù)放在BUF3+5單元中 MOV AH,09H ; 提示結(jié)果 MOV DX,OFFSET MESG8 INT 21H MOV AH,09H MOV DX,OFFSET BUF3 ; 把放在BUF3緩沖區(qū)中的結(jié)果顯示出來 INT 21H MOV AH,09H ; 提示是返回DOS還是重新計算 MOV DX,OFFSET MESG9 INT 21H MOV AH,01H ; 接收鍵盤數(shù)字 INT 21H CMP AL,Q JE A4 JMP NEXT5 ; 其他數(shù)字重新計算BB PROC NEAR CMP AL,0H ; 與零比較 JE L5 JMP L6L5: MOV AL,20H ; 等于零,賦AL空格 JMP L7L6: ADD AL,30H ; 不等于零,把數(shù)轉(zhuǎn)為ASSCII碼L7: RETBB ENDPA4: MOV AH,4CH ; AL等于Q就返回DOS INT 21HCODE ENDS END START五、 系統(tǒng)模塊詳細(xì)設(shè)計與調(diào)試5.1系統(tǒng)模塊詳細(xì)設(shè)計5.1.1設(shè)置屏幕顯示方式 MOV AH,00H MOV AL,0 INT 10H通過調(diào)用BOIS的OOH號功能來設(shè)置屏幕顯示方式。此處AL=0,即設(shè)置屏幕顯示方式為40*25黑白文本。5.1.2顯示主菜單 MOV AH,09H MOV DX,OFFSET TOP INT 21H先在數(shù)據(jù)段中定義主菜單中要顯示的字符串,再通過調(diào)用DOS系統(tǒng)的09H號功能顯示字符串(串尾字符為,但不顯示)來完成。5.1.3從鍵盤接收一個數(shù)字MOV AH,01H INT 21H 通過調(diào)用DOS系統(tǒng)的01H號功能鍵入字符并回車來實現(xiàn),其出口參數(shù)為鍵入字符的ASCII碼,存在AL中。5.1.4接收鍵入用于計算的數(shù) MOV AH,0AH MOV DX,OFFSET BUF1 通過調(diào)用DOS系統(tǒng)的0AH號功能鍵入字符串至內(nèi)存緩沖區(qū)來實現(xiàn),其入口參數(shù)如下:DS:DX=存放鍵入字符串的緩沖區(qū)的首地址;(DS:DX)=用戶規(guī)定的緩沖區(qū);(DS:DX+1)=實際鍵入的字符數(shù);從(DS:DX+2)開始放鍵入的字符串。因此,在下面的程序中運用所鍵入的數(shù)字時要注意字符串的首地址。5.1.5顯示結(jié)果 MOV AH,09H MOV DX,OFFSET BUF3 INT 21H將結(jié)果存入數(shù)據(jù)段中定義的緩沖區(qū)BUF3中,再通過調(diào)用DOS系統(tǒng)的09H號功能顯示字符串(串尾字符為,但不顯示)來完成。5.1.6子程序A2將數(shù)的ASCII碼轉(zhuǎn)為二進制數(shù)A2 PROC NEAR MOV CL,BUF1+1 ; 把BUF1+1中的實際鍵入的字符數(shù)放入CL MOV CH,0 ; CH清零 MOV BX,OFFSET BUF1+2 ; 把第一個數(shù)字的地址放在BX PUSH BX ; 保護BX PUSH CX ; 保護CXL1: MOV AL,BX AND AL,0FH ; 把ASCII碼轉(zhuǎn)換為十進制 MOV BX,AL ; 存放十進制 INC BX ; 下一個數(shù)字的地址 LOOP L1 POP CX ; 恢復(fù)CX POP BX ; 恢復(fù)BX MOV AX,0 ; 將累加和賦零 MOV SI,10L2: MUL SI ADD AL,BX ADC AH,0 INC BX LOOP L2 ; 累加乘10L3: RET A2 ENDP入口:十進制數(shù)的ASCII在BUF1內(nèi);出口:轉(zhuǎn)換后的二進制數(shù)在AX內(nèi)。算法:先將其轉(zhuǎn)換為十進制,再用累加和乘10加X的方法變?yōu)槎M制,如將163轉(zhuǎn)換為二進制數(shù),可先將累加和賦0,再計算(0*10+1)*10+6)*10+3)結(jié)果為二進制數(shù)。5.1.7將計算結(jié)果的二進制數(shù)轉(zhuǎn)換為對應(yīng)的十進制數(shù)ASCII碼并輸出顯示(A3程序段) 入口:二進制數(shù)在AX內(nèi);出口:轉(zhuǎn)換后的ASCII碼在BUF內(nèi)。算法:AX內(nèi)的數(shù)范圍在+32767到-32768之間,先檢查AX符號位,決定輸出+還是-,若為負(fù),先求補碼得到原碼后可與正數(shù)統(tǒng)一處理。方法:把將被轉(zhuǎn)換的二進制數(shù)先除以10000,商為萬位數(shù),再將余數(shù)除以1000,商為千位數(shù),以此類推,求出百十位數(shù),剩下的為個位數(shù)。最后各個數(shù)加上30H,即為對應(yīng)字符。 5.2程序編譯、運行與調(diào)試在DOS環(huán)境下,鍵入EDIT。啟動全屏幕編輯軟件EDIT,輸入源程序。輸入完畢,按Alt+F選擇SAVE保存程序(規(guī)定擴展名為*.ASM),按Alt+X退出EDIT狀態(tài)。退出EDIT環(huán)境后,輸入ASM或MASM 文件名(省略擴展名,系統(tǒng)默認(rèn)為.ASM),對源程序進行匯編。源程序經(jīng)匯編后產(chǎn)生三個輸出文件:第一個是OBJ文件,即二進制目標(biāo)文件,這是匯編的主要目的;第二個是LST文件,即列表文件;第三個是CRF文件,對于一般的程序可以不建立后兩個文件。匯編時,計算機會詢問匯編后生成的OBJ文件名、LST文件名和CRF文件名,問句的右側(cè)是示范回答,如果不想生成LST文件和CRF文件,則按回車鍵回答。匯編過程中,如果源程序中有語法錯誤,則匯編過程結(jié)束后,匯編程序會指出源程序中的錯誤,這時,可以再用編輯程序來修改源程序中的錯誤,最后,得到?jīng)]有語法錯誤的OBJ文件。匯編程序產(chǎn)生的二進制目標(biāo)文件不是可執(zhí)行文件,還必須用連接程序(LINK)把OBJ文件轉(zhuǎn)換成可執(zhí)行的EXE文件。LINK程序有兩個輸入文件OBJ和LIB,兩個輸出文件EXE和MAP。連接時,輸入LINK 文件名,對匯編生成的*.OBJ文件進行連接,計算時會詢問生成的EXE文件名、MAP文件名以及參與連接的庫文件名,如果不想生成MAP文件,沒有庫文件參與連接,則按回車鍵作答。最后,生成相應(yīng)的*.EXE文件。從LINK過程的提示信息中,可看到最后給出了一個“無堆棧段”的警告性錯誤,這并不影響程序的執(zhí)行。至此,產(chǎn)生了一個EXE文件,在DOS環(huán)境下可以直接運行該文件。在程序得到正確的結(jié)果之前,會產(chǎn)生一些錯誤,只有經(jīng)過調(diào)試階段才能糾正程序中的錯誤,從而的到正確的結(jié)果。在程序編譯過程中會提示語法錯誤,可再用編輯程序來修改源程序中的錯誤。當(dāng)沒
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年福建南平武夷文化旅游投資開發(fā)有限公司見習(xí)生、實習(xí)生考試筆試試題(含答案)
- 【南陽】2025年河南南陽市南召縣衛(wèi)生系統(tǒng)事業(yè)單位(總醫(yī)院)招聘43人筆試歷年典型考題及考點剖析附帶答案詳解
- 【遼源】2025年吉林遼源市拉拉河社會福利院招聘工作人員4人筆試歷年典型考題及考點剖析附帶答案詳解
- 文庫發(fā)布:班會課件
- 文庫發(fā)布:急診科課件
- 房間課件內(nèi)容
- 敬畏的課件教學(xué)課件
- 敬畏主題班會課件
- 散步課件介紹
- 散步的說課課件
- GB/T 5470-2008塑料沖擊法脆化溫度的測定
- GB/T 40998-2021變性淀粉中羥丙基含量的測定分光光度法
- GB/T 3672.2-2002橡膠制品的公差第2部分:幾何公差
- GB/T 31848-2015汽車貼膜玻璃貼膜要求
- GB/T 18884.2-2015家用廚房設(shè)備第2部分:通用技術(shù)要求
- GB/T 12239-2008工業(yè)閥門金屬隔膜閥
- 行政法培訓(xùn)講義課件
- DB32T 4174-2021 城市居住區(qū)和單位綠化標(biāo)準(zhǔn)
- 基本原理與性能特點多自由度電磁軸承課件
- 北京輸變電工程標(biāo)準(zhǔn)工藝應(yīng)用圖冊(圖文并茂)
- 三相負(fù)荷(380V)及單相(220V)最大供電距離計算表及電壓降計算表
評論
0/150
提交評論