微機(jī)原理上機(jī)實(shí)驗(yàn)材料_第1頁(yè)
微機(jī)原理上機(jī)實(shí)驗(yàn)材料_第2頁(yè)
微機(jī)原理上機(jī)實(shí)驗(yàn)材料_第3頁(yè)
微機(jī)原理上機(jī)實(shí)驗(yàn)材料_第4頁(yè)
微機(jī)原理上機(jī)實(shí)驗(yàn)材料_第5頁(yè)
已閱讀5頁(yè),還剩79頁(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)介

§4.5匯編語(yǔ)言程序設(shè)計(jì)上機(jī)步驟與調(diào)試方法一.上機(jī)環(huán)境硬件系統(tǒng)軟件

應(yīng)用軟件

操作系統(tǒng):DOS系統(tǒng)編輯器:

EDIT.exe編程序:MASM.exe連接程序:LINK.exe調(diào)試程序:DEBUG.exe用戶程序:ABC.exe等CPU、存儲(chǔ)器(ROM、RAM)、I/O接口、輸入、輸出設(shè)備二.上機(jī)步驟①D:>EDITABC.ASM②D:>MASMABC.ASM;

有語(yǔ)法錯(cuò),回EDIT下改源程序③D:>LINKABC.OBJ;

有錯(cuò),回在EDIT下改源程序④D:>ABC

運(yùn)行結(jié)果錯(cuò),回EDIT下改源程序或在DEBUG下調(diào)試,找原因。⑤D:>DEBUGABC.exe編輯源程序

EDIT

ABC.ASM匯編源程序

MASM

ABC.ASM形成目標(biāo)程序

ABC.OBJ連接目標(biāo)程序

LINK

ABC.OBJ有連接錯(cuò)誤信息?形成可執(zhí)行程序

ABC.EXE裝入可執(zhí)行程序到內(nèi)存,并執(zhí)行D:\>ABC下一程序用DEBUG調(diào)試可執(zhí)行程序D:\>DEBUG

ABC.EXE找到原因YNYNNYN有匯編錯(cuò)誤信息?Y運(yùn)行結(jié)果正確?用DEBUG調(diào)試程序查錯(cuò)?點(diǎn)擊“運(yùn)行”

三.具體操作步驟舉例第一步

COMMAND

三.具體操作步驟舉例DOS提示符

三.具體操作步驟舉例進(jìn)入EDIT編輯環(huán)境

三.具體操作步驟舉例第二步

三.具體操作步驟舉例編輯源程序

三.具體操作步驟舉例編輯完后,準(zhǔn)備存盤

三.具體操作步驟舉例另存為……

三.具體操作步驟舉例

三.具體操作步驟舉例

三.具體操作步驟舉例退出EDIT環(huán)境

三.具體操作步驟舉例對(duì)源程序進(jìn)行匯編源程序名源程序17行語(yǔ)法錯(cuò)第三步

三.具體操作步驟舉例重新進(jìn)入EDIT,打開(kāi)源程序,進(jìn)行改錯(cuò)

三.具體操作步驟舉例類型不明確,兩存儲(chǔ)器單元之間不能直接傳送數(shù)據(jù)

三.具體操作步驟舉例1.改正2.存盤3.退出

三.具體操作步驟舉例重新匯編

三.具體操作步驟舉例對(duì)目標(biāo)文件進(jìn)行連接第四步

三.具體操作步驟舉例目標(biāo)文件名

三.具體操作步驟舉例用DEBUG對(duì)可執(zhí)行文件進(jìn)行調(diào)試第五步

三.具體操作步驟舉例DEBUG提示符用R命令顯示各寄存器內(nèi)容

三.具體操作步驟舉例用U命令反匯編

三.具體操作步驟舉例用T命令單步執(zhí)行一條指令

三.具體操作步驟舉例

三.具體操作步驟舉例用D命令顯示存儲(chǔ)器單元內(nèi)容

三.具體操作步驟舉例

三.具體操作步驟舉例

三.具體操作步驟舉例

三.具體操作步驟舉例

三.具體操作步驟舉例

三.具體操作步驟舉例

三.具體操作步驟舉例

三.具體操作步驟舉例

三.具體操作步驟舉例用P命令單步執(zhí)行一個(gè)過(guò)程

三.具體操作步驟舉例用Q命令退出DEBUG

