版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
§4.5匯編語言程序設(shè)計(jì)上機(jī)步驟與調(diào)試方法一.上機(jī)環(huán)境硬件系統(tǒng)軟件
應(yīng)用軟件
操作系統(tǒng):DOS系統(tǒng)編輯器:
EDIT.exe編程序:MASM.exe連接程序:LINK.exe調(diào)試程序:DEBUG.exe用戶程序:ABC.exe等CPU、存儲器(ROM、RAM)、I/O接口、輸入、輸出設(shè)備二.上機(jī)步驟①D:>EDITABC.ASM②D:>MASMABC.ASM;
有語法錯,回EDIT下改源程序③D:>LINKABC.OBJ;
有錯,回在EDIT下改源程序④D:>ABC
運(yùn)行結(jié)果錯,回EDIT下改源程序或在DEBUG下調(diào)試,找原因。⑤D:>DEBUGABC.exe編輯源程序
EDIT
ABC.ASM匯編源程序
MASM
ABC.ASM形成目標(biāo)程序
ABC.OBJ連接目標(biāo)程序
LINK
ABC.OBJ有連接錯誤信息?形成可執(zhí)行程序
ABC.EXE裝入可執(zhí)行程序到內(nèi)存,并執(zhí)行D:\>ABC下一程序用DEBUG調(diào)試可執(zhí)行程序D:\>DEBUG
ABC.EXE找到原因YNYNNYN有匯編錯誤信息?Y運(yùn)行結(jié)果正確?用DEBUG調(diào)試程序查錯?點(diǎn)擊“運(yùn)行”
三.具體操作步驟舉例第一步
COMMAND
三.具體操作步驟舉例DOS提示符
三.具體操作步驟舉例進(jìn)入EDIT編輯環(huán)境
三.具體操作步驟舉例第二步
三.具體操作步驟舉例編輯源程序
三.具體操作步驟舉例編輯完后,準(zhǔn)備存盤
三.具體操作步驟舉例另存為……
三.具體操作步驟舉例
三.具體操作步驟舉例
三.具體操作步驟舉例退出EDIT環(huán)境
三.具體操作步驟舉例對源程序進(jìn)行匯編源程序名源程序17行語法錯第三步
三.具體操作步驟舉例重新進(jìn)入EDIT,打開源程序,進(jìn)行改錯
三.具體操作步驟舉例類型不明確,兩存儲器單元之間不能直接傳送數(shù)據(jù)
三.具體操作步驟舉例1.改正2.存盤3.退出
三.具體操作步驟舉例重新匯編
三.具體操作步驟舉例對目標(biāo)文件進(jìn)行連接第四步
三.具體操作步驟舉例目標(biāo)文件名
三.具體操作步驟舉例用DEBUG對可執(zhí)行文件進(jìn)行調(diào)試第五步
三.具體操作步驟舉例DEBUG提示符用R命令顯示各寄存器內(nèi)容
三.具體操作步驟舉例用U命令反匯編
三.具體操作步驟舉例用T命令單步執(zhí)行一條指令
三.具體操作步驟舉例
三.具體操作步驟舉例用D命令顯示存儲器單元內(nèi)容
三.具體操作步驟舉例
三.具體操作步驟舉例
三.具體操作步驟舉例
三.具體操作步驟舉例
三.具體操作步驟舉例
三.具體操作步驟舉例
三.具體操作步驟舉例
三.具體操作步驟舉例
三.具體操作步驟舉例用P命令單步執(zhí)行一個過程
三.具體操作步驟舉例用Q命令退出DEBUG
三.具體操作步驟舉例
三.具體操作步驟舉例用G命令設(shè)置斷點(diǎn),連續(xù)(全速)運(yùn)行程序的調(diào)式方法
三.具體操作步驟舉例用G命令連續(xù)執(zhí)行到斷點(diǎn)處
三.具體操作步驟舉例用D命令顯示存儲器單元內(nèi)容
三.具體操作步驟舉例用G命令連續(xù)執(zhí)行到斷點(diǎn)處
三.具體操作步驟舉例用D命令顯示存儲器單元內(nèi)容
三.具體操作步驟舉例用N命令命名用L命令裝入程序DEBUG裝入用戶可執(zhí)行文件的另一種方法
三.具體操作步驟舉例用E命令修改內(nèi)存
三.具體操作步驟舉例
三.具體操作步驟舉例
三.具體操作步驟舉例用D命令顯示存儲器單元內(nèi)容DEBUG常用命令匯總表(一)命令名格式功能R格式1:R顯示所有寄存器中的內(nèi)容.格式2:R寄存器名顯示修改寄存器的內(nèi)容U格式1:U[地址]從指定地址開始反匯編格式2:U地址范圍對指定的地址范圍進(jìn)行反匯編D格式1:D[地址]從指定地址開始顯示內(nèi)存單元內(nèi)容格式2:D地址范圍顯示地址范圍內(nèi)的內(nèi)存單元內(nèi)容E格式:E地址[數(shù)據(jù)]
把給定的數(shù)據(jù)送到指定地址開始連續(xù)的內(nèi)存單元中
命令名格式功能T格式:T[=地址][x]從指定的地址開始跟蹤x條指令.N格式:N[磁盤][路徑]文件名在指定的盤,路徑下建立文件G格式:G[=地址][斷點(diǎn)]從指定地址開始執(zhí)行程序,到斷點(diǎn)處停下來.
W格式:W[地址]從地址開始的內(nèi)存塊寫文件.
L格式:L[地址]將N命令指定的文件調(diào)入指定的內(nèi)存地址.
DEBUG常用命令匯總表(二)DEBUG常用命令匯總表(三)命令名格式功能A格式:A[地址]從指定地址開始,對輸出的語句匯編到內(nèi)存.P格式:P[=地址][x]執(zhí)行一個循環(huán)直到中斷,x代表執(zhí)行循環(huán)的次數(shù).Q格式:Q結(jié)束并退出DEBUG程序.I格式:I端口地址從指定的端口地址讀一個字節(jié),并顯示出來.
O格式:O端口地址值將值送到指定端口.
本章要點(diǎn)及復(fù)習(xí)重點(diǎn)4.1匯編語言基礎(chǔ)1.掌握機(jī)器語言、機(jī)器語言程序、匯編語言、匯編語言源程序、匯編、匯編程序等概念。2.掌握匯編語言中表達(dá)式,特別是屬性表達(dá)式及屬性修改操作符PTR的應(yīng)用。3.熟練掌握DB、DW、DD變量定義偽指令的應(yīng)用會畫出變量定義語句匯編后的存儲器分配示意圖。
本章要點(diǎn)及復(fù)習(xí)重點(diǎn)4.28086指令系統(tǒng)1.數(shù)據(jù)傳送類指令掌握MOV、XCHG、LEA、XLAT、PUSH、POP等指令的應(yīng)用。2.算術(shù)運(yùn)算類指令掌握加法(ADD、ADC、INC)、減法(SUB、SBB、DEC、NEG、CMP)、乘法、除法、BCD數(shù)調(diào)整(DAA)等指令的應(yīng)用及對標(biāo)志位的影響。
本章要點(diǎn)及復(fù)習(xí)重點(diǎn)3.掌握邏輯運(yùn)算類指令(AND、OR、XOR、NOT、
TEST)的應(yīng)用及對標(biāo)志位的影響。4.掌握移位指令(SHL、SHR、SAL、SAR)、循環(huán)移位指令(ROL、ROR、RCL、RCR)等指令的應(yīng)用。
本章要點(diǎn)及復(fù)習(xí)重點(diǎn)4.3匯編語言程序設(shè)計(jì)1.掌握匯編語言程序設(shè)計(jì)步驟。2.熟練掌握匯編語言源程序的完整結(jié)構(gòu)及相應(yīng)的偽指令的意義。3.掌握分支程序設(shè)計(jì)時(shí)應(yīng)注意的幾個問題,會設(shè)計(jì)簡單的分支程序。4.掌握循環(huán)程序的基本結(jié)構(gòu)及循環(huán)程序的設(shè)計(jì),會用氣泡排序法進(jìn)行二重循環(huán)程序設(shè)計(jì)。
本章要點(diǎn)及復(fù)習(xí)重點(diǎn)5.掌握子程序設(shè)計(jì)時(shí)的幾個問題,包括:子程序的定義方法CALL、RET指令的應(yīng)用(注意段內(nèi)、段間子程序調(diào)用與返回時(shí)現(xiàn)場的保護(hù)與恢復(fù)以及堆棧的變化情況)主程序與子程序之間參數(shù)的傳遞方法用戶信息的保護(hù)與恢復(fù)方法子程序說明文件包含的內(nèi)容
本章要點(diǎn)及復(fù)習(xí)重點(diǎn)6.熟練掌握DOS的01H、02H、09H、0AH功能的調(diào)用方法。7.掌握字符串處理指令(MOVS、CMPS、SCAS、
STOS、LODS)的共同約定以及應(yīng)用8.掌握宏指令的定義及調(diào)用方法
本章要點(diǎn)及復(fù)習(xí)重點(diǎn)4.4匯編語言程序的上機(jī)調(diào)試1.掌握匯編語言程序設(shè)計(jì)上機(jī)的基本步驟。2.掌握DEBUG的R、U、T、G、D、E、A、N、L、
Q等命令的功能及使用方法。上機(jī)作業(yè)(一)1.熟練掌握8086/8088的各種尋址方式及應(yīng)用。2.
掌握DEBUG調(diào)試程序中的一些常用命令的使用方法,為以后的實(shí)驗(yàn)打下基礎(chǔ)。一.實(shí)驗(yàn)?zāi)康亩?實(shí)驗(yàn)儀器586微機(jī)1臺尋址方式練習(xí)上機(jī)作業(yè)(一)1.
關(guān)于數(shù)據(jù)的尋址方式練習(xí)8086/8088提供多種方式實(shí)現(xiàn)操作數(shù)尋址,大體可分為7種:a.
立即尋址b.
寄存器尋址c.
直接尋址d.
寄存器間接尋址
e.
寄存器相對尋址f.
基址變址尋址g.
基址變址且相對尋址三.實(shí)驗(yàn)內(nèi)容a-b要尋找的操作數(shù)與存儲器無關(guān)。c-g要尋找的操作數(shù)在存貯器某單元,存貯器單元的地址由尋址方式確定。上機(jī)作業(yè)(一)掌握8086/8088的這些尋址方式,是學(xué)習(xí)匯編語言編程的關(guān)鍵。因此,我們編寫了下面的程序段,以數(shù)據(jù)傳送指令為例,列舉了部份尋址方式,請同學(xué)們按下列要求認(rèn)真完成。
[1]在全屏幕編輯軟件下,建立以下匯編語言源程序。上機(jī)作業(yè)(一)STACKSEGMENTSTACKDB0B0H,0B1H,0B2H,0B3H,0B4H,0B5H,0B6H,0B7H,DB0B8H,0B9HDB0BAH,0BBH,0BCH,0BDH,0BEH,0BFHDB10HDUP(00)STACKENDSDATA1SEGMENTDB0A0H,0A1H,0A2H,0A3HTABLEDW0A5A4HDB0A6H,0A7H,0A8H,0A9H,0AAH,0ABHDB0ACH,0ADH,0AEH,0AFHDATA1ENDS上機(jī)作業(yè)(一)DATA2SEGMENTDB0C0H,0C1H,0C2H,0C3H,0C4H,0C5H,0C6H,0C7HDB0C8H,0C9H,0CAH,0CBH,0CCH,0CDH,0CEH,0CFHDATA2ENDSCODESEGMENTASSUMECS:CODE,DS:DATA1,ES:DATA2,SS:STACKSTART:MOVAX,DATA1MOVDS,AXMOVAX,DATA2MOVES,AXMOVBX,0004HMOVCX,0005H上機(jī)作業(yè)(一)MOVBP,0003H MOVSI,0002HMOVDI,0001HMOVAX,CX;以下指令按后表要求完成MOVAX,500H MOVAX,TABLE MOVAX,ES:[BX]MOVAX,[BX+05H] MOVAX,SS:[BX]+03H MOVAX,TABLE[BX] MOVAX,07H[BX] MOVAX,[BP]上機(jī)作業(yè)(一)MOVAX,TABLE[BP] MOVAX,08H[BP]MOVAX,[BP+06H]
MOVAX,DS:[BP+03H] MOVAX,[BP]+05H MOVAX,ES:[SI+03H] MOVAX,[DI+06H] MOVAX,[DI]+05H MOVAX,TABLE[SI] MOVAX,[SI] MOVAX,TABLE[DI] MOVAX,[SI]+05H上機(jī)作業(yè)(一) MOVAX,[BX][DI+01H] MOVAX,[BX][SI]+03H MOVAX,TABLE[BX][SI] MOVAX,ES:[BX][DI] MOVAX,[BP][DI+02H] MOVAX,TABLE[BP][DI] MOVAX,ES:[BP][SI] MOVAX,[BP][SI+05H] MOVAX,03H[BP][DI] MOVAX,[BP][SI] MOVAX,[BP+02H][DI+03H] MOVAX,TABLE[BP+02H][DI+03H] MOVAH,4CH INT21HCODEENDS ENDSTART上機(jī)作業(yè)(一)
[2]用MASM.EXE宏匯編程序?qū)σ陨显闯绦蜻M(jìn)行匯編,其方法為:
MASM文件名.ASM;回車
此時(shí),如果源程序中無語法錯誤,則在磁盤上形成文件名.OBJ文件。
[3]用LINK.EXE連接程序?qū)ξ募?OBJ文件進(jìn)行連接,其方法為:
LINK文件名.OBJ;回車此時(shí),如果連接正確,則在磁盤上形成:文件名.EXE
可執(zhí)行文件。
[4]對源程序中從MOVAX,CX開始以下所有指令按下表進(jìn)行計(jì)算。
上機(jī)作業(yè)(一)指令SRC尋址方式SRC的地址AX推算值A(chǔ)X實(shí)際值MOVAX,CXMOVAX,500HMOVAX,TABLEMOVAX,ES:[BX]MOVAX,[BX+05H]MOVAX,SS:[BX]+03HMOVAX,TABLE[BX]MOVAX,07H[BX]MOVAX,[BP]上機(jī)作業(yè)(一)指令SRC尋址方式SRC的地址AX推算值A(chǔ)X實(shí)際值MOVAX,TABLE[BP]MOVAX,08H[BP]MOVAX,[BP+06H]
MOVAX,DS:[BP+03H]MOVAX,[BP]+05HMOVAX,ES:[SI+03H]MOVAX,[DI+06H]MOVAX,[DI]+05HMOVAX,TABLE[SI]上機(jī)作業(yè)(一)指令SRC尋址方式SRC的地址AX推算值A(chǔ)X實(shí)際值MOVAX,[SI]MOVAX,TABLE[DI]MOVAX,[SI]+05HMOVAX,[BX][DI+01H]MOVAX,[BX][SI]+03HMOVAX,TABLE[BX][SI]MOVAX,ES:[BX][DI]MOVAX,[BP][DI+02H]MOVAX,TABLE[BP][DI]上機(jī)作業(yè)(一)指令SRC尋址方式SRC的地址AX推算值A(chǔ)X實(shí)際值MOVAX,ES:[BP][SI]MOVAX,[BP][SI+05H]MOVAX,03H[BP][DI]MOVAX,[BP][SI]MOVAX,[BP+02H][DI+03H]MOVAX,TABLE[BP+02H][DI+03H]上機(jī)作業(yè)(一)[5]用T命令單步運(yùn)行程序,并用R命令檢查AX結(jié)果,同時(shí)將結(jié)果作為實(shí)際值填入上表中,和推算值進(jìn)行比較,從而檢驗(yàn)自己對該條指令對應(yīng)的尋址方式是否掌握。也可用D命令察看存貯器的內(nèi)容,具體操作方法參看DEBUG使用部分。上機(jī)作業(yè)(一)在上表中,分析AX推算值與實(shí)際值有何不同?找出錯誤原因,小結(jié)出各種尋址方式所用的段寄存器的規(guī)律來。四.問題討論上機(jī)作業(yè)(一)五.實(shí)驗(yàn)報(bào)告要求
實(shí)驗(yàn)名稱1.實(shí)驗(yàn)?zāi)康?.實(shí)驗(yàn)儀器3.實(shí)驗(yàn)內(nèi)容及實(shí)驗(yàn)程序4.實(shí)驗(yàn)數(shù)據(jù)及結(jié)果5.問題討論
上機(jī)作業(yè)(二)1.
熟練掌握匯編語言程序設(shè)計(jì)的方法及上機(jī)步驟。2.
掌握算術(shù)運(yùn)算指令的應(yīng)用。3.
掌握子程序的設(shè)計(jì)方法。4.
掌握DOS功能的調(diào)用方法。一.實(shí)驗(yàn)?zāi)康亩?實(shí)驗(yàn)儀器586微機(jī)1臺程序設(shè)計(jì)練習(xí)上機(jī)作業(yè)(二)編寫程序求兩個十進(jìn)制數(shù)之和,并將和以十進(jìn)制數(shù)的形式送屏幕顯示。編程要求與提示:
[1]從鍵盤輸入兩個十進(jìn)制數(shù)(如12678532與21736543),以二進(jìn)制數(shù)形式存放在ADD1和ADD2為首址的存貯器單元,輸入一個十進(jìn)制數(shù)采用子程序形式。
[2]和以二進(jìn)制數(shù)的形式存入SUM以下單元。[3]將和送到屏幕顯示采用子程序形式。
[4]實(shí)驗(yàn)步驟如下:三.實(shí)驗(yàn)內(nèi)容上機(jī)作業(yè)(二)
a.
用全屏幕編輯軟件建立源程序。b.用masm.exe匯編程序?qū)υ闯绦蜻M(jìn)行匯編,形成目標(biāo)程序。
c.
用link.exe連接程序?qū)δ繕?biāo)程序進(jìn)行連接形成可執(zhí)行文件。d.
用DEBUG對連接通過的可執(zhí)行程序進(jìn)行調(diào)試。上機(jī)作業(yè)(三)有一個首地址為A的N字?jǐn)?shù)組,請編程序使該數(shù)組中的數(shù)按從大到小的次序排列。編程要求及提示:
[1]參加排序的數(shù)據(jù)及個數(shù)由學(xué)生自己定義。[2]要將排序前的數(shù)組和排序后的數(shù)組在屏幕上顯示出來。[3]實(shí)驗(yàn)步驟同作業(yè)二。上機(jī)作業(yè)(三)五.實(shí)驗(yàn)報(bào)告要求
實(shí)驗(yàn)名稱1.實(shí)驗(yàn)?zāi)康?.實(shí)驗(yàn)儀器3.實(shí)驗(yàn)內(nèi)容4.給出實(shí)驗(yàn)內(nèi)容對應(yīng)的源程序及流程5.問題討論
上機(jī)作業(yè)(四)
1.增強(qiáng)和提高匯編語言程序設(shè)計(jì)的能力,掌握模塊化程序設(shè)計(jì)的方法.2.熟練掌握DOS常用功能的調(diào)用方法.一.實(shí)驗(yàn)?zāi)康亩?實(shí)驗(yàn)儀器586微機(jī)一臺程序設(shè)計(jì)綜合練習(xí)上機(jī)作業(yè)(四)編寫如下程序,并在機(jī)器上調(diào)試
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 養(yǎng)老院老人家庭溝通制度
- 數(shù)碼產(chǎn)品租賃合同(2篇)
- 2024年物業(yè)設(shè)施管理合同3篇
- 2025年平頂山貨運(yùn)駕駛員從業(yè)資格證考試題庫答案
- 2025年林芝貨運(yùn)從業(yè)資格證模擬考試下載
- 2025年懷化經(jīng)營性道路客貨運(yùn)輸駕駛員從業(yè)資格考試
- 《催眠治療》課件
- 2024年教育設(shè)施融資租賃擔(dān)保合同示例2篇
- 2025年東莞a2駕駛證貨運(yùn)從業(yè)資格證模擬考試
- 2024年版礦業(yè)開發(fā)合同
- 中華民族現(xiàn)代文明有哪些鮮明特質(zhì)?建設(shè)中華民族現(xiàn)代文明的路徑是什么?參考答案
- 2024年云南省昆明市公安局勤務(wù)輔警崗位招聘260人歷年高頻500題難、易錯點(diǎn)模擬試題附帶答案詳解
- 2024年江蘇省徐州市中考數(shù)學(xué)試卷(附答案)
- 2024年初級美容師資格證考試試題及答案
- 2024-2030年中國固體氧化物燃料電池(SOFC)行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報(bào)告
- 高中綜合實(shí)踐課程:設(shè)計(jì)未來城市(課件)
- 從文學(xué)到電影智慧樹知到期末考試答案章節(jié)答案2024年山東大學(xué)
- 腹腔鏡下輸尿管膀胱再植術(shù)后護(hù)理查房
- AQ/T 1119-2023 煤礦井下人員定位系統(tǒng)通 用技術(shù)條件(正式版)
- 國家中醫(yī)藥管理局發(fā)布的406種中醫(yī)優(yōu)勢病種診療方案和臨床路徑目錄
- 體育賽事組織流程圖所有
評論
0/150
提交評論