




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
HYPERLINK”http://sh/"實驗一匯編語言上機認(rèn)識實驗一、實驗主要內(nèi)容1、匯編語言源程序文件的建立;2、匯編程序的編輯、匯編、連接、運行.二、實驗?zāi)康氖煜R編語言的上機環(huán)境,掌握匯編程序的編輯、匯編、連接、運行等步驟。三、實驗具體操作過程匯編語言的上機的一般步驟為:編輯(用編輯程序形成匯編語言源程序)、匯編(用匯編程序?qū)⒃次募R編成目標(biāo)文件)、連接(用連接程序?qū)⒛繕?biāo)程序轉(zhuǎn)換為可執(zhí)行文件)、調(diào)試運行(執(zhí)行可執(zhí)行性文件,若有錯誤,利用DEBUG調(diào)試程序進行調(diào)試,直到?jīng)]有錯誤為止)。1、進入DOS系統(tǒng)單擊windows的“開始”按鈕,再單擊“運行”命令,輸入“cmd”命令,進入DOS模式。再利用相應(yīng)的DOS命令,切換到masm目錄下。2、編輯.asm源程序在DOS提示符下輸入“edit001.asm”,建立一個匯編源程序文件,本次實驗的程序是在屏幕上輸出一個字符串“Thisisasampleprogram!”,具體程序如下:DATASEGMENT? BUFDB'THISISASAMPLEPROGRAM!' DB0DH,0AH,’$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:?MOVAX,DATAMOVDS,AX??MOVAH,9??LEADX,BUF? INT21H??MOVAH,4CH??INT21H CODEENDSENDSTART3、匯編在dos提示符下輸入命令“masm001。asm”,若發(fā)現(xiàn)有語法錯誤,請回到源程序進行修改;若無錯誤,進行下一步。4、連接在dos提示符下輸入命令“l(fā)ink001.obj"。5、運行在dos提示符下輸入命令“001”,發(fā)現(xiàn)屏幕上輸出“Thisisasampleprogram!”,實驗完成。?實驗二DEBUG的應(yīng)用一、實驗主要內(nèi)容1、進入和退出DEBUG程序2、使用DEBUG中的常用命令二、實驗?zāi)康?、熟悉DEBUG有關(guān)命令的使用方法2、學(xué)會利用DEBUG掌握有關(guān)指令的功能3、學(xué)會利用DEBUG運行簡單的程序段三、實驗具體操作過程1、debug的啟動與退出在dos提示符下輸入“debug",并回車,可進入debug狀態(tài);在debug提示符下輸入“q”,可返回dos提示符。2、用R命令查看、改變CPU寄存器的內(nèi)容①輸入“r",回車,可看到CPU內(nèi)部所有寄存器內(nèi)容和標(biāo)志位狀態(tài);②輸入“RAX”,可顯示AX的值,并將AX的值修改為1234H;3、匯編命令A(yù)在debug提示符下,輸入“A100”,輸入幾條匯編指令。MOVAL,0CADDAL,1EADCAL,304、單步執(zhí)行命令T先輸入命令“T=0”,然后每次都輸入命令“T”,查看輸入的每條指令執(zhí)行后的狀態(tài).5、調(diào)試應(yīng)用程序debug001。exe6、反匯編指令U在debug提示符下,輸入“U”指令,顯示001.exe的匯編指令。5、運行命令G輸入命令“G”,運行001.exe中的所有指令;輸入命令“G=13f0:0d",運行指定區(qū)域內(nèi)的指令。7、顯示內(nèi)存單元命令D輸入“D1389:0100”,顯示1389H:0100H單元為首的內(nèi)存區(qū)域中存放的內(nèi)容。8、修改內(nèi)在單元命令E輸入“E1389:0100”,將0100H單元的內(nèi)容修改為FFH。
實驗三順序結(jié)構(gòu)程序設(shè)計一、實驗主要內(nèi)容將兩個2字節(jié)長的二進制數(shù)相加,運算結(jié)果存放在相應(yīng)結(jié)果單元中.二、實驗?zāi)康恼莆諈R編語言的順序結(jié)構(gòu)程序設(shè)計方法。三、實驗具體操作過程1、流程框圖2、源程序DATASEGMENTDATA1DB1,2;被加數(shù)DATA2DB5,6;加數(shù)DATA3DB0,0;和DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVSI,0CLC;清進位標(biāo)志MOVAL,DATA1[SI]ADCAL,DATA2[SI];第一個字節(jié)相加MOVDATA3[SI],ALINCSIMOVAL,DATA1[SI]ADCAL,DATA2[SI];第二個字節(jié)相加MOVDATA3[SI],AL;.。。。。.....輸出顯示部分.。...。..MOVBX,OFFSETDATA3MOVDL,[BX]ADDDL,30HMOVAH,2INT21HINCBXMOVDL,[BX]ADDDL,30HMOVAH,2INT21H;..。.。....。輸出顯示結(jié)束。...。。..MOVAH,4CHINT21H;返回DOSCODEENDSENDSTART?實驗四分支結(jié)構(gòu)程序設(shè)計一、實驗主要內(nèi)容接收鍵盤輸入字符,將其中的小寫字母轉(zhuǎn)換為大寫字母.二、實驗?zāi)康膶W(xué)會匯編語言的分支結(jié)構(gòu)程序設(shè)計方法。三、實驗具體操作過程1、流程框圖2、源程序DATASEGMENTMSGDB‘ERROR!',0DH,0AH,‘$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAH,1INT21H;讀入一字符送入ALCMPAL,‘a(chǎn)'JBERR;不是小寫字母轉(zhuǎn)出錯處理CMPAL,‘z’JAERR;不是小寫字母轉(zhuǎn)出錯處理SUBAL,32;轉(zhuǎn)換成大寫字母后送到ALMOVDL,ALMOVAH,02INT21H;輸出轉(zhuǎn)換后的字符OVER:MOVAH,4CHINT21H;返回DOSERR:MOVDX,OFFSETMSGMOVAH,09INT21HJMPOVERCODEENDSENDSTART
實驗五循環(huán)結(jié)構(gòu)程序設(shè)計一、實驗主要內(nèi)容統(tǒng)計一個有10人的班中,男、女生的人數(shù)各為多少。將統(tǒng)計結(jié)果的男生人數(shù)存入變量BOY中,女生人數(shù)存入變量GIRL中。二、實驗?zāi)康恼莆諈R編語言的循環(huán)結(jié)構(gòu)基本設(shè)計方法.三、實驗具體操作過程1。流程框圖2.參考程序DATASEGMENTBOYDB0;存放男生人數(shù)GIRLDB0;存放女生人數(shù)COUNTEQU10;班里的總?cè)藬?shù)DISPDB0DH,0AH,‘BOYORGIRL1/0?’,‘$’DISP1DB0DH,0AH,‘BOY:’,‘$’DISP2DB0DH,0AH,‘GIRL:’,‘$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVCX,COUNTINPUT:MOVDX,OFFSETDISPMOVAH,9INT21HMOVAH,1INT21H;讀入一個字符CMPAL,‘1';是男生?JZBOYCOUNTCMPAL,‘0’;是女生?JZGIRLCOUNTJMPINPUTBOYCOUNT:INCBOY;男生人數(shù)加1JMPLOOPNEXTGIRLCOUNT:INCGIRL;女生人數(shù)加1LOOPNEXT:LOOPINPUTMOVAH,4CHINT21H;返回DOSCODEENDSENDSTART?實驗六子程序設(shè)計一、實驗主要內(nèi)容編寫一個程序,將BUF開始的10個單元中的二進制數(shù)轉(zhuǎn)換成兩位十六進制數(shù)的ASCII碼,在屏幕上顯示出來。要求碼型轉(zhuǎn)換通過子程HEXAC實現(xiàn),在轉(zhuǎn)換過程中,通過子程序DISP實現(xiàn)顯示。二、實驗?zāi)康模薄⒄莆諈R編語言子程序的設(shè)計方法;2、掌握主程序與子程序之間的調(diào)用關(guān)系及調(diào)用方法。三、實驗具體操作過程1、分析:該實驗程序用子程序的近程調(diào)用實現(xiàn)。由于在調(diào)用HEXASC子程序時,子程序又調(diào)用了DISP子程序,這叫子程序的嵌套調(diào)用。實驗過程中可以從堆棧的內(nèi)容看到兩個子程序的返回地址值.由于是近調(diào)用,地址值只包括返回地址的段內(nèi)偏移量。在每個子程序的執(zhí)行中,檢查CS值是不變的。2、源程序DATASEGMENTBUFDB0ABH,0CDH,0DEH,01H,02H,03HDB3AH,4BH,5CH,6FHDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVCX,10LEABX,BUFAGAIN:MOVAL,[BX]CALLHEXASCINCBXLOOPAGAINMOVAH,4CHINT21HHEXASCPROCNEARMOVDL,ALPUSHCXMOVCL,4SHRDL,CLPOPCXCALLDISP;顯示高位HEX數(shù)MOVDL,ALANDDL,0FHCALLDISPRETHEXASCENDPDISPPROPCMPDL,9JBENEXTADDDL,7NEXT:ADDDL,30HMOVAH,2INT21H;顯示RETDISPENDPCODEENDSENDSTART?實驗七綜合程序設(shè)計一、實驗主要內(nèi)容設(shè)計并實現(xiàn)一個小型應(yīng)用實例,要求:1、接收從鍵盤輸入的一個班的學(xué)生成績,存放于50字的grade數(shù)組中,其中g(shù)rade+i保存學(xué)號為i+1的學(xué)生成績。2、根據(jù)grade中學(xué)生成績,把學(xué)生名次填入50字的rank數(shù)組中,其中rank+i的內(nèi)容是學(xué)號為i+1學(xué)生的名次。3、最后按學(xué)號順序把名次從終端顯示出來。二、實驗?zāi)康氖炀氄莆杖N基本結(jié)構(gòu)程序設(shè)計、掌握結(jié)構(gòu)化程序設(shè)計方法,并能綜合運用,從而培養(yǎng)學(xué)生綜合分析問題和解決問題的能力.三、實驗具體操作過程1、在該應(yīng)用實例中,包括三個方面的內(nèi)容:一成績輸入;二計算名次;三是排序輸出。每一部分可對應(yīng)一段子程序,程序結(jié)構(gòu)是一個較為典型的層次結(jié)構(gòu),如下圖:① 程序MAIN功能:根據(jù)輸入的學(xué)生成績,計算并顯示出學(xué)生名次。②?程序INPUT功能:接收一個班級學(xué)生的成績,各成績之間用空格隔開。③ 程序RANKP功能:計算一個班級學(xué)生的名次。(可參照循環(huán)程序(一)中的程序段)④?程序OUTPUT功能:輸出(顯示)一個班級的學(xué)生名次⑤?程序DECIBIN功能:十進制轉(zhuǎn)換二進制,存入BX⑥?程序BINDEC功能:十進制轉(zhuǎn)換二進制,并在屏幕上顯示。⑦?程序DEC_DIV功能:BX的內(nèi)容除以CX的內(nèi)容,并在屏幕上顯示一位商.2、程序框圖:3、源程序模塊名:main.ASM總控模塊EXTRNINPUT:FAREXTRNRANKP:FAREXTRNOUTPUT:FARCODESEGMENTASSUMECS:CODESTART:CALLFARPTRINPUTCALLFARPTRRANKPCALLFARPTROUTPUTMOVAH,4CHINT21HCODEENDSENDSTART模塊名:INPUT。ASM輸入模塊PUBLICINPUTPUBLICGRADEPUBLICCOUNTDATASEGMENTPUBLICGRADEDW50DUP(?)COUNTDW?MESS1DB’GRADE?$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATAINPUTPROCFARMOVAX,DATAMOVDS,AXLEADX,MESS1MOVAH,09INT21HMOVSI,0ENTER:CALLDECIBININCCOUNTCMPDL,','JZSTORECMPDL,13JZEXITSTO(shè)RE:MOVGRADE[SI],BXADDSI,2JMPENTEREXIT:MOVGRADE[SI],BXMOVDL,0AHMOVAH,02HINT21HRETDECIBINPROCNEARMOVBX,0NEWCHAR:MOVAH,1INT21HMOVDL,ALSUBAL,30HJLEXIT1CMPAL,9DJGEXIT1CBWXCHGAX,BXMOVCX,10MULCXXCHGAX,BXADDBX,AXJMPNEWCHAREXIT1:RETDECIBINENDPINPUTENDPCODEENDSEND模塊名:RANKP。ASM學(xué)生成績名次計算模塊EXTRNGRADE:WORDEXTRNCOUNT:WORDPUBLICRANKPPUBLICRANKDATASEGMENTPUBLICRANKDW50DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATARANKPPROCFARMOVAX,DATAMOVDS,AXMOVDX,COUNTMOVBX,0LOOP1:MOVAX,GRADE[BX]MOVRANK[BX],0MOVCX,COUNTLEASI,GRADENEXT:CMPAX,[SI]JGNO_COUNTINCRANK[BX]NO_COUNT:ADDSI,2LOOPNEXTADDBX,2DECD
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度旅游景區(qū)保安臨時工臨時服務(wù)合同
- 二零二五年度醫(yī)療貸款擔(dān)保人免責(zé)服務(wù)合同
- 二零二五年度旅游產(chǎn)品未簽合同消費者權(quán)益保障合同
- 2025年度智能制造行業(yè)勞動合同解除及保密協(xié)議模板
- 2025年度購物中心店面轉(zhuǎn)租與租賃期滿續(xù)約合同
- 天津市2025年度租賃房屋裝修與維修責(zé)任協(xié)議
- 二零二五年度美容院轉(zhuǎn)讓合同附帶技術(shù)培訓(xùn)與售后服務(wù)
- 二零二五年度專業(yè)培訓(xùn)機構(gòu)教師團隊建設(shè)與培養(yǎng)合同
- 2025年遂寧考從業(yè)資格證貨運試題
- 2025年銀川貨運從業(yè)資格證考試題目及答案解析
- 沒頭腦和不高興-竇桂梅.精選優(yōu)秀PPT課件
- 鋼棧橋計算書(excel版)
- 租賃合同審批表
- 事業(yè)單位綜合基礎(chǔ)知識考試題庫 綜合基礎(chǔ)知識考試題庫.doc
- 巖石堅固性和穩(wěn)定性分級表
- 譯林初中英語教材目錄
- 律師事務(wù)所函[]第號
- 物業(yè)交付后工程維修工作機制
- 農(nóng)作物病蟲害專業(yè)化統(tǒng)防統(tǒng)治管理辦法
- 新形勢下如何做一名合格的鄉(xiāng)鎮(zhèn)干部之我見
- 食品經(jīng)營單位經(jīng)營場所和設(shè)備布局、操作流程示意圖模板
評論
0/150
提交評論