三.具體操作步驟舉例

三.具體操作步驟舉例用G命令設(shè)置斷點(diǎn),連續(xù)(全速)運(yùn)行程序的調(diào)式方法

三.具體操作步驟舉例用G命令連續(xù)執(zhí)行到斷點(diǎn)處

三.具體操作步驟舉例用D命令顯示存儲(chǔ)器單元內(nèi)容

三.具體操作步驟舉例用G命令連續(xù)執(zhí)行到斷點(diǎn)處

三.具體操作步驟舉例用D命令顯示存儲(chǔ)器單元內(nèi)容

三.具體操作步驟舉例用N命令命名用L命令裝入程序DEBUG裝入用戶可執(zhí)行文件的另一種方法

三.具體操作步驟舉例用E命令修改內(nèi)存

三.具體操作步驟舉例

三.具體操作步驟舉例

三.具體操作步驟舉例用D命令顯示存儲(chǔ)器單元內(nèi)容DEBUG常用命令匯總表(一)命令名格式功能R格式1:R顯示所有寄存器中的內(nèi)容.格式2:R寄存器名顯示修改寄存器的內(nèi)容U格式1:U[地址]從指定地址開(kāi)始反匯編格式2:U地址范圍對(duì)指定的地址范圍進(jìn)行反匯編D格式1:D[地址]從指定地址開(kāi)始顯示內(nèi)存單元內(nèi)容格式2:D地址范圍顯示地址范圍內(nèi)的內(nèi)存單元內(nèi)容E格式:E地址[數(shù)據(jù)]

把給定的數(shù)據(jù)送到指定地址開(kāi)始連續(xù)的內(nèi)存單元中

命令名格式功能T格式:T[=地址][x]從指定的地址開(kāi)始跟蹤x條指令.N格式:N[磁盤][路徑]文件名在指定的盤,路徑下建立文件G格式:G[=地址][斷點(diǎn)]從指定地址開(kāi)始執(zhí)行程序,到斷點(diǎn)處停下來(lái).

W格式:W[地址]從地址開(kāi)始的內(nèi)存塊寫(xiě)文件.

L格式:L[地址]將N命令指定的文件調(diào)入指定的內(nèi)存地址.

DEBUG常用命令匯總表(二)DEBUG常用命令匯總表(三)命令名格式功能A格式:A[地址]從指定地址開(kāi)始,對(duì)輸出的語(yǔ)句匯編到內(nèi)存.P格式:P[=地址][x]執(zhí)行一個(gè)循環(huán)直到中斷,x代表執(zhí)行循環(huán)的次數(shù).Q格式:Q結(jié)束并退出DEBUG程序.I格式:I端口地址從指定的端口地址讀一個(gè)字節(jié),并顯示出來(lái).

O格式:O端口地址值將值送到指定端口.

本章要點(diǎn)及復(fù)習(xí)重點(diǎn)4.1匯編語(yǔ)言基礎(chǔ)1.掌握機(jī)器語(yǔ)言、機(jī)器語(yǔ)言程序、匯編語(yǔ)言、匯編語(yǔ)言源程序、匯編、匯編程序等概念。2.掌握匯編語(yǔ)言中表達(dá)式,特別是屬性表達(dá)式及屬性修改操作符PTR的應(yīng)用。3.熟練掌握DB、DW、DD變量定義偽指令的應(yīng)用會(huì)畫(huà)出變量定義語(yǔ)句匯編后的存儲(chǔ)器分配示意圖。

本章要點(diǎn)及復(fù)習(xí)重點(diǎn)4.28086指令系統(tǒng)1.數(shù)據(jù)傳送類指令掌握MOV、XCHG、LEA、XLAT、PUSH、POP等指令的應(yīng)用。2.算術(shù)運(yùn)算類指令掌握加法(ADD、ADC、INC)、減法(SUB、SBB、DEC、NEG、CMP)、乘法、除法、BCD數(shù)調(diào)整(DAA)等指令的應(yīng)用及對(duì)標(biāo)志位的影響。

本章要點(diǎn)及復(fù)習(xí)重點(diǎn)3.掌握邏輯運(yùn)算類指令(AND、OR、XOR、NOT、

TEST)的應(yīng)用及對(duì)標(biāo)志位的影響。4.掌握移位指令(SHL、SHR、SAL、SAR)、循環(huán)移位指令(ROL、ROR、RCL、RCR)等指令的應(yīng)用。

