匯編語(yǔ)言實(shí)訓(xùn)項(xiàng)目指導(dǎo)手冊(cè)_第1頁(yè)
匯編語(yǔ)言實(shí)訓(xùn)項(xiàng)目指導(dǎo)手冊(cè)_第2頁(yè)
匯編語(yǔ)言實(shí)訓(xùn)項(xiàng)目指導(dǎo)手冊(cè)_第3頁(yè)
匯編語(yǔ)言實(shí)訓(xùn)項(xiàng)目指導(dǎo)手冊(cè)_第4頁(yè)
匯編語(yǔ)言實(shí)訓(xùn)項(xiàng)目指導(dǎo)手冊(cè)_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

匯編語(yǔ)言實(shí)訓(xùn)項(xiàng)目指導(dǎo)手冊(cè)3.5.4關(guān)鍵說(shuō)明中斷向量表:中斷向量號(hào)08H對(duì)應(yīng)的中斷向量位于內(nèi)存0000:0020H-0000:0023H(每個(gè)中斷向量占4字節(jié),08H×4=20H);自定義中斷處理程序:必須使用`FAR`類型(遠(yuǎn)過(guò)程),因?yàn)橹袛嗵幚沓绦蛐枰缍握{(diào)用;保存寄存器:中斷處理程序會(huì)修改寄存器的值,因此需要在進(jìn)入時(shí)保存(`PUSH`),退出時(shí)恢復(fù)(`POP`);調(diào)用原中斷處理程序:必須調(diào)用原時(shí)鐘中斷處理程序,否則系統(tǒng)無(wú)法更新時(shí)鐘,導(dǎo)致崩潰。四、常見(jiàn)問(wèn)題與解決4.1編譯錯(cuò)誤(1)錯(cuò)誤信息:`Undefinedsymbol:DATA`原因:未定義數(shù)據(jù)段(`DATASEGMENT`),或`ASSUME`偽指令中的段名寫錯(cuò)。解決:檢查數(shù)據(jù)段是否定義,`ASSUME`偽指令中的段名是否與數(shù)據(jù)段、代碼段的名稱一致。(2)錯(cuò)誤信息:`Statementtoolong`原因:一行代碼超過(guò)了匯編器的最大長(zhǎng)度(通常為128字符)。解決:將長(zhǎng)語(yǔ)句拆分為多行(如將長(zhǎng)字符串拆分為多個(gè)`DB`指令)。(3)錯(cuò)誤信息:`Operandtypemismatch`原因:指令的操作數(shù)類型不匹配(如用`ADD`指令將字節(jié)寄存器與字內(nèi)存單元相加)。解決:檢查操作數(shù)的類型(字節(jié)/字),確保一致(如用`ADDAL,BYTEPTR[SI]`指定字節(jié)類型)。4.2運(yùn)行錯(cuò)誤(1)錯(cuò)誤信息:`Programtoobigtofitinmemory`原因:程序太大,超過(guò)了DOS的內(nèi)存限制(16位程序最大為64KB)。解決:優(yōu)化代碼(如減少冗余指令),或使用`MODEL`偽指令(如`SMALL`模型,數(shù)據(jù)段與代碼段各占64KB)。(2)錯(cuò)誤信息:`Divideoverflow`原因:除法運(yùn)算的結(jié)果超過(guò)了目標(biāo)寄存器的容量(如用`DIVBL`將100除以10,結(jié)果為10,超過(guò)了AL寄存器的容量(0-255)?不,100/10=10,AL可以容納,此處舉例錯(cuò)誤,正確的例子是1000除以10,結(jié)果為100,AL無(wú)法容納(AL是8位,最大255?不,100是小于255的,正確的錯(cuò)誤例子是____除以10,結(jié)果為1000,AL無(wú)法容納)。原因:除法運(yùn)算的商超過(guò)了目標(biāo)寄存器的容量(如用`DIVBL`將1000除以10,商為100,超過(guò)了AL寄存器的容量(8位,最大255?不,100是小于255的,正確的錯(cuò)誤例子是____除以10,商為1000,AL無(wú)法容納)。解決:使用16位除法(`DIVBX`),將商存入AX寄存器(AL=商的低8位,AH=商的高8位?不,16位除法中,`DIVBX`的被除數(shù)是DX:AX(32位),商存入AX,余數(shù)存入DX)。4.2運(yùn)行錯(cuò)誤(1)程序無(wú)法顯示字符串原因:字符串未以`$`結(jié)尾(DOS中斷9號(hào)功能需要`$`作為結(jié)束符)。解決:在字符串末尾添加`$`(如`MSGDB'Hello$'`)。(2)程序運(yùn)行后無(wú)反應(yīng)原因:程序沒(méi)有正常退出(未調(diào)用`MOVAH,4CH`和`INT21H`)。解決:在程序結(jié)束前添加退出指令。(3)顯示亂碼原因:字符串格式錯(cuò)誤(如未以`$`結(jié)尾,或使用了錯(cuò)誤的ASCII碼)。解決:檢查字符串是否以`$`結(jié)尾,確保字符轉(zhuǎn)換正確(如將整數(shù)轉(zhuǎn)換為ASCII碼時(shí)添加`'0'`)。4.3調(diào)試問(wèn)題(1)無(wú)法查看內(nèi)存中的字符串原因:DS寄存器未正確指向數(shù)據(jù)段(如未執(zhí)行`MOVAX,DATA`和`MOVDS,AX`)。解決:使用`rds`命令查看DS寄存器的值,確保其等于數(shù)據(jù)段的段地址(可通過(guò)`link`命令的映射文件查看段地址)。(2)單步執(zhí)行時(shí)程序崩潰原因:中斷處理程序未保存寄存器,或未調(diào)用原中斷處理程序。解決:檢查中斷處理程序是否保存了所有修改的寄存器(如`PUSHAX`、`PUSHDS`),是否調(diào)用了原中斷處理程序。五、擴(kuò)展練習(xí)建議1.案例1擴(kuò)展:修改`HelloWorld`程序,顯示彩色字符串(使用BIOS中斷`INT10H`設(shè)置文本屬性);2.案例2擴(kuò)展:實(shí)現(xiàn)16位整數(shù)的乘法(`MUL`指令)和除法(`DIV`指令),處理負(fù)數(shù)(使用補(bǔ)碼);3.案例3擴(kuò)展:讀取多個(gè)字符(如輸入一個(gè)字符串),顯示其長(zhǎng)度;4.案例4擴(kuò)展:實(shí)現(xiàn)選擇排序或插入排序,處理浮點(diǎn)數(shù)數(shù)組;5.案例5擴(kuò)展:修改時(shí)鐘中斷處理程序,每秒鐘播放一次聲音(使用PC喇叭,`OUT61H,AL`);6.綜合項(xiàng)目:實(shí)現(xiàn)一個(gè)簡(jiǎn)單的計(jì)算器(支持加減乘除運(yùn)算,從鍵盤輸入,顯示結(jié)果)。六、實(shí)訓(xùn)總結(jié)與考核6.1總結(jié)要點(diǎn)匯編語(yǔ)言的核心是寄存器和內(nèi)存,所有操作都圍繞它們進(jìn)行;DOS/BIOS中斷是匯編語(yǔ)言與硬件交互的重要方式,需熟練掌握常用中斷的功能;中斷處理程序的編寫需要注意保存寄存器和調(diào)用原中斷,避免破壞系統(tǒng)環(huán)境。6.2考核標(biāo)準(zhǔn)考核項(xiàng)考核內(nèi)容權(quán)重基礎(chǔ)語(yǔ)法掌握能否正確使用偽指令(`SEGMENT`、`ENDS`、`ASSUME`)、寄存器、指令(數(shù)據(jù)傳送、算術(shù)運(yùn)算等)20%程序設(shè)計(jì)能力能否完成案例1-5的程序編寫,實(shí)現(xiàn)需求功能30%調(diào)試能力能否使用`DEBUG`工具查看寄存器、內(nèi)存,解決編譯/運(yùn)行錯(cuò)誤20%擴(kuò)展練習(xí)完成情況能否完成至少2個(gè)擴(kuò)展練習(xí),實(shí)現(xiàn)更復(fù)雜的功能20%實(shí)訓(xùn)報(bào)告能否總結(jié)實(shí)訓(xùn)中的收獲、遇到的問(wèn)題及解決方法,內(nèi)容詳實(shí)、邏輯清晰10%6.3考核方式過(guò)程考核:查看學(xué)生的程序代碼、調(diào)試記錄、擴(kuò)展練習(xí)完成情況;結(jié)果考核:讓學(xué)生演示程序運(yùn)行結(jié)果,回答教師提出的問(wèn)題(如“中斷處理程序?yàn)槭裁匆4婕拇嫫鳎俊保?;?bào)告考核:要求學(xué)生提交實(shí)訓(xùn)報(bào)告,內(nèi)容包括項(xiàng)目概述、設(shè)計(jì)思路、代碼實(shí)現(xiàn)、調(diào)試過(guò)程、結(jié)果分析、總結(jié)與展望。七、參考文獻(xiàn)1.《匯編語(yǔ)言》(第三版),王爽著,清華大學(xué)出版社;2.《80x86匯編語(yǔ)言程序設(shè)計(jì)》(第五版),IBM著,電子工業(yè)出版社;附錄:常用DOS中斷表(部分)中斷號(hào)功能描述AH值輸入?yún)?shù)輸出參數(shù)21H顯示字符串9DX=字符串偏移無(wú)21H讀取鍵盤輸入1無(wú)AL=輸入字符21H顯示字符2DL=字符無(wú)21H程序退出4CH無(wú)無(wú)21H獲取中斷向量35HAL=中斷向量號(hào)ES:BX=中斷向量21H設(shè)置中斷向量25HAL=中斷向量號(hào)DS:DX=新中斷向量10H

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論