




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、匯編語言上機過程匯編語言上機過程(自學自學) 通常匯編教學中,匯編程序結(jié)構(gòu)會在指令系通常匯編教學中,匯編程序結(jié)構(gòu)會在指令系統(tǒng)后面講,學生在學習指令系統(tǒng)時由于沒有講匯統(tǒng)后面講,學生在學習指令系統(tǒng)時由于沒有講匯編程序結(jié)構(gòu)而無法編寫匯編程序來加深對匯編指編程序結(jié)構(gòu)而無法編寫匯編程序來加深對匯編指令的理解,因此,在這里我們通過令的理解,因此,在這里我們通過2個例子,介個例子,介紹使用紹使用DEBUG調(diào)試工具編寫程序段來學習匯編調(diào)試工具編寫程序段來學習匯編指令。指令。有關有關DEBUG的常用命令的用法請參看教材的的常用命令的用法請參看教材的P32 2.5 DEBUG主要命令主要命令題目:壓縮題目:壓縮B
2、CD碼的加法運算,做碼的加法運算,做58+25MOVAL,58ADD AL,25DAA運行運行debugADD加法指令;加法指令;DAA壓縮壓縮BCD碼調(diào)整指令,將運碼調(diào)整指令,將運算結(jié)果調(diào)整為十進制結(jié)果一致算結(jié)果調(diào)整為十進制結(jié)果一致83。如果為如果為32位位系統(tǒng)則如右系統(tǒng)則如右圖操作:圖操作:64位機的同學則啟動位機的同學則啟動DOSBOX,輸入,輸入DEBUG命令,然后命令,然后用用A命令輸入指令序列。注意:匯編語言大小寫不敏感命令輸入指令序列。注意:匯編語言大小寫不敏感!Debug中只使用中只使用16進制數(shù)進制數(shù),且無需加,且無需加H后綴后綴直接用回車退出匯編編輯狀態(tài)直接用回車退出匯編編
3、輯狀態(tài)使用使用T命令跟蹤執(zhí)行命令跟蹤執(zhí)行第一個第一個T命令要帶上程序首地址命令要帶上程序首地址后面的后面的T命令無需地址命令無需地址標志位標志位調(diào)試完后用調(diào)試完后用Q命令退出命令退出DEBUG。DEBUG命令參見教材命令參見教材2附錄附錄D。下面給出。下面給出DEBUG中標中標志位狀態(tài)符號的含義。志位狀態(tài)符號的含義。標志標志為為1時時為為0時時溢出溢出OF方向方向DF中斷中斷IF符號符號SF零位零位ZF輔助輔助AF奇偶奇偶PF進位進位CFOVDNEINGZRACPECYNVUPDIPLNZNAPONC再舉一個有訪存操作的例子再舉一個有訪存操作的例子 MOV SI, 0050H ; (DS)=2
4、000H MOV DI, 0100H ; (ES)=3000H MOV CX, 5 CLD 1)先用)先用A命令輸入程序命令輸入程序2)用)用R命令修改命令修改DS和和ES寄存器到約定值寄存器到約定值DS的原始值的原始值輸入的修改值輸入的修改值3)用)用D命令查看源數(shù)據(jù)區(qū)和目標數(shù)據(jù)區(qū)命令查看源數(shù)據(jù)區(qū)和目標數(shù)據(jù)區(qū)4)用)用E命令初始化源數(shù)據(jù)區(qū)后再用命令初始化源數(shù)據(jù)區(qū)后再用D命令檢查源數(shù)據(jù)命令檢查源數(shù)據(jù)區(qū)和目的數(shù)據(jù)區(qū)區(qū)和目的數(shù)據(jù)區(qū)5)單步跟蹤執(zhí)行程序)單步跟蹤執(zhí)行程序6)執(zhí)行后檢查源數(shù)據(jù)區(qū)和目標數(shù)據(jù)區(qū))執(zhí)行后檢查源數(shù)據(jù)區(qū)和目標數(shù)據(jù)區(qū)注意,用注意,用A命令輸入指令時,如果輸入錯誤命令輸入指令時,如果
5、輸入錯誤debug會立會立即指出錯誤和位置。地址不會變化,以便用戶修正指即指出錯誤和位置。地址不會變化,以便用戶修正指令。令。第一步編輯:第一步編輯:第二步匯編:第二步匯編:可以不輸入,用回車回應可以不輸入,用回車回應修改好后再匯編:修改好后再匯編:第三步連接并執(zhí)行:第三步連接并執(zhí)行:可以直接用回車回應可以直接用回車回應執(zhí)行執(zhí)行用用DEBUG調(diào)試程序:調(diào)試程序:1)用)用U命令查看程序和目標碼及指令地址命令查看程序和目標碼及指令地址2)用)用T命令單步跟蹤,逐條執(zhí)行看中間結(jié)果,命令單步跟蹤,逐條執(zhí)行看中間結(jié)果,DEBUG將顯示每個寄存器以及各標志位的當前值將顯示每個寄存器以及各標志位的當前值這
6、是還未執(zhí)行的下這是還未執(zhí)行的下一條指令一條指令這是這是MOV BX,SI的執(zhí)行結(jié)果的執(zhí)行結(jié)果標志位標志位3)對于系統(tǒng)功能調(diào)用,可以用)對于系統(tǒng)功能調(diào)用,可以用G命令設置斷點執(zhí)行,命令設置斷點執(zhí)行,也可以用也可以用P命令跳過過程與系統(tǒng)功能服務程序。命令跳過過程與系統(tǒng)功能服務程序。設斷點執(zhí)行,斷點設在設斷點執(zhí)行,斷點設在INT 21H的后一句的后一句INT 21H輸出的一個字符輸出的一個字符注意:注意:DEBUG只支持只支持16位匯編調(diào)試,如果要編寫位匯編調(diào)試,如果要編寫32位匯編程序,需要用位匯編程序,需要用MASM 6.11匯編和連接,用匯編和連接,用CodeView軟件查看執(zhí)行代碼。但軟件查
7、看執(zhí)行代碼。但MASM 6.11中帶的中帶的CodeView 4.01可以查看可以查看32位程序的執(zhí)行代碼,不能進位程序的執(zhí)行代碼,不能進行單步調(diào)試。要調(diào)試可以考慮使用行單步調(diào)試。要調(diào)試可以考慮使用SoftICE軟件。軟件。另外,另外,VC嵌入?yún)R編可以支持嵌入?yún)R編可以支持80486的所有指令,也支的所有指令,也支持持32位匯編。位匯編。建立源程序建立源程序asmsample.cpp將下列程序輸入到將下列程序輸入到asmsample.cpp中中#include int power2(int, int);void main(void) cout2的的6次方乘次方乘5等于等于:t; coutpower2(5,6)endl;int power2(int num, int power) _asm mov eax
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 吃小食品不是小事800字9篇
- 運動俱樂部家庭溝通與支持措施
- 假期旅游行程與工作雙重證明(5篇)
- 智能穿戴設備開發(fā)及銷售代理合同
- 環(huán)保項目總承包管理措施
- 電子書銷售及授權協(xié)議
- 2025年雞肉增香劑項目市場調(diào)查研究報告
- 汽車行業(yè)安全隱患防范學習心得體會
- 口腔科病歷與患者溝通技巧范文
- 狼王夢讀后感2000字(12篇)
- 樂山市市級事業(yè)單位選調(diào)工作人員考試真題2024
- 山東省濟南市2025屆高三三模生物試卷(含答案)
- 2025年法律基礎知識考試試題及答案
- DZ∕T 0211-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 重晶石、毒重石、螢石、硼(正式版)
- 初中七年級數(shù)學下學期5月月考試卷
- 汽機發(fā)電量計算
- GB∕T 1457-2022 夾層結(jié)構(gòu)滾筒剝離強度試驗方法
- 康復治療技術(康復養(yǎng)老服務)專業(yè)群建設方案
- 第五章結(jié)型場效應晶體管
- 麗聲北極星自然拼讀繪本第一級Uncle Vic‘s Wagon 課件
- 2019幼兒園家委會PPT
評論
0/150
提交評論