本章要點(diǎn)及復(fù)習(xí)重點(diǎn)4.3匯編語(yǔ)言程序設(shè)計(jì)1.掌握匯編語(yǔ)言程序設(shè)計(jì)步驟。2.熟練掌握匯編語(yǔ)言源程序的完整結(jié)構(gòu)及相應(yīng)的偽指令的意義。3.掌握分支程序設(shè)計(jì)時(shí)應(yīng)注意的幾個(gè)問(wèn)題,會(huì)設(shè)計(jì)簡(jiǎn)單的分支程序。4.掌握循環(huán)程序的基本結(jié)構(gòu)及循環(huán)程序的設(shè)計(jì),會(huì)用氣泡排序法進(jìn)行二重循環(huán)程序設(shè)計(jì)。

本章要點(diǎn)及復(fù)習(xí)重點(diǎn)5.掌握子程序設(shè)計(jì)時(shí)的幾個(gè)問(wèn)題,包括:子程序的定義方法CALL、RET指令的應(yīng)用(注意段內(nèi)、段間子程序調(diào)用與返回時(shí)現(xiàn)場(chǎng)的保護(hù)與恢復(fù)以及堆棧的變化情況)主程序與子程序之間參數(shù)的傳遞方法用戶信息的保護(hù)與恢復(fù)方法子程序說(shuō)明文件包含的內(nèi)容

本章要點(diǎn)及復(fù)習(xí)重點(diǎn)6.熟練掌握DOS的01H、02H、09H、0AH功能的調(diào)用方法。7.掌握字符串處理指令(MOVS、CMPS、SCAS、

STOS、LODS)的共同約定以及應(yīng)用8.掌握宏指令的定義及調(diào)用方法

本章要點(diǎn)及復(fù)習(xí)重點(diǎn)4.4匯編語(yǔ)言程序的上機(jī)調(diào)試1.掌握匯編語(yǔ)言程序設(shè)計(jì)上機(jī)的基本步驟。2.掌握DEBUG的R、U、T、G、D、E、A、N、L、

Q等命令的功能及使用方法。上機(jī)作業(yè)(一)1.熟練掌握8086/8088的各種尋址方式及應(yīng)用。2.

掌握DEBUG調(diào)試程序中的一些常用命令的使用方法,為以后的實(shí)驗(yàn)打下基礎(chǔ)。一.實(shí)驗(yàn)?zāi)康亩?實(shí)驗(yàn)儀器586微機(jī)1臺(tái)尋址方式練習(xí)上機(jī)作業(yè)(一)1.

關(guān)于數(shù)據(jù)的尋址方式練習(xí)8086/8088提供多種方式實(shí)現(xiàn)操作數(shù)尋址,大體可分為7種:a.

立即尋址b.

寄存器尋址c.

直接尋址d.

寄存器間接尋址

e.

寄存器相對(duì)尋址f.

基址變址尋址g.

基址變址且相對(duì)尋址三.實(shí)驗(yàn)內(nèi)容a-b要尋找的操作數(shù)與存儲(chǔ)器無(wú)關(guān)。c-g要尋找的操作數(shù)在存貯器某單元,存貯器單元的地址由尋址方式確定。上機(jī)作業(yè)(一)掌握8086/8088的這些尋址方式,是學(xué)習(xí)匯編語(yǔ)言編程的關(guān)鍵。因此,我們編寫(xiě)了下面的程序段,以數(shù)據(jù)傳送指令為例,列舉了部份尋址方式,請(qǐng)同學(xué)們按下列要求認(rèn)真完成。

