版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、計算機(jī)數(shù)據(jù)采集(cij)系統(tǒng)第4章 用debug編寫(binxi)匯編程序第一頁,共31頁。4.1 機(jī)器語言機(jī)器語言(j q y yn)與匯編語言與匯編語言 一、機(jī)器語言一、機(jī)器語言 機(jī)器語言是機(jī)器指令的集合。機(jī)器語言是機(jī)器指令的集合。 機(jī)器指令展開來講就是一臺機(jī)器可以正確機(jī)器指令展開來講就是一臺機(jī)器可以正確(zhngqu)執(zhí)行的命令。電子計算機(jī)的機(jī)器指執(zhí)行的命令。電子計算機(jī)的機(jī)器指令是一列二進(jìn)制數(shù)字。計算機(jī)將之轉(zhuǎn)變?yōu)橐涣辛钍且涣卸M(jìn)制數(shù)字。計算機(jī)將之轉(zhuǎn)變?yōu)橐涣懈叩碗娖?,以使計算機(jī)的電子器件受到驅(qū)動,高低電平,以使計算機(jī)的電子器件受到驅(qū)動,進(jìn)行運(yùn)算。進(jìn)行運(yùn)算。 用機(jī)器語言編寫的程序是計算機(jī)唯一
2、能夠直用機(jī)器語言編寫的程序是計算機(jī)唯一能夠直接識別并執(zhí)行的程序,而用其他語言編寫的程接識別并執(zhí)行的程序,而用其他語言編寫的程序必須經(jīng)過翻譯才能變換成機(jī)器語言程序,所序必須經(jīng)過翻譯才能變換成機(jī)器語言程序,所以,機(jī)器語言程序被稱為目標(biāo)程序。以,機(jī)器語言程序被稱為目標(biāo)程序。第二頁,共31頁。二、機(jī)器語言二、機(jī)器語言(j q y yn)的缺點(diǎn)的缺點(diǎn) 早期的程序設(shè)計均使用機(jī)器語言。程序員們將用0、1數(shù)字編成的程序代碼打在紙帶或卡片上,1打孔,0不打孔,再將程序通過紙帶機(jī)或卡片機(jī)輸入計算機(jī),進(jìn)行運(yùn)算。應(yīng)用8086CPU完成運(yùn)算s=768+12288-1280,機(jī)器碼如下(rxi): 10110000000
3、0000000000011 000001010000000000110000 001011010000000000000101假如將程序錯寫成以下這樣,請讀者找出錯誤。 101100000000000000000011 000001010000000000110000 000101101000000000000101 第三頁,共31頁。要書寫和閱讀機(jī)器碼程序不是一件簡單的工作,要記住所有抽象的二進(jìn)制碼。上面只是一個非常簡單的小程序,就暴露了機(jī)器碼的晦澀難懂(nn dn)和不易查錯。寫如此小的一個程序尚且如此,實(shí)際上一個有用的程序至少要有幾十行機(jī)器碼。試想:如果程序里有一個“1”被誤寫為“0”,
4、又如何去查找呢? 第四頁,共31頁。三、匯編語言三、匯編語言(hu bin y yn)為了克服機(jī)器語言的缺點(diǎn),人們采用助記符表示機(jī)器指令的操作碼,用變量代替操作數(shù)的存放地址等,這樣(zhyng)就形成了匯編語言。匯編語言的主體是匯編指令。匯編指令和機(jī)器指令的差別在于指令的表示方法上。匯編指令是機(jī)器指令便于記憶的書寫格式。 例如:機(jī)器指令1000100111011000表示把寄存器BX的內(nèi)容送到AX中。匯編指令則寫成mov ax,bx。這樣(zhyng)的寫法與人類語言接近,便于閱讀和記憶。 操作:寄存器BX的內(nèi)容送到AX中 機(jī)器指令:1000100111011000 匯編指令:mov ax,b
5、x 第五頁,共31頁。用匯編語言編寫的程序稱為匯編源程序。匯編語言是一種符號語言,比機(jī)器語言容易理解和掌握,也容易調(diào)試和維護(hù)。但是,匯編語言源程序要翻譯成機(jī)器語言程序才可以(ky)由計算機(jī)執(zhí)行。這個翻譯的過程稱為“匯編”,這種把匯編源程序翻譯成目標(biāo)程序的語言加工程序稱為匯編程序。第六頁,共31頁。4.2 第一個匯編程序第一個匯編程序(hu bin chn x)4.2.1 相關(guān)的相關(guān)的debug命令命令一、用一、用E輸入機(jī)器語言輸入機(jī)器語言(j q y yn)程序,用程序,用G運(yùn)行運(yùn)行 -D 100 -F 100 17F 00 -D 100 -E 100 B2 01 B4 02 CD 21 CD
6、 20 -D 100 -G=100注:注:G =運(yùn)行起始地址運(yùn)行起始地址。若省略起始地址,則從。若省略起始地址,則從CS:IP處開始運(yùn)行。處開始運(yùn)行。第七頁,共31頁。二、用二、用A輸入輸入(shr)匯編語言程序,用匯編語言程序,用U反匯編反匯編 -D 100 - F 100 17F 00 - A 100 MOV DL, 01 MOV AH, 02 INT 21 INT 20 - U 100 -G=100第八頁,共31頁。4.2.2 匯編匯編(hubin)與反匯編與反匯編(hubin)一、匯編一、匯編(hubin):匯編:匯編(hubin)語言語言機(jī)器語言機(jī)器語言 工具:手工做;工具:手工做;
7、 DEBUG的的A命令;命令; MASM、TASM等匯編等匯編(hubin)軟件。軟件。二、反匯編二、反匯編(hubin):機(jī)器語言:機(jī)器語言匯編匯編(hubin)語言語言 工具:工具:DEBUG的的U命令;命令; TRW等工具軟件。等工具軟件。三、三、A命令命令 -A 地址地址第九頁,共31頁。 該命令從指定地址開始允許輸入?yún)R編語句,把它們匯編成該命令從指定地址開始允許輸入?yún)R編語句,把它們匯編成機(jī)器代碼相繼存放在從指定地址開始的存儲器中。機(jī)器代碼相繼存放在從指定地址開始的存儲器中。四、四、U U命令命令 1 1)-U -U 地址地址 該命令從指定地址開始,反匯編該命令從指定地址開始,反匯編3
8、232個字節(jié)。若地址省略,個字節(jié)。若地址省略,則從上一個則從上一個U U命令的最后一條指令的下一單元開始顯示命令的最后一條指令的下一單元開始顯示(xinsh)32(xinsh)32個字節(jié)。個字節(jié)。2 2)-U -U 范圍范圍 該命令對指定范圍內(nèi)存單元進(jìn)行反匯編。該命令對指定范圍內(nèi)存單元進(jìn)行反匯編。第十頁,共31頁。4.2.3 第一個程序第一個程序(chngx)的含義的含義 一、一、 DOS系統(tǒng)功能調(diào)用(課本系統(tǒng)功能調(diào)用(課本P471) 對對8086系列機(jī)來說,系列機(jī)來說,MS-DOS操作系統(tǒng)是最主要的操作系操作系統(tǒng)是最主要的操作系統(tǒng)。統(tǒng)。MS-DOS操作系統(tǒng)除了具有較為完整的文件管理功能操作系
9、統(tǒng)除了具有較為完整的文件管理功能之外,同時還為各種應(yīng)用程序、外圍設(shè)備等提供軟件接口。之外,同時還為各種應(yīng)用程序、外圍設(shè)備等提供軟件接口。 DOS系統(tǒng)功能調(diào)用是系統(tǒng)功能調(diào)用是DOS為用戶提供的常用為用戶提供的常用(chn yn)子程序,可在匯編語言中直接調(diào)用。子程序,可在匯編語言中直接調(diào)用。 DOS系統(tǒng)功能調(diào)用的方法一般可分為以下幾步:系統(tǒng)功能調(diào)用的方法一般可分為以下幾步: 設(shè)置所要調(diào)用功能的入口參數(shù)。設(shè)置所要調(diào)用功能的入口參數(shù)。 在在AH寄存器中存入所要調(diào)用功能的功能號。寄存器中存入所要調(diào)用功能的功能號。 INT 21H指令自動轉(zhuǎn)入中斷子程序入口。指令自動轉(zhuǎn)入中斷子程序入口。 相應(yīng)中斷子程序運(yùn)
10、行完畢,可按規(guī)定取得出口參數(shù)。相應(yīng)中斷子程序運(yùn)行完畢,可按規(guī)定取得出口參數(shù)。第十一頁,共31頁。二、常用二、常用(chn yn)的的DOS系統(tǒng)功能調(diào)用系統(tǒng)功能調(diào)用 單字符輸入(1號調(diào)用) 單字符顯示(2號調(diào)用) 打印輸出 (5號調(diào)用) 結(jié)束調(diào)用 (4CH號調(diào)用) 顯示字符串(9號調(diào)用) 字符串輸入(0AH號調(diào)用)例如:單字符顯示(2號調(diào)用)格式: MOV DL,待顯示字符的ASCII碼 MOV AH,2 INT 21功能:將DL寄存器中的字符送顯示器顯示,如果(rgu)DL中為CTRL+BREAK的ASCII碼,則退出。第十二頁,共31頁。三、三、 第一個程序第一個程序(chngx) MOV
11、DL, 01 MOV DL, 01 MOV AH, 02 MOV AH, 02 INT 21 INT 21 INT 20 INT 20 思考:如何顯示其他思考:如何顯示其他(qt)(qt)的的ASCIIASCII字符?字符? (能說出兩種修改方法嗎?)(能說出兩種修改方法嗎?)第十三頁,共31頁。4.3 擴(kuò)展擴(kuò)展(kuzhn)第一個匯編程序第一個匯編程序例如:下面的程序可顯示例如:下面的程序可顯示(xinsh)滿屏的滿屏的 (笑臉笑臉) (無限循環(huán))。(無限循環(huán))。 MOV DL, 01 MOV AH, 02 INT 21 JMP 0100第十四頁,共31頁。4.4 全部全部(qunb)ASC
12、II字符顯示程序字符顯示程序要求:要求: 編寫一程序,在屏幕編寫一程序,在屏幕(pngm)上顯示所有的上顯示所有的ASCII字符。當(dāng)程序編寫好以后,可以把它保存在磁盤中,字符。當(dāng)程序編寫好以后,可以把它保存在磁盤中,以便直接從以便直接從DOS執(zhí)行程序而不必進(jìn)入執(zhí)行程序而不必進(jìn)入DEBUG才能執(zhí)才能執(zhí)行。行。第十五頁,共31頁。4.4.1 幾個幾個(j )新的新的DEBUG命令命令一、一、N命令(命令(NAME)用法:用法:N 文件名文件名作用:設(shè)定好作用:設(shè)定好L和和W命令所要用到的文件名。命令所要用到的文件名。 此命令設(shè)置好一個此命令設(shè)置好一個(y )文件名。然后就可以用文件名。然后就可以用
13、L命令把此文命令把此文件裝入內(nèi)存中,或者用件裝入內(nèi)存中,或者用W命令把內(nèi)存中的程序保存到此文件命令把內(nèi)存中的程序保存到此文件中。中。二、二、L命令(命令(LOAD)用法:用法:L 地址地址作用:作用: 把由把由N命令所設(shè)置好的一個命令所設(shè)置好的一個(y )文件,裝入到由地址文件,裝入到由地址 開始的內(nèi)存中。開始的內(nèi)存中。 第十六頁,共31頁。 裝入完成后,裝入完成后,BXBX和和CXCX中保存了所讀文件的字節(jié)數(shù)。中保存了所讀文件的字節(jié)數(shù)。三、三、W W命令(命令(WRITEWRITE)用法:用法:W W 地址地址 作用:把指定作用:把指定(zhdng)(zhdng)內(nèi)存區(qū)域中的數(shù)據(jù)寫入由內(nèi)存區(qū)
14、域中的數(shù)據(jù)寫入由N N命令命令所設(shè)置好所設(shè)置好 的一個文件中。在用此命令前,的一個文件中。在用此命令前,BXBX和和CXCX中應(yīng)包含中應(yīng)包含 要寫入文件的字節(jié)數(shù)。要寫入文件的字節(jié)數(shù)。第十七頁,共31頁。4.4.2 把內(nèi)存中的程序保存到磁盤把內(nèi)存中的程序保存到磁盤(c pn)文件中文件中 文件名; 要設(shè)置好三要素 程序在內(nèi)存中的起始(q sh)地址; 程序的大小用N命令設(shè)置好文件名用R命令設(shè)置好BX和CX的值(程序的大小)用W命令保存程序(在保存時要指定起始(q sh)地址)第十八頁,共31頁。例:保存例:保存(bocn)第一個程序第一個程序 C:debug -F 100 17F 00 -A 1
15、00 0B3E:0100 MOV DL,01 0B3E:0102 MOV AH,02 0B3E:0104 INT 21 0B3E:0106 INT 20 0B3E:0108 -N C:1ST.COM -R BX第十九頁,共31頁。 BX 0000 : -R CX CX 0000 :8 -W 100 Writing 00008 bytes -Q C:第二十頁,共31頁。例:在例:在DOS下執(zhí)行下執(zhí)行(zhxng)第一個程序第一個程序 C:dir 1st*.* Volume in drive C is NTFSCCCC Volume Serial Number is FC03-2958 Direc
16、tory of C: 2003-09-07 18:51 8 1ST.COM 1 File(s) 8 bytes 0 Dir(s) 1,080,619,008 bytes free C:1st C:第二十一頁,共31頁。例:在例:在DEBUG下執(zhí)行下執(zhí)行(zhxng)第一個程序第一個程序方法方法(fngf)一:一: C:DEBUG 1ST.COM -G=100 Program terminated normally -第二十二頁,共31頁。方法方法(fngf)二:二: C:DEBUG -N C:1ST.COM -L 100 -G=100 Program terminated normally -
17、第二十三頁,共31頁。4.4.3 顯示全部顯示全部ASCII字符字符(z f)的程序的程序一、輸入一、輸入ASCII程序程序(chngx),并將其保存在磁盤上,文,并將其保存在磁盤上,文件名:件名:ALLASC.com C:DEBUG -A 100 0B3E:0100 MOV DL, 00 0B3E:0102 MOV AH, 02 0B3E:0104 INT 21 0B3E:0106 INC DL 0B3E:0108 JMP 102 0B3E:010A第二十四頁,共31頁。 -U 100 109 0B3E:0100 B200 MOV DL,00 0B3E:0102 B402 MOV AH,02
18、 0B3E:0104 CD21 INT 21 0B3E:0106 FEC2 INC DL 0B3E:0108 EBF8 JMP 0102 -N ALLASC.COM -R BX BX 0000 : -第二十五頁,共31頁。 -R CX CX 0000 :0A -W 100 Writing 0000A bytes -Q C:第二十六頁,共31頁。二、在二、在MS-DOS命令行狀態(tài)下執(zhí)行命令行狀態(tài)下執(zhí)行ALLASC.com 在在DOS下用下用DIR命令查看,發(fā)現(xiàn)命令查看,發(fā)現(xiàn)ALLASC.com只有只有10個字個字節(jié)。節(jié)。 直接敲入文件名直接敲入文件名ALLASC可執(zhí)行此程序。屏幕上一遍又一可執(zhí)行此程序。屏幕上一遍又一遍地顯示所有的遍地顯示所有的ASCII字符,并且字符,并且(bngqi)伴隨著伴隨著“叮?!薄啊薄岸6!钡穆曇簟#ㄐ枰玫穆曇?。(需要用CTRL-BREAK中斷)中斷) 三、用三、用DEBUG重新裝入重新裝入ALLASC.com,并在
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024窗簾供應(yīng)與安裝協(xié)議模板
- 2024年智能化弱電系統(tǒng)施工協(xié)議
- 2024專業(yè)消防設(shè)施保養(yǎng)協(xié)議
- 體檢中心年底工作總結(jié)范文6篇
- 中鐵建績效考核
- 文書模板-《借款保證擔(dān)保合同》
- 2024年二手房貸款業(yè)務(wù)協(xié)作協(xié)議樣本
- 化普通商品購買:2024協(xié)議格式
- 2024年非公開股權(quán)轉(zhuǎn)讓協(xié)議范本
- 2024住宅小區(qū)物業(yè)經(jīng)理聘任協(xié)議
- 四川省成都市九縣區(qū)2024-2025學(xué)年高一上學(xué)期期中考試數(shù)學(xué)試題(含答案)
- 戶外廣告安裝施工方案
- 2023醫(yī)療質(zhì)量安全核心制度要點(diǎn)釋義(第二版)對比版
- 攝影器材采購合同模板
- 2024年中央企業(yè)全面質(zhì)量管理知識競賽考試真題庫(含答案)
- 2022版義務(wù)教育(道德與法治)課程標(biāo)準(zhǔn)(附課標(biāo)解讀)
- 思想道德與法治第二章
- 新核心大學(xué)英語B版聽說教程2Unit1
- 職務(wù)晉升申請書范文
- (完整版)花崗巖地面施工方案
- 電壓時間型饋線自動化系統(tǒng)的參數(shù)整定方法(主線型)[運(yùn)用學(xué)習(xí)]
評論
0/150
提交評論