新編匯編語(yǔ)言程序設(shè)計(jì)上機(jī)指導(dǎo).doc_第1頁(yè)
新編匯編語(yǔ)言程序設(shè)計(jì)上機(jī)指導(dǎo).doc_第2頁(yè)
新編匯編語(yǔ)言程序設(shè)計(jì)上機(jī)指導(dǎo).doc_第3頁(yè)
新編匯編語(yǔ)言程序設(shè)計(jì)上機(jī)指導(dǎo).doc_第4頁(yè)
新編匯編語(yǔ)言程序設(shè)計(jì)上機(jī)指導(dǎo).doc_第5頁(yè)
已閱讀5頁(yè),還剩14頁(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è)計(jì)實(shí)驗(yàn)講義(第二版)電子信息教研室 編楚雄師范學(xué)院物理與電子科學(xué)系2007年9月 前 言本講義根據(jù)物電系電子信息科學(xué)與技術(shù)專業(yè)匯編語(yǔ)言程序設(shè)計(jì)教學(xué)大綱編寫(xiě),適用于電子信息科學(xué)與技術(shù)、計(jì)算機(jī)及電類有關(guān)專業(yè)。本講義由徐衛(wèi)華編寫(xiě),其第一版完成于2003年3月,供我系電信04級(jí)使用。根據(jù)使用情況,經(jīng)過(guò)修訂,現(xiàn)在印刷第二版,供我系電信專業(yè)使用。編者目 錄實(shí)驗(yàn)一匯編語(yǔ)言程序的建立和執(zhí)行1實(shí)驗(yàn)二調(diào)試程序的使用3實(shí)驗(yàn)三數(shù)據(jù)傳送、算術(shù)運(yùn)算、位操作類指令4實(shí)驗(yàn)四轉(zhuǎn)移、循環(huán)和子程序類指令5實(shí)驗(yàn)五中斷指令及功能調(diào)用6實(shí)驗(yàn)六串操作類指令7實(shí)驗(yàn)七分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)程序設(shè)計(jì)8實(shí)驗(yàn)八子程序設(shè)計(jì)9實(shí)驗(yàn)九綜合性/設(shè)計(jì)性實(shí)驗(yàn)(小論文)10附錄調(diào)試程序CodeView的使用及DEBUG常用命令11附錄2ASCII碼表14附錄3常用的DOS系統(tǒng)功能調(diào)用15實(shí)驗(yàn)一匯編語(yǔ)言程序的建立和執(zhí)行一、實(shí)驗(yàn)?zāi)康臉?gòu)建匯編語(yǔ)言的編程環(huán)境。熟悉在PC機(jī)上建立、匯編、連接、調(diào)試和運(yùn)行匯編語(yǔ)言程序的過(guò)程。了解一個(gè)完整的匯編語(yǔ)言源程序的格式,包括常用的指令、偽指令的使用。二、實(shí)驗(yàn)內(nèi)容構(gòu)建匯編語(yǔ)言的編程環(huán)境解壓MASM615.EXE自解壓軟件包:DOS-MASM615.EXE,自動(dòng)建立文件夾D:ML615,該文件夾下已包含匯編語(yǔ)言編程時(shí)所需的匯編程序、連接程序、調(diào)試程序,見(jiàn)MASM615.EXE軟件包說(shuō)明文件readme.txt??截愇募AUltraEdit至D:ML615下,UltraEdit文件夾下包含編輯器Uedit32.exe。編輯源程序打開(kāi)Uedit32.exe,錄入教材lt301a.asm源程序:.model small.stack.datastring db hello!,0dh,0ah,$.code.startupmov dx,offset stringmov ah,9int 21h.exit 0end以lt301a.asm命名并保存該文件于文件夾D:ML615下。匯編連接源程序進(jìn)入WindowsXP的DOS方式,進(jìn)入D:ML615,運(yùn)行:ML lt301a.asm若有語(yǔ)法錯(cuò)誤,返回第2步,直至無(wú)錯(cuò)誤。此時(shí),可產(chǎn)生可執(zhí)行文件lt301a.asm.exe。將lt301a.asm.exe調(diào)入CodeView,進(jìn)行常用的操作。6錄入教材lt301b.asm源程序,重復(fù)第2、3、4、5步,進(jìn)一步熟悉在PC機(jī)上建立、匯編、連接、調(diào)試和運(yùn)行匯編語(yǔ)言程序的過(guò)程。三、實(shí)驗(yàn)報(bào)告記錄實(shí)驗(yàn)過(guò)程及程序運(yùn)行結(jié)果。實(shí)驗(yàn)二調(diào)試程序的使用一、實(shí)驗(yàn)?zāi)康恼莆照{(diào)試程序CodeView的使用方法。二、實(shí)驗(yàn)內(nèi)容利用模板文件啟動(dòng)CodeView。利用命令窗口的匯編A命令匯編第一章尋址方式中的各個(gè)示例指令。通過(guò)設(shè)置參數(shù)、單步執(zhí)行、觀察執(zhí)行結(jié)果,加強(qiáng)對(duì)各種尋址方式的理解;同時(shí)熟悉CodeView的基本操作。三、實(shí)驗(yàn)報(bào)告記錄實(shí)驗(yàn)過(guò)程及程序運(yùn)行結(jié)果。實(shí)驗(yàn)三數(shù)據(jù)傳送、算術(shù)運(yùn)算、位操作類指令一、實(shí)驗(yàn)?zāi)康恼莆粘S玫臄?shù)據(jù)傳送類、算術(shù)運(yùn)算類、位操作類指令的使用方法。二、實(shí)驗(yàn)內(nèi)容調(diào)試?yán)}2.1、例題2.6、例題2.8,正確理解MOV、XCHG、XLAT指令的用法;單步執(zhí)行、觀察運(yùn)行結(jié)果并與自己的判斷進(jìn)行比較,寫(xiě)出正確結(jié)果。調(diào)試?yán)}2.17a、例題2.18a、例題2.19,例題2.26,正確理解加法、減法指令及其對(duì)狀態(tài)標(biāo)志位的影響。調(diào)試?yán)}2.28、例題2.29、例題2.30、例題2.33,掌握邏輯指令和移位指令的用法,注意它們對(duì)狀態(tài)標(biāo)志位的影響。三、實(shí)驗(yàn)報(bào)告記錄實(shí)驗(yàn)過(guò)程及程序運(yùn)行結(jié)果。實(shí)驗(yàn)四轉(zhuǎn)移、循環(huán)和子程序類指令一、實(shí)驗(yàn)?zāi)康恼莆粘S玫霓D(zhuǎn)移、循環(huán)和子程序類指令的使用方法。二、實(shí)驗(yàn)內(nèi)容調(diào)試?yán)}2.38、例題2.43、例題2.45,注意CS、IP、CX寄存器及其有關(guān)狀態(tài)標(biāo)志的變化,掌握轉(zhuǎn)移、循環(huán)和子程序指令的用法。上機(jī)完成習(xí)題2.25、習(xí)題2.29,寫(xiě)出正確結(jié)果。三、實(shí)驗(yàn)報(bào)告記錄實(shí)驗(yàn)過(guò)程及程序運(yùn)行結(jié)果。實(shí)驗(yàn)五中斷指令及功能調(diào)用一、實(shí)驗(yàn)?zāi)康恼莆罩袛嘀噶畹氖褂梅椒āU莆障到y(tǒng)功能調(diào)用方法二、實(shí)驗(yàn)內(nèi)容調(diào)試?yán)}2.46、例題2.47、例題2.50,觀察運(yùn)行結(jié)果,熟悉系統(tǒng)功能調(diào)用的步驟。注意單步執(zhí)行中斷指令時(shí),用P命令(不要用T命令)。上機(jī)完成習(xí)題2.36,執(zhí)行并寫(xiě)出正確結(jié)果。三、實(shí)驗(yàn)報(bào)告記錄實(shí)驗(yàn)過(guò)程及程序運(yùn)行結(jié)果。實(shí)驗(yàn)六串操作類指令一、實(shí)驗(yàn)?zāi)康恼莆沾僮黝愔噶畹氖褂梅椒?。二、?shí)驗(yàn)內(nèi)容1調(diào)試?yán)}2.52、例題2.54、例題2.55,觀察內(nèi)存數(shù)據(jù)的變化以及SI、DI和CX寄存器內(nèi)容的變化,掌握串操作類指令的用法。上機(jī)完成習(xí)題2.15、習(xí)題2.16,寫(xiě)出正確結(jié)果。三、實(shí)驗(yàn)報(bào)告記錄實(shí)驗(yàn)過(guò)程及程序運(yùn)行結(jié)果。實(shí)驗(yàn)七分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)程序設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康恼莆辗种ЫY(jié)構(gòu)程序設(shè)計(jì)方法。掌握循環(huán)結(jié)構(gòu)程序設(shè)計(jì)方法。二、實(shí)驗(yàn)內(nèi)容調(diào)試?yán)}4.3、例題4.4,熟悉分支程序設(shè)計(jì)方法。上機(jī)完成習(xí)題4.9、習(xí)題4.10、習(xí)題4.11,生成可執(zhí)行文件并執(zhí)行。上機(jī)完成例題4.7,增加顯示給定字符串的功能。上機(jī)完成例題4.8,熟悉循環(huán)結(jié)構(gòu)程序設(shè)計(jì)方法,上機(jī)完成習(xí)題4.18、4.19,生成可執(zhí)行文件并執(zhí)行。三、實(shí)驗(yàn)報(bào)告記錄實(shí)驗(yàn)過(guò)程及程序運(yùn)行結(jié)果。實(shí)驗(yàn)八子程序設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康恼莆兆映绦蛟O(shè)計(jì)方法二、實(shí)驗(yàn)內(nèi)容上機(jī)完成例題4.10,熟悉子程序設(shè)計(jì)方法。上機(jī)完成習(xí)題4.29,寫(xiě)出正確結(jié)果。三、實(shí)驗(yàn)報(bào)告記錄實(shí)驗(yàn)過(guò)程及程序運(yùn)行結(jié)果。實(shí)驗(yàn)九綜合性/設(shè)計(jì)性實(shí)驗(yàn)(小論文)一、實(shí)驗(yàn)?zāi)康耐ㄟ^(guò)實(shí)驗(yàn),掌握對(duì)匯編語(yǔ)言指令的綜合應(yīng)用以及分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和子程序設(shè)計(jì)方法。二、實(shí)驗(yàn)內(nèi)容綜合應(yīng)用80X86的所有指令及常用的程序設(shè)計(jì)方法,自選一個(gè)題目,完成一篇小論文。三、實(shí)驗(yàn)報(bào)告提交論文。附錄調(diào)試程序CodeView的使用及DEBUG常用命令一、CodeView的使用1、功能鍵F2:顯示/隱含的寄存器組窗口F3:以不同的顯示方式顯示當(dāng)前執(zhí)行的程序F4:以不同的顯示方式顯示當(dāng)前執(zhí)行的程序F5/F7:執(zhí)行到下一個(gè)邏輯斷點(diǎn),或到程序尾F6:依次進(jìn)入當(dāng)前屏幕所顯示的窗口F8:?jiǎn)尾?跟蹤)執(zhí)行指令,并進(jìn)入被調(diào)用的子程序F9:在源程序行中設(shè)置/取消斷點(diǎn),用鼠標(biāo)左鍵雙擊之也可F10:?jiǎn)尾綀?zhí)行指令,但不進(jìn)入被調(diào)用的子程序Alt+F9:進(jìn)入命令行2、命令窗口在該窗口中,可輸入前面介紹的DEBUG命令。3、寄存器組窗口可以直接在寄存器組窗口內(nèi)修改各寄存器的內(nèi)容和各標(biāo)志位,還可以用Options菜單中的“32-Bit Registers”菜單項(xiàng)來(lái)切換16位和32位寄存器。二、DEBUG常用命令1、啟動(dòng)DEBUG的一般命令如下:DEBUG 文件名 參數(shù)表其中:文件名指定被調(diào)試的文件,其包括名和后綴,參數(shù)表是被調(diào)試文件運(yùn)行時(shí)所需要的參數(shù)。被調(diào)試的文件可以是系統(tǒng)中的任何文件,但通常它們的后綴為EXE或COM。當(dāng)DEBUG啟動(dòng)成功后,將顯示連接符“-”,這時(shí),可輸入各種命令。表1 DEBUG中標(biāo)志位的符號(hào)表示標(biāo)志名稱溢出OF方向DF中斷IF負(fù)號(hào)SF零ZF輔助進(jìn)位AF奇偶PF進(jìn)位CF置位狀態(tài)OVDNEINGZRACPECY復(fù)位狀態(tài)NVUPDIPLNZNAPONC表2 DEBUG命令及其含義命令格式功能說(shuō)明A 地址輸入?yún)R編指令C 范圍 起始地址對(duì)由“范圍”指定的區(qū)域與“起始地址”指定的同大小區(qū)域進(jìn)行比較,顯示不相同的單元D 范圍顯示指定范圍內(nèi)的內(nèi)存單元內(nèi)容E 地址 字節(jié)值表用值表中的值替換從“地址”開(kāi)始的內(nèi)存單元內(nèi)容F 范圍 字節(jié)值表用指定的字節(jié)值表來(lái)填充內(nèi)存區(qū)域G =起始地址 斷點(diǎn)地址從起點(diǎn)(或當(dāng)前地點(diǎn))開(kāi)始執(zhí)行,到終點(diǎn)結(jié)束H 數(shù)值1 數(shù)值2顯示二個(gè)十六進(jìn)制數(shù)值之和、差I(lǐng) 端口地址從端口輸入L 地址 驅(qū)動(dòng)器號(hào) 扇區(qū) 扇區(qū)數(shù)從磁盤(pán)讀M 范圍 地址把“范圍”內(nèi)的字節(jié)值傳送到從“地址”開(kāi)始的單元N 文件標(biāo)識(shí)符 文件標(biāo)識(shí)符指定文件名,為讀/寫(xiě)文件做準(zhǔn)備O 端口地址 字節(jié)值向端口輸出P =地址 指令數(shù)按執(zhí)行過(guò)程,但不進(jìn)入子程序調(diào)用或軟中斷Q退出DEBUG,不保存正在調(diào)試的文件R 寄存器名顯示和修改寄存器內(nèi)容S 范圍 字節(jié)值表在內(nèi)存區(qū)域內(nèi)搜索指定的字節(jié)值表。如果找到,顯示起始地址,否則,什么也不顯示T =地址 指令數(shù)跟蹤執(zhí)行,從起點(diǎn)(或當(dāng)前地點(diǎn))執(zhí)行若干條指令U 范圍反匯編,顯示機(jī)器碼所對(duì)應(yīng)的匯編指令W 地址 驅(qū)動(dòng)器號(hào) 扇區(qū) 扇區(qū)數(shù)向磁盤(pán)寫(xiě)內(nèi)容,(BX、CX)為寫(xiě)入字節(jié)數(shù)2、關(guān)于參數(shù)的幾點(diǎn)說(shuō)明:(1)進(jìn)制:在DEBUG中輸入或顯示的數(shù)據(jù)都是十六進(jìn)制形式;(2)分隔:命令和參數(shù)、參數(shù)和參數(shù)之間要用空格、逗號(hào)或制表符等分隔;(3)地址:用“段值:偏移量”的形式來(lái)表示地址,也可用段寄存器來(lái)代表“段值”;例如:1000:0,ds:10,cs:30等;(4)范圍:用來(lái)表示地址范圍,從哪個(gè)地址開(kāi)始,到哪個(gè)地址結(jié)束。它有二種表示方式:地址 地址前者表示起始地址,要用“段值:偏移量”來(lái)表達(dá),后者表示終止地址,只用“偏移量”來(lái)表示;地址 長(zhǎng)度前者表示起始地址,要用“段值:偏移量”來(lái)表達(dá),后者表示該區(qū)域的大小,用字母L開(kāi)頭的數(shù)值來(lái)表示例如:100:50 100段值為100,偏移量從50到100的內(nèi)存區(qū)域,100:50 L100段值為100,偏移量從50開(kāi)始的100個(gè)字節(jié)區(qū)域。(5)端口地址:二位十六進(jìn)制數(shù)值(6)字節(jié)值:二位十六進(jìn)制數(shù)值(7)字節(jié)值表:由若干個(gè)字節(jié)值組成,也可以是用引號(hào)括起來(lái)的字符串(8)驅(qū)動(dòng)器號(hào):0驅(qū)動(dòng)器A、1驅(qū)動(dòng)器B、2驅(qū)動(dòng)器C、3驅(qū)動(dòng)器D等3、關(guān)于使用命令的幾點(diǎn)說(shuō)明:(1)在DEBUG中的提示符“-”下才能輸入命令,在按“回車”鍵后,該命令才開(kāi)始執(zhí)行(2)命令是單個(gè)字母,命令和參數(shù)的大小寫(xiě)可混合輸入(3)可用F1、F2、F3、Ins、Del和光標(biāo)移動(dòng)鍵等來(lái)編輯本行命令(4)當(dāng)命令出現(xiàn)語(yǔ)法錯(cuò)誤時(shí),將在出錯(cuò)位置顯示“ Error”(5)可用C或Break來(lái)終止當(dāng)前命令的執(zhí)行,還可用S來(lái)暫停屏幕顯示(當(dāng)連續(xù)不斷地顯示信息時(shí))附錄2ASCII碼表附錄3常用的DOS系統(tǒng)功能調(diào)用1、 什么是DOS系統(tǒng)功能調(diào)用? 系統(tǒng)功能調(diào)用是DOS為用戶提供的常用子程序(80多個(gè)),可在匯編語(yǔ)言程序中直接調(diào)用。這些子程序的主要功能包括: (1)設(shè)備管理(如鍵盤(pán)、顯示器、打印機(jī)、磁盤(pán)等的管理) (2)文件管理和目錄操作 (3)其他管理(如內(nèi)存、時(shí)間、日期等管理) 這些子程序給用戶編程帶來(lái)很大方便,用戶不必了解有關(guān)的設(shè)備、電路、接口等方面的問(wèn)題,只需直接調(diào)用即可。 2、 調(diào)用方法 DOS功能調(diào)用的子程序已按順序編號(hào)功能號(hào)(00H68H),其調(diào)用方法是: (1) 功能號(hào)AH (2) 入口參數(shù)指定寄存器 (3) INT 21H 用戶只須給出以上三方面信息,DOS就可根據(jù)所給信息自動(dòng)轉(zhuǎn)入相關(guān)子程序執(zhí)行。 3、常用的系統(tǒng)功能調(diào)用 (1)返回DOS 向量號(hào) 21H 功能號(hào) 4CH (2)鍵盤(pán)輸入并顯示 向量號(hào) 21H 功能號(hào) 1 該功能從鍵盤(pán)輸入一個(gè)字符,將其ASCII碼保存在AL中,輸入字符回顯在CRT上。 (3)鍵盤(pán)輸入但不顯示輸入字符 向量號(hào) 21H 功能號(hào) 8 該功能從鍵盤(pán)輸入一字符,將其ASCII碼保存在AL中,但不顯示。這種功能往往在設(shè)置口令時(shí)使用。 (4)顯示一字符 向量號(hào) 21H 功能號(hào) 2 入口參數(shù):DL=待顯示字符的ASCII碼。該功能顯示DL中的字符。 (5)在打印機(jī)上打印一字符 向量號(hào) 21H 功能號(hào) 5 入口參數(shù):DL=待打印字符的ASCII碼。 (6)顯示以“$”結(jié)尾的字符串 向量號(hào) 21H 功能號(hào) 9 入口參數(shù):DS:DX指向字符串的首地址 (7)字符串輸入 向量號(hào) 21H 功能號(hào) 0AH 入口參數(shù):DS:DX指向輸入緩沖區(qū)。 輸入緩沖區(qū)格式如下: 第一字節(jié)為預(yù)定的最大輸入字符數(shù)。第二字節(jié)空出,待中斷服務(wù)程序填入鍵盤(pán)連續(xù)輸入到回車前實(shí)際輸入字符數(shù)。第三字節(jié)及以后字節(jié),待中斷服務(wù)程序填入輸入字符串的ASCII碼。 (8)異步通信口輸入 向量號(hào) 21H 功能號(hào) 3 該功能從標(biāo)準(zhǔn)異步通信口等待輸入一字符,然后送AL中。啟動(dòng)DOS時(shí),異步通信口波特率為2400,設(shè)有偶校驗(yàn)位,數(shù)據(jù)長(zhǎng)度為

溫馨提示

  • 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)論