[1]在全屏幕編輯軟件下,建立以下匯編語(yǔ)言源程序。上機(jī)作業(yè)(一)STACKSEGMENTSTACKDB0B0H,0B1H,0B2H,0B3H,0B4H,0B5H,0B6H,0B7H,DB0B8H,0B9HDB0BAH,0BBH,0BCH,0BDH,0BEH,0BFHDB10HDUP(00)STACKENDSDATA1SEGMENTDB0A0H,0A1H,0A2H,0A3HTABLEDW0A5A4HDB0A6H,0A7H,0A8H,0A9H,0AAH,0ABHDB0ACH,0ADH,0AEH,0AFHDATA1ENDS上機(jī)作業(yè)(一)DATA2SEGMENTDB0C0H,0C1H,0C2H,0C3H,0C4H,0C5H,0C6H,0C7HDB0C8H,0C9H,0CAH,0CBH,0CCH,0CDH,0CEH,0CFHDATA2ENDSCODESEGMENTASSUMECS:CODE,DS:DATA1,ES:DATA2,SS:STACKSTART:MOVAX,DATA1MOVDS,AXMOVAX,DATA2MOVES,AXMOVBX,0004HMOVCX,0005H上機(jī)作業(yè)(一)MOVBP,0003H MOVSI,0002HMOVDI,0001HMOVAX,CX;以下指令按后表要求完成MOVAX,500H MOVAX,TABLE MOVAX,ES:[BX]MOVAX,[BX+05H] MOVAX,SS:[BX]+03H MOVAX,TABLE[BX] MOVAX,07H[BX] MOVAX,[BP]上機(jī)作業(yè)(一)MOVAX,TABLE[BP] MOVAX,08H[BP]MOVAX,[BP+06H]

MOVAX,DS:[BP+03H] MOVAX,[BP]+05H MOVAX,ES:[SI+03H] MOVAX,[DI+06H] MOVAX,[DI]+05H MOVAX,TABLE[SI] MOVAX,[SI] MOVAX,TABLE[DI] MOVAX,[SI]+05H上機(jī)作業(yè)(一) MOVAX,[BX][DI+01H] MOVAX,[BX][SI]+03H MOVAX,TABLE[BX][SI] MOVAX,ES:[BX][DI] MOVAX,[BP][DI+02H] MOVAX,TABLE[BP][DI] MOVAX,ES:[BP][SI] MOVAX,[BP][SI+05H] MOVAX,03H[BP][DI] MOVAX,[BP][SI] MOVAX,[BP+02H][DI+03H] MOVAX,TABLE[BP+02H][DI+03H] MOVAH,4CH INT21HCODEENDS ENDSTART上機(jī)作業(yè)(一)

[2]用MASM.EXE宏匯編程序?qū)σ陨显闯绦蜻M(jìn)行匯編,其方法為:

MASM文件名.ASM;回車

此時(shí),如果源程序中無(wú)語(yǔ)法錯(cuò)誤,則在磁盤上形成文件名.OBJ文件。

[3]用LINK.EXE連接程序?qū)ξ募?OBJ文件進(jìn)行連接,其方法為:

LINK文件名.OBJ;回車此時(shí),如果連接正確,則在磁盤上形成:文件名.EXE

可執(zhí)行文件。

[4]對(duì)源程序中從MOVAX,CX開(kāi)始以下所有指令按下表進(jìn)行計(jì)算。

上機(jī)作業(yè)(一)指令SRC尋址方式SRC的地址AX推算值A(chǔ)X實(shí)際值MOVAX,CXMOVAX,500HMOVAX,TABLEMOVAX,ES:[BX]MOVAX,[BX+05H]MOVAX,SS:[BX]+03HMOVAX,TABLE[BX]MOVAX,07H[BX]MOVAX,[BP]上機(jī)作業(yè)(一)指令SRC尋址方式SRC的地址AX推算值A(chǔ)X實(shí)際值MOVAX,TABLE[BP]MOVAX,08H[BP]MOVAX,[BP+06H]

MOVAX,DS:[BP+03H]MOVAX,[BP]+05HMOVAX,ES:[SI+03H]MOVAX,[DI+06H]MOVAX,[DI]+05HMOVAX,TABLE[SI]上機(jī)作業(yè)(一)指令SRC尋址方式SRC的地址AX推算值A(chǔ)X實(shí)際值MOVAX,[SI]MOVAX,TABLE[DI]MOVAX,[SI]+05HMOVAX,[BX][DI+01H]MOVAX,[BX][SI]+03HMOVAX,TABLE[BX][SI]MOVAX,ES:[BX][DI]MOVAX,[BP][DI+02H]MOVAX,TABLE[BP][DI]上機(jī)作業(yè)(一)指令SRC尋址方式SRC的地址AX推算值A(chǔ)X實(shí)際值MOVAX,ES:[BP][SI]MOVAX,[BP][SI+05H]MOVAX,03H[BP][DI]MOVAX,[BP][SI]MOVAX,[BP+02H][DI+03H]MOVAX,TABLE[BP+02H][DI+03H]上機(jī)作業(yè)(一)[5]用T命令單步運(yùn)行程序,并用R命令檢查AX結(jié)果,同時(shí)將結(jié)果作為實(shí)際值填入上表中,和推算值進(jìn)行比較,從而檢驗(yàn)自己對(duì)該條指令對(duì)應(yīng)的尋址方式是否掌握。也可用D命令察看存貯器的內(nèi)容,具體操作方法參看DEBUG使用部分。上機(jī)作業(yè)(一)在上表中,分析AX推算值與實(shí)際值有何不同?找出錯(cuò)誤原因,小結(jié)出各種尋址方式所用的段寄存器的規(guī)律來(lái)。四.問(wèn)題討論上機(jī)作業(yè)(一)五.實(shí)驗(yàn)報(bào)告要求

