![匯編語言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第1頁(yè)](http://file4.renrendoc.com/view/59a9607d579515d15a45ed869d443621/59a9607d579515d15a45ed869d4436211.gif)
![匯編語言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第2頁(yè)](http://file4.renrendoc.com/view/59a9607d579515d15a45ed869d443621/59a9607d579515d15a45ed869d4436212.gif)
![匯編語言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第3頁(yè)](http://file4.renrendoc.com/view/59a9607d579515d15a45ed869d443621/59a9607d579515d15a45ed869d4436213.gif)
![匯編語言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第4頁(yè)](http://file4.renrendoc.com/view/59a9607d579515d15a45ed869d443621/59a9607d579515d15a45ed869d4436214.gif)
![匯編語言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第5頁(yè)](http://file4.renrendoc.com/view/59a9607d579515d15a45ed869d443621/59a9607d579515d15a45ed869d4436215.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
./實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱匯編語言程序設(shè)計(jì)||專業(yè)班級(jí):信息安全學(xué)號(hào):姓名:實(shí)驗(yàn)一匯編語言上機(jī)過程和Debug常用調(diào)試命令實(shí)驗(yàn)?zāi)康模簩W(xué)習(xí)程序設(shè)計(jì)的基本方法和技能,熟練掌握用匯編語言設(shè)計(jì)、編寫、調(diào)試和運(yùn)行程序的方法。實(shí)驗(yàn)題目:熟悉與實(shí)驗(yàn)有關(guān)的系統(tǒng)軟件<如編輯程序、匯編程序、連接程序和調(diào)試程序等>的使用方法。在調(diào)試過程中,學(xué)習(xí)及掌握debug程序的各種操作命令。問題描述:試編寫一程序:比較兩個(gè)字符串string1和string2所含的字符是否相同,若相同則顯示‘match’;否則,顯示‘nomatch’。方法說明:使用ws、tc或EDIT編輯程序來建立源文件,然后存盤,使系統(tǒng)返回DOS。用匯編程序masm<或asm>對(duì)源文件匯編產(chǎn)生目標(biāo)文件obj如:匯編指示出錯(cuò)則需重新調(diào)用編輯程序修改錯(cuò)誤,直至匯編通過為止。用連接程序link產(chǎn)生執(zhí)行文件EXE.執(zhí)行程序,可直接從DOS執(zhí)行程序。使用debug程序調(diào)試程序的方法。實(shí)驗(yàn)步驟:調(diào)用字處理程序EDIT建立以sample.asm文件datareasegmentstring1db‘movethecursorbackward.’string2db‘movethecursorbackward.’mess1db‘Match..’,13,10,’$’mess2db‘Nomatch!..’,13,10,’$’datareaendsprognamsegmentmainprocfarassumecs:prognam,ds:datarea,es:datareastart:pushdssubax,axpushaxmovax,datareamovds,axmoves,axleasi,string1leadi,string2cldmovcx,25repzcmpsbjzmatchleadx,mess2jmpshortdispmatch:leadx,mess1disp:movah,09int21hretmainendpprognamendsendstart對(duì)源文件匯編產(chǎn)生目標(biāo)文件objD:\masm文件名。Asm3.用連接程序link產(chǎn)生執(zhí)行文件exeD:\link文件名。Obj4.執(zhí)行程序D:\文件名5.使用debug程序調(diào)試程序的方法。d>debug文件名.exe_用G命令運(yùn)行程序用U命令顯示程序?qū)W會(huì)設(shè)置斷點(diǎn)。學(xué)會(huì)查看數(shù)據(jù)段的內(nèi)容情況D用E命令修改數(shù)據(jù)區(qū)的字符串。用A命令把數(shù)據(jù)區(qū)的內(nèi)容恢復(fù)原狀T命令逐條跟蹤程序的執(zhí)行學(xué)會(huì)使用F命令、R命令、Q命令等等實(shí)驗(yàn)總結(jié)第一次進(jìn)行匯編實(shí)驗(yàn),主要是學(xué)習(xí)程序設(shè)計(jì)的基本方法和技能,熟練掌握用匯編語言設(shè)計(jì)、編寫、調(diào)試和運(yùn)行程序的方法,只有多上機(jī)練習(xí),才能更好的掌握匯編語言程序設(shè)計(jì)的思想。實(shí)驗(yàn)二循環(huán)程序設(shè)計(jì)1循環(huán)結(jié)構(gòu)是控制重復(fù)執(zhí)行某一程序段的基本程序結(jié)構(gòu).在匯編語言程序設(shè)計(jì)中,循環(huán)程序的地位也是極為重要,從本質(zhì)上來看,循環(huán)程序結(jié)構(gòu)是分支程序結(jié)構(gòu)的一種手特殊形式,也是使用條件轉(zhuǎn)移指令來控制執(zhí)行循環(huán)的.一.實(shí)驗(yàn)?zāi)康模簩W(xué)會(huì)用循環(huán)結(jié)構(gòu)進(jìn)行程序編程。二.實(shí)驗(yàn)題目:設(shè)計(jì)一個(gè)按表格形式顯示ASC||碼為10H—100H的所有字符的程序。三.實(shí)驗(yàn)要求:按15行*16列的表格形式顯示ASC||碼為10H100H的所有字符,即以行為主的順序及ASC||碼遞增的次序依次顯示對(duì)應(yīng)的字符。每16個(gè)字符為一行,每行中的相鄰兩個(gè)字符之間用空白符<ASC||為0>隔開。四.方法說明:<1>顯示每個(gè)字符可使用功能號(hào)為02的顯示輸出功能調(diào)用,使用方法如下:movah,02hmovdl,0AHint21h本題中可把dl初始化為10H,然后不斷使其加1<用INC指令>以取得下一個(gè)字符的ASC||碼。<2>顯示空白符時(shí),用其ASC||碼0置入dl寄存器,每行結(jié)束時(shí),用顯示回車<ASC||為0dh>和換行符<ASC||為oah>來結(jié)束本行并開始下一行。<3>由于逐個(gè)顯示相繼的ASC||字符時(shí),需要保存并不斷修改dl寄存器的內(nèi)容,而顯示空白、回車、換行符時(shí)也需要使用dl寄存器,為此可使用堆棧來保存相繼的ASC||字符。具體用法是:在顯示空白或回車,換行符前用指令pushdx把dl的內(nèi)容保存到堆棧中去。在顯示空白或回車,換行符后用指令popdx恢復(fù)dl寄存器的原始內(nèi)容。五、實(shí)驗(yàn)代碼stacksegmentdb100dup<?>stackendscodesegmentassumecs:code,ss:stackstart:movdl,10hmovcl,0fhloopc:movah,02hmoval,dlint21hincdlpushdxmovdl,0hmovah,02hmoval,dlint21hpopdxloopnzloopcpushdxmovdl,0dhmovah,02hmoval,dlint21hmovdl,0ahmovah,02hmoval,dlint21hpopdxmovcl,0fhcmpdl,0hjneloopcmovah,4chint21hcodeendsendstart實(shí)驗(yàn)結(jié)果實(shí)驗(yàn)總結(jié)本次試驗(yàn)學(xué)會(huì)用循環(huán)結(jié)構(gòu)進(jìn)行程序編程,學(xué)好循環(huán)程序是很重要的,在程序設(shè)計(jì)中,它的地位是極其重要的。實(shí)驗(yàn)三循環(huán)程序設(shè)計(jì)2一.實(shí)驗(yàn)?zāi)康模簩W(xué)會(huì)用循環(huán)程序設(shè)計(jì)進(jìn)行程序編程。二.實(shí)驗(yàn)題目:設(shè)計(jì)查找匹配字符串SEARCH的程序。三.問題要求:程序接收用戶鍵入的一個(gè)關(guān)鍵字以及一個(gè)句子。如果句子中不包含關(guān)鍵字則顯示’nomatch’;如果句子中包含關(guān)鍵字則顯示‘match’,且把該字在句子中的位置用十六進(jìn)制數(shù)顯示出來,要求程序的執(zhí)行過程如下:enterkeyword:abcentersentence:wearestudyingabcmatchatlocation:11Hofthesentenceentersentence:xyz,ok?nomatchentersentence:^c四.方法說明:程序可由三部分組成:<1>輸入關(guān)鍵字和一個(gè)句子,分別存入相應(yīng)的緩沖區(qū)中,可用功能調(diào)用0AH。在句子中查找關(guān)鍵字。關(guān)鍵字和一個(gè)句子中相應(yīng)字段的比較可使用串比較指令,為此必須定義附加段,但附加段和數(shù)據(jù)段可以定義為同一段,以便于串指令的使用,這樣,相應(yīng)的寄存器內(nèi)容也有了確定的含義,如下:SI寄存器為關(guān)鍵字的指針DI寄存器為句子中正相比較的字段的指針CX寄存器存放關(guān)鍵字的字母?jìng)€(gè)數(shù)<長(zhǎng)度>整個(gè)句子和關(guān)鍵字的比較過程可以用一個(gè)循環(huán)結(jié)構(gòu)來完成。循環(huán)次數(shù)為:<句子長(zhǎng)度--關(guān)鍵字長(zhǎng)度>+1在計(jì)算循環(huán)次數(shù)時(shí),如遇到句子長(zhǎng)度小于關(guān)鍵字長(zhǎng)度的情況則應(yīng)轉(zhuǎn)向顯示"nomatch",循環(huán)中還需要用到BX寄存器,它用來保存句子中當(dāng)前正在比較字段的首地址。輸出信息:用功能調(diào)用09h分"找到"或"找不到"兩種情況分別顯示不同的信息。在"找到"時(shí),還要求顯示出匹配字符串在句子中的位置,在"找到"時(shí)BX寄存器的內(nèi)容為匹配字符串的首地址,將此值減到句子的首地址,再將差值加1即是所要的匹配字符串在句子中的位置,可將位置轉(zhuǎn)換為十六進(jìn)制數(shù)從屏幕上顯示出來。實(shí)驗(yàn)代碼ssegsegmentstackdw256dup<?>ssegendsdatasegmentmsg1db'Enterkeyword:',24hmsg2db'EnterSentence:',24hcrdb13,10,24hkeyworddb250,?,250dup<?>Sentencedb250,?,250dup<?>matchdb'Matchatlocation:',24hmatch1db'ofthesentence',13,10,24hnomatchdb'Nomatch',13,10,24hdataendscodesegmentassumecs:code,ds:data,ss:ssegdisp_hexprocnearpushaxpushcxpushdxpushaxmovcl,4roral,clandal,0fhaddal,30hcmpal,39hjnad1addal,7d1:movdl,almovah,2int21hpopaxandal,0fhaddal,30hcmpal,39hjnad2addal,7d2:movdl,almovah,2int21hmovdl,'h'movah,2int21hpopdxpopcxpopaxretdisp_hexendpbegin:movax,datamovds,axmoves,axmovdx,offsetmsg1movah,9int21hmovdx,offsetkeywordmovah,0ahint21hcmpkeyword+1,0jequitmovdx,offsetcrmovah,9int21hb1:movdx,offsetmsg2movah,9int21hmovdx,offsetSentencemovah,0ahint21hmovdx,offsetcrmovah,9int21hmovdl,Sentence+1cmpdl,0jequitmovdh,keyword+1movdi,offsetSentence+2b2:cmpdh,dlja_nomatchmovsi,offsetkeyword+2movcl,dhmovch,0cldpushdirepecmpsbpopdije_matchincdidecdljmpb2_match:movax,disubax,offsetSentence+2incaxpushaxmovdx,offsetmatchmovah,9int21hpopaxcalldisp_hexmovdx,offsetmatch1movah,9int21hjmpb1_nomatch:movdx,offsetnomatchmovah,9int21hjmpb1quit:movah,4chint21hcodeendsendbegin六、實(shí)驗(yàn)結(jié)果實(shí)驗(yàn)總結(jié)本次試驗(yàn)主要考察了串比較指令的用法,同時(shí)將串指令和REPE聯(lián)合起來用,使得指令變得簡(jiǎn)單。實(shí)驗(yàn)中還用到了一些數(shù)據(jù)結(jié)構(gòu),開始時(shí)需要定義空間以及緩沖區(qū)。另外程序需要運(yùn)用有兩層循環(huán),內(nèi)循環(huán)由CX記錄關(guān)鍵字長(zhǎng)度控制循環(huán)計(jì)數(shù),外循環(huán)是由ax記錄外循環(huán)次數(shù)控制外循環(huán)計(jì)數(shù)。通過本次實(shí)驗(yàn),使我更加熟悉了課堂上知識(shí),還培養(yǎng)了我將理論知識(shí)運(yùn)用到實(shí)際編程中去的能力。實(shí)驗(yàn)四分支程序設(shè)計(jì)一.實(shí)驗(yàn)?zāi)康模簩W(xué)會(huì)用分支程序設(shè)計(jì)進(jìn)行程序編程。二.實(shí)驗(yàn)題目:設(shè)計(jì)一個(gè)程序能分類統(tǒng)計(jì)字符個(gè)數(shù)三.實(shí)驗(yàn)要求:程序接收用戶鍵入的一行字符<字符個(gè)數(shù)不超過80個(gè),該字符串用回車符結(jié)束>,并按字母、數(shù)字及其它字符分類計(jì)數(shù),然后將結(jié)果存入以letter、digit和other為名的存儲(chǔ)單元中。四.方法說明:程序可采用0AH功能調(diào)用把鍵入字符直接送到緩沖區(qū)中,然后再逐個(gè)取出分類計(jì)數(shù),也可采用01H功能調(diào)用在接收字符后先分類計(jì)數(shù)然后再存入緩沖區(qū)中。程序需進(jìn)入debug運(yùn)行并查看計(jì)數(shù)結(jié)果。實(shí)驗(yàn)代碼DATASSEGMENTSTRING1DB'InputYourString:$';輸入提示信息STRING2DB'Digit:$';各類字符提示信息STRING3DB'Letter:$'STRING5DB'Others:$'DIGITDB0;數(shù)字CHARSDB0;字母OTHERSDB0;其他DATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATASSTART:MOVAX,DATASMOVDS,AXLEADX,STRING1;顯示輸入提示信息MOVAH,9INT21HMOVCX,100;設(shè)置循環(huán)次數(shù)足夠大L1:MOVAH,1;中斷調(diào)用,單字符輸入INT21HCMPAL,0DH;若輸入回車符則結(jié)束JZOVER2CMPAL,30HJBOTHER;若<30H<0>,OTHERS++CMPAL,39H;若>39H<9>,跳轉(zhuǎn)進(jìn)一步比較JAHIGHER1JMPDIGITAL;DIGIT++HIGHER1:CMPAL,41H;if<41H<A>,OTHERS++JBOTHERCMPAL,5AH;if>5AH<Z>,跳轉(zhuǎn)繼續(xù)比較JAHIGHER2JMPCHAR;ALPHAU++HIGHER2:CMPAL,61H;if<61H<a>,OTHERS++JBOTHERCMPAL,7AH;if>7AH<z>,OTHERS++JAOTHERJMPCHAR;ALPHAL++JMPOVER;比較結(jié)束OTHER:INCOTHERS;OTHERS++JMPOVERDIGITAL:INCDIGIT;DIGIT++JMPOVERCHAR:INCCHARS;ALPHAL++JMPOVERJMPOVEROVER:NOPLOOPL1;循環(huán),輸入下一字符OVER2:CALLENDLINE;回車換行LEADX,STRING2;輸出提示信息MOVAH,9INT21HXORAX,AXMOVAL,DIGIT;將統(tǒng)計(jì)的數(shù)字送AX,為輸出做準(zhǔn)備CALLDISPLAY;調(diào)用輸出兩位數(shù)字的子程序CALLENDLINE;下同LEADX,STRING3MOVAH,9INT21HXORAX,AXMOVAL,CHARSCALLDISPLAYCALLENDLINELEADX,STRING5MOVAH,9INT21HXORAX,AXMOVAL,OTHERSCALLDISPLAYMOVAH,4CHINT21HENDLINEPROCNEAR;控制輸出格式,輸出回車換行子程序MOVAH,2MOVDL,0AHINT21HMOVAH,2MOVDL,0DHINT21HRETENDLINEENDPDISPLAYPROCNEAR;輸出兩位數(shù)字的子程序MOVBL,10;10送BLDIVBL;AX/BL,AL=商,AH=余數(shù)PUSHAX;保存AX中的信息MOVDL,ALADDDL,30HMOVAH,2INT21H;輸出十位數(shù)POPAX;出棧送AXMOVDL,AHADDDL,30HMOVAH,2INT21H;輸出個(gè)位數(shù)RETDISPLAYENDPCODESENDSENDSTART實(shí)驗(yàn)總結(jié)本次實(shí)驗(yàn)要求我們學(xué)會(huì)用分支程序設(shè)計(jì)進(jìn)行程序編程,其中運(yùn)用到許多跳轉(zhuǎn)和比較指令,只要細(xì)心一點(diǎn),理清思路就能很容易的將本程序編寫出來。實(shí)驗(yàn)五子程序設(shè)計(jì)實(shí)驗(yàn)?zāi)康模簩W(xué)會(huì)用子程序設(shè)計(jì)進(jìn)行程序編程。實(shí)驗(yàn)題目:設(shè)計(jì)一個(gè)能查找電話號(hào)碼phone的程序。實(shí)驗(yàn)要求:要求程序建立一個(gè)可存放50項(xiàng)的電話號(hào)碼表,每項(xiàng)包括人名<20個(gè)字符>及電話號(hào)碼<8個(gè)字符>兩部分;程序可接收輸入人名及相應(yīng)的電話號(hào)碼,并把它們加入電話號(hào)碼表中;凡有新的輸入后,程序應(yīng)按人名對(duì)電話號(hào)碼表重新排序;程序可接收需要查找電話號(hào)碼的人名,并從電話號(hào)碼表中查出其電話號(hào)碼,再在屏幕上以如下格式顯示出來。nametel********實(shí)驗(yàn)提示:程序采用子程序結(jié)構(gòu),主程序的主要部分如下:.顯示提示符‘inputname:’;.調(diào)用子程序input_name接收人名;.調(diào)用子程序stor_name把人名存入電話號(hào)碼表tel_tab中;.顯示提示符‘inputatelephonenumber:’;.調(diào)用子程序inphone接收電話號(hào)碼,并把它存入電話號(hào)碼表tel_tab中;.如輸入已結(jié)束則調(diào)用name_sort子程序?qū)﹄娫捥?hào)碼表按人名排序;.顯示提示符‘DOyouwantatelephonenumber?<y/n>’;.回答N則退出程序;.回答Y則再顯示提示符‘name?’;.調(diào)用子程序input_name接收人名;.調(diào)用子程序name_search在電話號(hào)碼表中查找所要的電話號(hào)碼;.調(diào)用子程序printline按要求格式顯示人名及電話號(hào)碼;.重復(fù)查號(hào)提示符直至用戶不再要求查號(hào)為止。實(shí)驗(yàn)代碼data segmenttel_tab db 50dup<28dup<''>> ;tel_tab電話本空間tab_len dw 0 ;已存聯(lián)系人數(shù)目endaddr dw 0 ;最后一個(gè)聯(lián)系人的地址+28tname db 21,?,20dup<''>,? ;姓名緩沖區(qū)tphone db 9,?,8dup<''>,? ;號(hào)碼緩沖區(qū)temp db 28dup<?> ;一個(gè)聯(lián)系人的臨時(shí)空間iname db 13,10,'Inputname:',13,10,'$' iphone db 13,10,'Inputatelephonenumber:',13,10,'$' go_on db 13,10,'Continueinsert?<Y/N>',13,10,'$';提示是否繼續(xù)插入聯(lián)系人sname db 13,10,'Name?',13,10,'$' name_e db 13,10,13,10,'Thenamehasbeeninthetable!Pleaseinputagain!',13,10,'$'text2 db 13,10,'NameTel.',13,10,'$'text3 db 13,10,'Thenameisnotinthetelephonetable!',13,10,'$'text4 db 13,10,13,10,'Doyouwantatelephonenumber?<Y/N>',13,10,'$'data endscode segment;****************************************************************************;主程序;main proc far assume cs:code,ds:data,es:datastart: push ds ;保存舊數(shù)據(jù)用于返回 sub ax,ax push ax mov ax,data ;數(shù)據(jù)段、附加段初始化 mov ds,ax mov es,axinname: lea dx,iname ;提示輸入姓名 mov ah,09h int 21h call input_name ;調(diào)用讀入姓名子程序 call name_search ;調(diào)用查找子程序, cmp bx,-1 ;如表中不存在該聯(lián)系人 je stor ;則跳轉(zhuǎn)到stor call crlf ;回車換行 lea dx,name_e ;否則提示該聯(lián)系人已在表中,提示重新輸入 mov ah,09h int 21h jmp innamestor: call stor_name ;調(diào)用姓名轉(zhuǎn)存子程序,把姓名移動(dòng)到表中 lea dx,iphone ;提示輸入電話號(hào)碼 mov ah,09h int 21h call inphone ;調(diào)用讀入號(hào)碼子程序 call name_sort ;排序 call crlf lea dx,go_on ;提示是否繼續(xù)插入 mov ah,09h int 21hchoice1: mov ah,07 ;讀取用戶選擇 int 21h cmp al,'y' je inname cmp al,'Y' je inname cmp al,'n' je print_all ;如選擇不插入,則顯示所有記錄 cmp al,'N' je print_all jmp choice1print_all: call printall ;顯示所有記錄want_search:call crlf lea dx,text4 ;提示是否查找號(hào)碼 mov ah,09 int 21h call crlfchoice2: mov ah,07 ;讀取用戶選擇 int 21h cmp al,'y' je search ;如果為y或Y則跳轉(zhuǎn)到查找search cmp al,'Y' je search cmp al,'n' ;為n或N則退出程序 je exit_m cmp al,'N' je exit_m jmp choice2search: lea dx,sname ;提示用戶輸入要查找的姓名 mov ah,09 int 21h call input_name ;讀入姓名 call name_search ;查找 call crlf call crlf cmp bx,-1 ;是否查找到? je not_find ;<bx>=1則跳轉(zhuǎn)到未找到not_find lea dx,text2 ;找到則輸出'NameTel.' mov ah,09 int 21h call printline ;顯示查找到的聯(lián)系人 jmp want_search ;跳轉(zhuǎn)到提示查找not_find: ;未找到 call crlf lea dx,text3 ;輸出'Thenameisnotinthetelephonetable!' mov ah,09h int 21h jmp want_search exit_m: retprintall proc near;**************************************************************************;顯示所有電話。顯示電話表中的所有姓名和號(hào)碼,查看排序結(jié)果是否正確; call crlf call crlf lea dx,text2 ;輸出'NameTel.' mov ah,09 int 21h lea bx,tel_tab ;號(hào)碼表基址rept1: call printline ;顯示聯(lián)系人 add bx,28 ;求下一個(gè)聯(lián)系人首地址 cmp bx,endaddr ;是否到達(dá)表尾? jb rept1 ;未到達(dá)則繼續(xù)顯示 retprintall endp ;*******************************************************************;輸入姓名子程序:讀入姓名到tname緩沖區(qū),并把不滿20位的部分;補(bǔ)上空格〔方便查找時(shí)的比較; input_name proc near call crlfnoinputn: lea dx,tname ;姓名緩沖區(qū) mov ah,0ah ;調(diào)用dos0ah讀入字符串功能 int 21h cmp tname[1],0 ;如果輸入為回車 je noinputn ;繼續(xù)等待輸入 xor bx,bx mov bl,tname[1] mov cx,20 sub cx,bx set_blank: mov tname[bx+2],20h ;把不滿20位的部分補(bǔ)空格 inc bx loop set_blank call crlf retinput_name endp;*****************************************************************;stor_name,該子程序把tname緩沖區(qū)的姓名轉(zhuǎn)存入號(hào)碼表中;stor_name proc near xor cx,cx mov cl,tname[1] ;字符個(gè)數(shù) lea si,tname[2] mov di,endaddr cld rep movsb inc tab_len ;聯(lián)系人人數(shù)增1 add endaddr,28 ;最后一個(gè)聯(lián)系人地址增28 retstor_name endp;***************************************************************;獲取號(hào)碼子程序:讀入用戶輸入的號(hào)碼到tphone緩沖區(qū),然后;轉(zhuǎn)存入號(hào)碼表對(duì)應(yīng)位置;inphone proc nearnoinputp: call crlf lea dx,tphone mov ah,0ah int 21h ;調(diào)用dos0a號(hào)功能輸入字符串 cmp tphone[1],0 ;判斷輸入是否為回車 je noinputp ;是,則繼續(xù)等待輸入 xor cx,cx mov cl,tphone[1] lea si,tphone[2] mov di,endaddr sub di,8 ;待插入位置 cld rep movsb ;移動(dòng) ret inphone endp;**********************************************************************;排序子程序〔用直接插入排序,對(duì)號(hào)碼表進(jìn)行按人名從小到大排序;name_sort proc near cmp [tab_len],1 ;記錄數(shù)1,不用排序 je exitn lea di,tel_tab ;第一個(gè)記錄地址 mov si,endaddr sub si,28 ;最后一個(gè)記錄-待排序記錄的地址next1: mov cx,20 mov ax,si ;暫存兩個(gè)地址 mov dx,di cld repe cmpsb ;查找插入位置 jb insert mov si,ax mov di,dx add di,28 ;比較下一個(gè) cmp di,si ;是否比較完 jb next1 ;沒有則繼續(xù)比較 jmp exitn ;否則排序完成insert: mov cx,28 mov si,ax lea di,temp rep movsb ;待排序數(shù)據(jù)放到緩沖區(qū) mov di,axnext2: mov cx,28 mov si,di sub si,28 rep movsb ;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 16 太陽 教案 統(tǒng)編版五年級(jí)語文上冊(cè)
- 2024年九年級(jí)道德與法治下冊(cè) 第一單元 我們共同的世界 第一課 同住地球村 第2框 復(fù)雜多變的關(guān)系說課稿 新人教版
- 2 學(xué)會(huì)寬容 第一課時(shí) 說課稿-2023-2024學(xué)年道德與法治六年級(jí)下冊(cè)統(tǒng)編版
- 2025如何寫農(nóng)村土地承包合同范文
- 2025服裝代理商合同協(xié)議書范本
- 2《花的學(xué)?!氛f課稿-2024-2025學(xué)年統(tǒng)編版語文三年級(jí)上冊(cè)
- 隧道拆除專項(xiàng)施工方案
- 2024年五年級(jí)數(shù)學(xué)上冊(cè) 二 小數(shù)乘法 2小數(shù)的乘法第2課時(shí) 小數(shù)乘小數(shù)說課稿 冀教版
- 軍訓(xùn)訓(xùn)合同范例
- 黔江辦公室鋁扣板施工方案
- 做投標(biāo)文件培訓(xùn)
- 9.4+跨學(xué)科實(shí)踐:制作簡(jiǎn)易活塞式抽水機(jī)課件+-2024-2025學(xué)年人教版物理八年級(jí)下冊(cè)
- 建筑工程工作計(jì)劃
- 2025年中國(guó)國(guó)際投資促進(jìn)中心限責(zé)任公司招聘管理單位筆試遴選500模擬題附帶答案詳解
- 瓶裝液化氣送氣工培訓(xùn)
- 外科護(hù)理課程思政課程標(biāo)準(zhǔn)
- 船舶航行安全
- 道德經(jīng)全文完整版本
- 9.2溶解度(第1課時(shí)飽和溶液不飽和溶液)+教學(xué)設(shè)計(jì)-2024-2025學(xué)年九年級(jí)化學(xué)人教版(2024)下冊(cè)
- 2024年審計(jì)局公務(wù)員招錄事業(yè)單位招聘考試招錄139人完整版附答案【研優(yōu)卷】
- 濰坊市人民醫(yī)院招聘真題
評(píng)論
0/150
提交評(píng)論