版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
匯編實(shí)驗(yàn)一姓名:康杰靚學(xué)號(hào):1120111262班級(jí):05211101專業(yè):通信工程實(shí)驗(yàn)一DOS環(huán)境下的匯編語言編程環(huán)境使用姓名:康杰靚學(xué)號(hào):1120111262班級(jí):05211101專業(yè):通信工程一、實(shí)驗(yàn)要求和目的1、掌握匯編語言程序設(shè)計(jì)的基本流程和學(xué)會(huì)上機(jī)開發(fā)簡單程序;2、熟練掌握宏匯編程序MASM的使用;3、熟練掌握連接程序LINK的使用;4、熟練掌握DEBUG的使用;二、軟硬件環(huán)境1、硬件環(huán)境:計(jì)算機(jī)系統(tǒng)windows;2、軟件環(huán)境:裝有MASM、DEBUG、LINK、等應(yīng)用程序。三、實(shí)驗(yàn)的主要思想和流程圖1、熟悉簡單的匯編程序語句,通過實(shí)際的編譯運(yùn)行查找語句語法錯(cuò)誤并且學(xué)會(huì)改正,再通過DEBUG程序?qū)λ幾g的程序做基本的調(diào)試。匯編語言程序設(shè)計(jì)上機(jī)開發(fā)過程如圖:2、實(shí)驗(yàn)二是自己編寫一段簡單的數(shù)字分類程序,需要用到比較和循環(huán)的思想,可以令每個(gè)數(shù)和零作比較,通過分類大于、等于和小于,將所給數(shù)據(jù)分類,再利用循環(huán),對(duì)數(shù)組中的每一個(gè)數(shù)分別執(zhí)行該過程即可。四、實(shí)驗(yàn)內(nèi)容與步驟1、匯編、鏈接并調(diào)試下面給出的簡單程序,找出程序中的錯(cuò)誤。(一)錄入并建立匯編語言源程序文件(ASM文件)用匯編程序MASM將ASM文件匯編成目標(biāo)程序文件(OBJ文件)用連接程序LINK生成可執(zhí)行程序文件(EXE文件)程序的調(diào)試2、完成程序設(shè)計(jì):分類統(tǒng)計(jì)字?jǐn)?shù)組data中正數(shù)、負(fù)數(shù)和零的個(gè)數(shù),并分別存入內(nèi)存字變量Positive、Negative和Zero中,數(shù)組元素個(gè)數(shù)保存在其第一個(gè)字中。使用Debug查看Positive、Negative和Zero三個(gè)變量的數(shù)據(jù)。五、實(shí)驗(yàn)過程及結(jié)果1、將所給程序編譯后進(jìn)行修改所給原始程序?yàn)椋篋ATA1SEGMENTword1DW1,9078Hbyte1DB21,'World'DD12345678HMsgDB'Hello,everyone!$'DATA1ENDSSTACKSEGMENTstadw20dup(?)topequsizestaSTACKENDScodesegmentassumecs:code,ds:data1,ss:stackStart:MOVAX,data1MOVDS,AXMOVDX,OFFSETMsgMOVAH,9INT21hNopMOVAX,0MOVBX,1HADDITIONADDAX,BXINCBXCOMBX,10JAEADDITIONMOVAH,4ch;DOSterminateprogramfunctionINT21hcodeendsENDStart經(jīng)過運(yùn)行后,發(fā)現(xiàn)有三處錯(cuò)誤根據(jù)錯(cuò)誤提示,檢查源程序后發(fā)現(xiàn),ADDITION的后面缺少了冒號(hào),因?yàn)檫@是一個(gè)子的代碼段,需要在名稱后面加上冒號(hào)來作為起始。還有一個(gè)錯(cuò)誤是將CMP錯(cuò)寫為COM,CMP為比較指令,而用于判斷循環(huán)的結(jié)束與否,而沒有COM這條指令。修改之后的代碼為:DATA1SEGMENTword1DW1,9078Hbyte1DB21,'World'DD12345678HMsgDB'Hello,everyone!$'DATA1ENDSSTACKSEGMENTstadw20dup(?)topequsizestaSTACKENDScodesegmentassumecs:code,ds:data1,ss:stackStart:MOVAX,data1MOVDS,AXMOVDX,OFFSETMsgMOVAH,9INT21hNopMOVAX,0MOVBX,1HADDITION:ADDAX,BXINCBXCMPBX,10JAEADDITIONMOVAH,4ch;DOSterminateprogramfunctionINT21hcodeendsENDStart修改之后,代碼編譯成功,生成OBJ文件,再生成EXE文件,可成功運(yùn)行。但執(zhí)行DEBUG后發(fā)現(xiàn),并沒有按照正常的循環(huán)執(zhí)行,經(jīng)檢查,發(fā)現(xiàn)循環(huán)結(jié)束標(biāo)志有誤,JAE表示CF=0,而要想實(shí)現(xiàn)AX從1累加到10的操作,結(jié)束標(biāo)志應(yīng)為CF=1,故將JAE改為JB。最終DEBUG調(diào)試結(jié)果為:2、分類統(tǒng)計(jì)字?jǐn)?shù)組data中正數(shù)、負(fù)數(shù)和零的個(gè)數(shù),并分別存入內(nèi)存字變量Positive、Negative和Zero中,數(shù)組元素個(gè)數(shù)保存在其第一個(gè)字中。使用Debug查看Positive、Negative和Zero三個(gè)變量的數(shù)據(jù)。實(shí)驗(yàn)思路:自行選定幾組數(shù)據(jù),將第一個(gè)數(shù)保存數(shù)據(jù)個(gè)數(shù),所有數(shù)據(jù)存放在AX寄存器中,BX寄存器存放當(dāng)前數(shù)據(jù)地址,CX存放表示循環(huán)次數(shù)的數(shù)據(jù)。依次取AX中的每個(gè)數(shù)與0比較,使用CMP指令,若零標(biāo)志ZF=1,則通過jz指令跳轉(zhuǎn)至equal,zero變量加1,BX指向下一個(gè)數(shù)據(jù);若符號(hào)標(biāo)志SF=1,則通過js指令跳轉(zhuǎn)至small,negative變量+1,BX指向下一個(gè)數(shù)據(jù);若符號(hào)標(biāo)志SF=0,則通過jns指令跳轉(zhuǎn)至large,positive變量+1,BX指向下一個(gè)數(shù)據(jù)。使用loop指令,執(zhí)行CX-1后判斷CX是否為零,若不為零,則繼續(xù)返回COMPARE進(jìn)行下一個(gè)循環(huán);若為零,則結(jié)束程序。根據(jù)題目要求,畫出的流程圖如下: START N AX=0? Y NAX>0? Y zero+1 negative+1 positive+1 BX+2 BX+2 BX+2 CX-1 N Y CX=0? END程序源代碼為:DATASSEGMENTdatadw5,4,2,0,-1,0positivedw0negativedw0zerodw0DATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATASSTART:MOVAX,DATASMOVDS,AXmovBX,2movCX,dataCOMPARE:movAX,data[BX]cmpAX,0jzequaljssmalljnslargeequal:inczeroaddBX,2jmpnextsmall:incnegativeaddBX,2jmpnextlarge:incpositiveaddBX,2jmpnextnext:loopCOMPAREMOVAH,4CHINT21HCODESENDSENDSTART選用的數(shù)據(jù)有5個(gè),分別為4,2,0,-1,0,共有兩個(gè)正數(shù),兩個(gè)零,一個(gè)負(fù)數(shù)DEBUG調(diào)試結(jié)果如下圖:由DEBUG的結(jié)果發(fā)現(xiàn),內(nèi)存中第一行存放的為數(shù)據(jù)個(gè)數(shù)5,每個(gè)數(shù)據(jù)4,2,0,-1,0,以及結(jié)果zero=2,negative=1,positive=2,說明結(jié)果正確。六、實(shí)驗(yàn)感想與總結(jié)通過本次實(shí)驗(yàn),對(duì)匯編環(huán)境有了基本的了解,知道了該如何建立、連接、運(yùn)行和調(diào)試程序,也對(duì)匯編語言的編寫有了初步的認(rèn)識(shí),能通過錯(cuò)誤提示找出語句中的語法錯(cuò)誤,以及通過DEBUG調(diào)試,發(fā)現(xiàn)程序本身存在的一些錯(cuò)誤和漏洞并且加以改正。本次實(shí)驗(yàn)的經(jīng)驗(yàn)為日后學(xué)習(xí)匯編打下了一定的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 南京2025年江蘇南京市秦淮區(qū)教育局所屬學(xué)校招聘高層次人才6人筆試歷年參考題庫附帶答案詳解
- 東莞廣東東莞市公安局東坑分局警務(wù)輔助人員招聘31人筆試歷年參考題庫附帶答案詳解
- 中國3-丁烯-1-醇行業(yè)市場運(yùn)行態(tài)勢及發(fā)展趨勢預(yù)測報(bào)告-智研咨詢發(fā)布
- 企業(yè)廠務(wù)公開制度
- 耐藥網(wǎng)絡(luò)指導(dǎo)的個(gè)體化治療策略
- 倉庫理貨獎(jiǎng)罰制度
- 中學(xué)教師辦公室衛(wèi)生制度
- 商場衛(wèi)生間安全管理制度
- 衛(wèi)生院工會(huì)財(cái)務(wù)內(nèi)控制度
- 衛(wèi)生局討價(jià)還價(jià)制度匯編
- 北京市2025年七年級(jí)上學(xué)期期末考試數(shù)學(xué)試卷三套及答案
- 2025年工廠三級(jí)安全教育考試卷含答案
- 2026年上海理工大學(xué)單招職業(yè)適應(yīng)性測試題庫附答案
- TCEC電力行業(yè)數(shù)據(jù)分類分級(jí)規(guī)范-2024
- 建設(shè)用地報(bào)批培訓(xùn)課件
- 駱駝的養(yǎng)殖技術(shù)與常見病防治
- 化肥產(chǎn)品生產(chǎn)許可證實(shí)施細(xì)則(一)(復(fù)肥產(chǎn)品部分)2025
- 2025至2030中國醫(yī)療收入周期管理軟件行業(yè)深度研究及發(fā)展前景投資評(píng)估分析
- 基層醫(yī)療資源下沉的實(shí)踐困境與解決路徑實(shí)踐研究
- 1101無菌檢查法:2020年版 VS 2025年版對(duì)比表
- 醫(yī)務(wù)科副科長醫(yī)務(wù)人員調(diào)配工作方案
評(píng)論
0/150
提交評(píng)論