實(shí)驗(yàn)名稱1.實(shí)驗(yàn)?zāi)康?.實(shí)驗(yàn)儀器3.實(shí)驗(yàn)內(nèi)容及實(shí)驗(yàn)程序4.實(shí)驗(yàn)數(shù)據(jù)及結(jié)果5.問(wèn)題討論

上機(jī)作業(yè)(二)1.

熟練掌握匯編語(yǔ)言程序設(shè)計(jì)的方法及上機(jī)步驟。2.

掌握算術(shù)運(yùn)算指令的應(yīng)用。3.

掌握子程序的設(shè)計(jì)方法。4.

掌握DOS功能的調(diào)用方法。一.實(shí)驗(yàn)?zāi)康亩?實(shí)驗(yàn)儀器586微機(jī)1臺(tái)程序設(shè)計(jì)練習(xí)上機(jī)作業(yè)(二)編寫(xiě)程序求兩個(gè)十進(jìn)制數(shù)之和,并將和以十進(jìn)制數(shù)的形式送屏幕顯示。編程要求與提示:

[1]從鍵盤輸入兩個(gè)十進(jìn)制數(shù)(如12678532與21736543),以二進(jìn)制數(shù)形式存放在ADD1和ADD2為首址的存貯器單元,輸入一個(gè)十進(jìn)制數(shù)采用子程序形式。

[2]和以二進(jìn)制數(shù)的形式存入SUM以下單元。[3]將和送到屏幕顯示采用子程序形式。

[4]實(shí)驗(yàn)步驟如下:三.實(shí)驗(yàn)內(nèi)容上機(jī)作業(yè)(二)

a.

用全屏幕編輯軟件建立源程序。b.用masm.exe匯編程序?qū)υ闯绦蜻M(jìn)行匯編,形成目標(biāo)程序。

c.

用link.exe連接程序?qū)δ繕?biāo)程序進(jìn)行連接形成可執(zhí)行文件。d.

用DEBUG對(duì)連接通過(guò)的可執(zhí)行程序進(jìn)行調(diào)試。上機(jī)作業(yè)(三)有一個(gè)首地址為A的N字?jǐn)?shù)組,請(qǐng)編程序使該數(shù)組中的數(shù)按從大到小的次序排列。編程要求及提示:

[1]參加排序的數(shù)據(jù)及個(gè)數(shù)由學(xué)生自己定義。[2]要將排序前的數(shù)組和排序后的數(shù)組在屏幕上顯示出來(lái)。[3]實(shí)驗(yàn)步驟同作業(yè)二。上機(jī)作業(yè)(三)五.實(shí)驗(yàn)報(bào)告要求

實(shí)驗(yàn)名稱1.實(shí)驗(yàn)?zāi)康?.實(shí)驗(yàn)儀器3.實(shí)驗(yàn)內(nèi)容4.給出實(shí)驗(yàn)內(nèi)容對(duì)應(yīng)的源程序及流程5.問(wèn)題討論

上機(jī)作業(yè)(四)

1.增強(qiáng)和提高匯編語(yǔ)言程序設(shè)計(jì)的能力,掌握模塊化程序設(shè)計(jì)的方法.2.熟練掌握DOS常用功能的調(diào)用方法.一.實(shí)驗(yàn)?zāi)康亩?實(shí)驗(yàn)儀器586微機(jī)一臺(tái)程序設(shè)計(jì)綜合練習(xí)上機(jī)作業(yè)(四)編寫(xiě)如下程序,并在機(jī)器上調(diào)試

溫馨提示

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