匯編語(yǔ)言上機(jī)過(guò)程(自學(xué))_第1頁(yè)
匯編語(yǔ)言上機(jī)過(guò)程(自學(xué))_第2頁(yè)
匯編語(yǔ)言上機(jī)過(guò)程(自學(xué))_第3頁(yè)
匯編語(yǔ)言上機(jī)過(guò)程(自學(xué))_第4頁(yè)
匯編語(yǔ)言上機(jī)過(guò)程(自學(xué))_第5頁(yè)
已閱讀5頁(yè),還剩21頁(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)介

1、匯編語(yǔ)言上機(jī)過(guò)程匯編語(yǔ)言上機(jī)過(guò)程(自學(xué)自學(xué)) 通常匯編教學(xué)中,匯編程序結(jié)構(gòu)會(huì)在指令系通常匯編教學(xué)中,匯編程序結(jié)構(gòu)會(huì)在指令系統(tǒng)后面講,學(xué)生在學(xué)習(xí)指令系統(tǒng)時(shí)由于沒(méi)有講匯統(tǒng)后面講,學(xué)生在學(xué)習(xí)指令系統(tǒng)時(shí)由于沒(méi)有講匯編程序結(jié)構(gòu)而無(wú)法編寫(xiě)匯編程序來(lái)加深對(duì)匯編指編程序結(jié)構(gòu)而無(wú)法編寫(xiě)匯編程序來(lái)加深對(duì)匯編指令的理解,因此,在這里我們通過(guò)令的理解,因此,在這里我們通過(guò)2個(gè)例子,介個(gè)例子,介紹使用紹使用DEBUG調(diào)試工具編寫(xiě)程序段來(lái)學(xué)習(xí)匯編調(diào)試工具編寫(xiě)程序段來(lái)學(xué)習(xí)匯編指令。指令。有關(guān)有關(guān)DEBUG的常用命令的用法請(qǐng)參看教材的的常用命令的用法請(qǐng)參看教材的P32 2.5 DEBUG主要命令主要命令題目:壓縮題目:壓縮B

2、CD碼的加法運(yùn)算,做碼的加法運(yùn)算,做58+25MOVAL,58ADD AL,25DAA運(yùn)行運(yùn)行debugADD加法指令;加法指令;DAA壓縮壓縮BCD碼調(diào)整指令,將運(yùn)碼調(diào)整指令,將運(yùn)算結(jié)果調(diào)整為十進(jìn)制結(jié)果一致算結(jié)果調(diào)整為十進(jìn)制結(jié)果一致83。如果為如果為32位位系統(tǒng)則如右系統(tǒng)則如右圖操作:圖操作:64位機(jī)的同學(xué)則啟動(dòng)位機(jī)的同學(xué)則啟動(dòng)DOSBOX,輸入,輸入DEBUG命令,然后命令,然后用用A命令輸入指令序列。注意:匯編語(yǔ)言大小寫(xiě)不敏感命令輸入指令序列。注意:匯編語(yǔ)言大小寫(xiě)不敏感!Debug中只使用中只使用16進(jìn)制數(shù)進(jìn)制數(shù),且無(wú)需加,且無(wú)需加H后綴后綴直接用回車(chē)退出匯編編輯狀態(tài)直接用回車(chē)退出匯編編

3、輯狀態(tài)使用使用T命令跟蹤執(zhí)行命令跟蹤執(zhí)行第一個(gè)第一個(gè)T命令要帶上程序首地址命令要帶上程序首地址后面的后面的T命令無(wú)需地址命令無(wú)需地址標(biāo)志位標(biāo)志位調(diào)試完后用調(diào)試完后用Q命令退出命令退出DEBUG。DEBUG命令參見(jiàn)教材命令參見(jiàn)教材2附錄附錄D。下面給出。下面給出DEBUG中標(biāo)中標(biāo)志位狀態(tài)符號(hào)的含義。志位狀態(tài)符號(hào)的含義。標(biāo)志標(biāo)志為為1時(shí)時(shí)為為0時(shí)時(shí)溢出溢出OF方向方向DF中斷中斷IF符號(hào)符號(hào)SF零位零位ZF輔助輔助AF奇偶奇偶PF進(jìn)位進(jìn)位CFOVDNEINGZRACPECYNVUPDIPLNZNAPONC再舉一個(gè)有訪存操作的例子再舉一個(gè)有訪存操作的例子 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ū)和目標(biāo)數(shù)據(jù)區(qū)命令查看源數(shù)據(jù)區(qū)和目標(biāo)數(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ū)和目標(biāo)數(shù)據(jù)區(qū))執(zhí)行后檢查源數(shù)據(jù)區(qū)和目標(biāo)數(shù)據(jù)區(qū)注意,用注意,用A命令輸入指令時(shí),如果輸入錯(cuò)誤命令輸入指令時(shí),如果

5、輸入錯(cuò)誤debug會(huì)立會(huì)立即指出錯(cuò)誤和位置。地址不會(huì)變化,以便用戶修正指即指出錯(cuò)誤和位置。地址不會(huì)變化,以便用戶修正指令。令。第一步編輯:第一步編輯:第二步匯編:第二步匯編:可以不輸入,用回車(chē)回應(yīng)可以不輸入,用回車(chē)回應(yīng)修改好后再匯編:修改好后再匯編:第三步連接并執(zhí)行:第三步連接并執(zhí)行:可以直接用回車(chē)回應(yīng)可以直接用回車(chē)回應(yīng)執(zhí)行執(zhí)行用用DEBUG調(diào)試程序:調(diào)試程序:1)用)用U命令查看程序和目標(biāo)碼及指令地址命令查看程序和目標(biāo)碼及指令地址2)用)用T命令單步跟蹤,逐條執(zhí)行看中間結(jié)果,命令單步跟蹤,逐條執(zhí)行看中間結(jié)果,DEBUG將顯示每個(gè)寄存器以及各標(biāo)志位的當(dāng)前值將顯示每個(gè)寄存器以及各標(biāo)志位的當(dāng)前值這

6、是還未執(zhí)行的下這是還未執(zhí)行的下一條指令一條指令這是這是MOV BX,SI的執(zhí)行結(jié)果的執(zhí)行結(jié)果標(biāo)志位標(biāo)志位3)對(duì)于系統(tǒng)功能調(diào)用,可以用)對(duì)于系統(tǒng)功能調(diào)用,可以用G命令設(shè)置斷點(diǎn)執(zhí)行,命令設(shè)置斷點(diǎn)執(zhí)行,也可以用也可以用P命令跳過(guò)過(guò)程與系統(tǒng)功能服務(wù)程序。命令跳過(guò)過(guò)程與系統(tǒng)功能服務(wù)程序。設(shè)斷點(diǎn)執(zhí)行,斷點(diǎn)設(shè)在設(shè)斷點(diǎn)執(zhí)行,斷點(diǎn)設(shè)在INT 21H的后一句的后一句INT 21H輸出的一個(gè)字符輸出的一個(gè)字符注意:注意:DEBUG只支持只支持16位匯編調(diào)試,如果要編寫(xiě)位匯編調(diào)試,如果要編寫(xiě)32位匯編程序,需要用位匯編程序,需要用MASM 6.11匯編和連接,用匯編和連接,用CodeView軟件查看執(zhí)行代碼。但軟件查

7、看執(zhí)行代碼。但MASM 6.11中帶的中帶的CodeView 4.01可以查看可以查看32位程序的執(zhí)行代碼,不能進(jìn)位程序的執(zhí)行代碼,不能進(jìn)行單步調(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. 本站所有資源如無(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)論