版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
華北電力大學(xué)實(shí)驗(yàn)報(bào)告||實(shí)驗(yàn)名稱匯編語言程序設(shè)計(jì)實(shí)驗(yàn)課程名稱IBM-PC匯編語言程序設(shè)計(jì)||專業(yè)班級(jí):計(jì)科1103學(xué)生姓名:李慶賀學(xué)號(hào):201109010307成績(jī):指導(dǎo)教師:王保義實(shí)驗(yàn)日期:1月華北電力大學(xué)實(shí)驗(yàn)報(bào)告-PAGE3-實(shí)驗(yàn)一用表格形式顯示字符實(shí)驗(yàn)要求按15*16列的表格形式顯示ASCⅡ碼為10H—100H的所有字符,即以行為主的順序及ASCⅡ碼遞增的次序依次顯示對(duì)應(yīng)的字符。每16個(gè)字符為一行,每行中的相鄰兩個(gè)字符之間用空白符隔開。設(shè)計(jì)說明顯示每個(gè)字符可使用功能號(hào)為02的顯示輸出功能調(diào)用:Movah,02hMovdl,輸出字符的ASCⅡ碼Int21h將dl初始化為10H,然后使用其加1以取得下一個(gè)字符的ASCⅡ碼。顯示空白符是,用其ASCⅡ碼置0入dl寄存器。每行結(jié)束時(shí),用回車和換行來結(jié)束本行并開始下一行。由于逐個(gè)顯示相繼的ASCⅡ碼字符是,需要不斷修改dl寄存器的內(nèi)容,而顯示空白、回車、換行也需要使用dl寄存器,為此可使用堆棧保存dx。實(shí)驗(yàn)程序及調(diào)試結(jié)果prognamsegmentmainprocfarassumecs:prognamstart:movah,02hmovdl,10h;設(shè)置初始輸出為ASCII的10hmovbl,15;輸出顯示為15行e:movcx,16;設(shè)置循環(huán)次數(shù),16,表示輸出顯示為16列l(wèi):int21h;顯示輸出pushdx;推入堆棧movah,02hmovdl,0int21hmovah,02hmovdl,0int21h;顯示空白符popdx;將棧頂元素推出incdl;設(shè)置下一個(gè)元素loopl;循環(huán)輸出每行的16個(gè)ASCII元素pushdx;將下一行的首元素推入堆棧movah,02hmovah,09hint21h;顯示messkey字符內(nèi)容leadx,keyadrmovah,0ahint21h;是實(shí)現(xiàn)DOS調(diào)用中的0a號(hào)功能,就是在屏幕上顯示keyadr字符串leadx,messsenmovah,09hint21hleadx,senadrmovah,0ahint21hmoval,senactsubal,keyactjlnmatch;長(zhǎng)度比較,句子長(zhǎng)度短,沒有找到跳到nmatch子語句callsearchjmpshorte0;無條件跳轉(zhuǎn);以上均為DOS上讓其顯示這些內(nèi)容nmatch:leadx,nomatchmovah,09hint21he0:retmainendp;結(jié)束searchprocnearxorcx,cx;cxqinglingmovdx,offsetsenadr;句子地址到dxadddl,senact;句子changduincdl;置長(zhǎng)度加1得到句子最后一位movcl,keyact;關(guān)鍵字長(zhǎng)度到clcld;清除方向標(biāo)志leadi,secstringr0:leasi,keystringrepzcmpsb;如果si和di所指向的兩個(gè)字節(jié)相等,則繼續(xù)比較。所以如果相等的話,就停止循環(huán)。但是這時(shí)候si和di已經(jīng)自動(dòng)加1了,如果要找不相等的那兩個(gè)數(shù),就要把si和di減1。moval,byteptr[si-1]cmpal,byteptr[di-1];把那兩個(gè)不相等的字節(jié)放到ptr數(shù)組中去jnznext;為0?,跳到next子語句subsi,offsetkeystring;獲得操作數(shù)keystring的偏移地址movax,sicmpal,keyact;將關(guān)鍵字與secstring長(zhǎng)度比較jeshowpnext:movcl,keyactcmpdi,dxjnzr0shown:leadx,nomatchmovah,09hint21h;在屏幕上顯示nomatch字符串jmpshorte1showp:leadx,matchmovah,09hint21h;在屏幕上顯示match字符串decdi;句子與關(guān)鍵字匹配最后一位的下一位,所以要見1位movbx,di;xorax,axmoval,keyactsubbx,ax;句子長(zhǎng)度減去關(guān)鍵字長(zhǎng)度movax,offsetsenadrsubbx,axcallbinihexleadx,restmovah,09hint21he1:retsearchendpbinihexprocnearmovch,4r1:movcl,4;左移4位rolbx,clmovdl,blanddl,0fhadddl,30hcmpdl,39hjledispadddl,07hdisp:movah,02hint21hdecchjnzr1retbinihexendpprognamendsendmain程序框圖實(shí)驗(yàn)三分類統(tǒng)計(jì)字符個(gè)數(shù)實(shí)驗(yàn)要求程序接受用戶鍵入一行字符(字符個(gè)數(shù)不超過80個(gè),該字符串用回車符結(jié)束),并按字母、數(shù)字、其它字符分類計(jì)數(shù),然后將結(jié)果存入以letter、digit和other為名的存儲(chǔ)單元中。設(shè)計(jì)說明程序可采用01H功能調(diào)用把鍵入字符先分類計(jì)數(shù)再存入緩沖區(qū)中。程序進(jìn)入debug運(yùn)行并查看計(jì)數(shù)結(jié)果。實(shí)驗(yàn)程序DATASEGMENTPARSDB80;準(zhǔn)備接收80個(gè)字符.NNNDB?;用于存放實(shí)際輸入的個(gè)數(shù).IIIDB80DUP(?);80字節(jié)的空間.D_NDB?C_NDB?O_NDB?MESG1DB13,10,'InputSTR:$';用于提示.MES_CDB13,10,'CharNis:$';用于提示.MES_DDB13,10,'DigitNis:$';用于提示.MES_ODB13,10,'OtherNis:$';用于提示.MES_TDB13,10,'AllNis:$';用于提示.DATAENDS;CODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVD_N,0MOVC_N,0MOVO_N,0MOVDX,OFFSETMESG1MOVAH,9;9號(hào)功能調(diào)用,顯示提示.INT21HMOVDX,OFFSETPARSMOVAH,10;10號(hào)功能調(diào)用,接收鍵盤輸入.INT21H;MOVCL,NNN;收到字符的個(gè)數(shù).MOVCH,0CMPCX,0JNZDO_ITJMPEXITDO_IT:LEASI,III;收到字符的起始地址.;下面開始循環(huán)統(tǒng)計(jì).AGAIN:MOVAL,[SI]D_num:CMPAL,':';-':'JNCN_C_B;>'9'CMPAL,'0'JCN_C_B;<'0'INCD_N;數(shù)字個(gè)數(shù)加一.JMPNEXTN_C_B:CMPAL,'[';-'['JNCN_C;>'Z'CMPAL,'A'JCN_C;<'A'INCC_N;大寫,加一.JMPNEXTN_C:CMPAL,'{';-'{'JNCOTHER;>'z'CMPAL,'a'JCOTHER;<'a'INCC_N;小寫,加一.JMPNEXTOTHER:INCO_N;其它.NEXT:INCSILOOPAGAIN;統(tǒng)計(jì)結(jié)束MOVDX,OFFSETMES_DMOVAH,9;9號(hào)功能調(diào)用,顯示提示.INT21HMOVAL,D_NCALLDISP_ALMOVDX,OFFSETMES_CMOVAH,9;9號(hào)功能調(diào)用,顯示提示.INT21HMOVAL,C_NCALLDISP_ALMOVDX,OFFSETMES_OMOVAH,9;9號(hào)功能調(diào)用,顯示提示.INT21HMOVAL,O_NCALLDISP_ALMOVDX,OFFSETMES_TMOVAH,9;9號(hào)功能調(diào)用,顯示提示.INT21HMOVAL,NNNCALLDISP_AL;顯示結(jié)束.EXIT:MOVAH,4CHINT21H;============================DISP_AL:;以3位十進(jìn)制數(shù)形式顯示AL中的內(nèi)容.MOVAH,0MOVBL,100DIVBLADDAL,30HMOVDL,ALMOVBH,AHMOVAH,2INT21HMOVAH,0MOVAL,BHMOVBL,10DIVBLADDAL,30HMOVDL,ALMOVBH,AHMOVAH,2INT21HADDBH,30HMOVDL,BHMOVAL,AHMOVAH,2INT21HRET;============================CODEENDSENDSTART使用說明程序進(jìn)入后提示輸入字符,可以輸入任意字符,輸入完成后鍵入回車鍵表示完成,則會(huì)在下一行輸出實(shí)驗(yàn)結(jié)果。程序框圖實(shí)驗(yàn)心得體會(huì):這次匯編實(shí)驗(yàn)歷時(shí)一周,但我用了3天時(shí)間完成了3個(gè)編程實(shí)驗(yàn):用表格形式顯示字符、查找匹配字符串、分類統(tǒng)計(jì)字符個(gè)數(shù),由于期間要考試所以就沒有做第四個(gè)。用表格形式顯示字符和查找匹配字符串是使用了循環(huán)程序設(shè)計(jì)思想。顯示字符實(shí)驗(yàn)較為簡(jiǎn)單,只需要一些基礎(chǔ)知識(shí)即可完成。而查找字符串較耗費(fèi)時(shí)間,這個(gè)實(shí)驗(yàn)主要難點(diǎn)就在從句子中查找關(guān)鍵字。查找關(guān)鍵字是使用的串比較指令。這個(gè)指令只能進(jìn)行比較,查找就需要移動(dòng)指針,將整個(gè)句子都與關(guān)鍵字比較一遍,才能確定是否找到了關(guān)鍵字。分類統(tǒng)計(jì)字符個(gè)數(shù)與查找電話號(hào)碼較難,花費(fèi)了我最多的
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年航空公司飛機(jī)租賃及運(yùn)營(yíng)協(xié)議
- 2025版勞動(dòng)合同轉(zhuǎn)讓與員工勞動(dòng)合同解除經(jīng)濟(jì)補(bǔ)償金協(xié)議3篇
- 2025年度水土保持設(shè)施監(jiān)測(cè)驗(yàn)收與生物多樣性保護(hù)合同3篇
- 二零二五年度KTV聯(lián)盟商家增值服務(wù)合作協(xié)議2篇
- 2025版金融科技產(chǎn)品設(shè)計(jì)與風(fēng)險(xiǎn)管理合同2篇
- 2024年電子產(chǎn)品展場(chǎng)地租賃及展品展示設(shè)備供應(yīng)合同3篇
- 2024版二手房交易資金擔(dān)保結(jié)算協(xié)議版B版
- 2024年短期借款保證合同
- 2024版專業(yè)水泵銷售協(xié)議電子版下載版B版
- 浙江互動(dòng)水景施工方案
- 保單檢視報(bào)告活動(dòng)策劃
- 《學(xué)前教育研究方法》課件
- 室外消火栓安裝工程檢驗(yàn)批質(zhì)量驗(yàn)收記錄表
- AI在藥物研發(fā)中的應(yīng)用
- 建立信息共享和預(yù)警機(jī)制
- 美容外外科管理制度
- 苯-甲苯分離精餾塔化工原理課程設(shè)計(jì)
- 國企人力資源崗位筆試題目多篇
- 病毒 課件 初中生物人教版八年級(jí)上冊(cè)(2023~2024學(xué)年)
- JGT129-2017 建筑門窗五金件 滑輪
- 三年級(jí)科學(xué)上冊(cè)水和空氣復(fù)習(xí)課教案
評(píng)論
0/150
提交評(píng)論