




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
mess1db'stock;stokninlabelbytemaxdb3actdbstokndb3;stoktabdb'05','Excavatorsdb'08',' db'09',' db'12','Valves db'23','Processors'db'27',' ;descrndb14dup(20h),13,10,'$'messdb'Notintable!','$'DATASENDSCODESSEGMENTASSUMEmainprocpushdssubax,axpushaxmovds,axmoves,axleadx,mess1movah,09intleadx,stokninmovah,0ahintcmpact,0jeexitmovmovah,stokn+1movcx,06lea
cmpax,wordptr[si]jea30
addsi,14loopleadx,messmovah,09int21hjmpmovleadi,descrnrepmovsw;leadx,descrnmovah,09int21hjmpstartmainendpCODESENDSenddatareasegment;definedata 10dup(?)datareaendsprogramsegment;mainproc programends [表格形式顯示ASCII字符] db db'$' assumecs:code,ds:data,ss:stack ; ; int21h incdl dl,';intleadx,space calldisy ;內(nèi)層循環(huán),cx ;lea ;calldisypopdx callexitdisyproc int21hdisyendpexitproc int21hexitendp endmaindatasegmentout1db'Enterout2db'Entersentence:','$'out3db'Matchatlocation:','$'out4db'Hofthesentence',13,10,'$'out5db'Nomatch',13,10,'$'keyworddbdbdb255dup(?)sentencedb255dbdb255dupkdbsdb0dataendscodepushdssubax,axpushax leasi,keyword+2;si
leadi,sentence+2;dileadx,out1movah,09int21hmovah,0ahint;keywordmoval,[bx]mov;movdl,0ahmovah,2int;Entersentenceleadx,out2movah,09int21h;sentencesentenceleadx,sentencemovah,0ahint;sentencemoval,[bx]mov;movdl,0ahmovah,2int21hmoval,ssubal,kmovah,0incaxmov push ;cxmovcl,k如果相等,串比較指令將執(zhí)行的次數(shù)movch,0repzjz ;
;如果不相等,si指向關(guān)鍵字首地址,dimoval,kmovah,0subax,cxdecaxsubdi,axpop ;cxloopsearchjmpno_mach;Matchatlocation:leadx,out3movah,09int21hmovbx,dimoval,kmovah,0subbx,axleadi,sentence+1subbx,dimovch,4;
movrolbx,cl;左循環(huán)移位moval,blandaddal,30h;ASCIIcmpal,3ah;是不是>9 addal,7h;Amovdl,almovah,2int21hdecch;Hofthesentenceleadx,out4movintleasi,keyword+2leadi,sentence+2jmpsen;Nomatchleadx,out5movah,09int21h
movah,4chint21hcodeendsendstartdatagradedws5dws6dws7dws8dws9dws10dw0dataendsmainprocfar;setstackforreturnpushdssubax,axpushax;setdsregistertocurrentdatasegmentmovax,datamov;mainpartofcodegoesheremovs5,0movs6,0movs7,0movs8,0movs9,0movmovcx,movbx,offsetgradeendstart ;bxcmp ;jlfive cmpax,70jlcmpax,80jlsevencmpax,90jleightcmpax,100jlnineincjmpshortnine:incs9 jmpshortchange_addreight:incjmpshortchange_addrseven:incs7jmpshortchange_addrsix:incs6jmpshortchange_addrfive:incs5change_addr:addbx,2 loopcompare main;programendstart[顯示月份名direct]datasegmentpara'data'threedb3messdb'month?',13,10,'$'moninlabelbytemaxdb3actdb?mondb3dup(?)alfmondb'???',13,10,'$'montabdbdb'jul','aug','sep','oct','nov','dec'dataendscodesegmentpara'code'mainprocfarpushdssubax,axpushaxmovax,datamovds,axmoves,axleadx,messmovah,09int21hleadx,moninmovah,0ahintmovdl,13;回車movah,02intmovdl,10;換行movah,02intcmpact,0jeexitmovah,30hcmpact,2jetwomoval,monjmpconvmoval,mon+1movah,monxorax,3030hcmpah,0jzsubah,ahaddleasi,montabdecalmulthreeaddsi,axmovcx,03learepleadx,alfmonmovah,09int21hjmpstartexit:retmainendpcodeendDSEGSEGMENTPARACREQU ;13LFEQU10EOMEQU'$';OUT_OF_RANGEDB'Errorcodeisnotinvalidrange(1-83)'DBCR,LF,EOMDB'Errorcodeis(36-79)',CR,LF,EOMER1DB'Invalidfunctionnumber',CR,LF,EOMER2DB'Filenotfound',CR,LF,EOMER82DB'Cannotmake',CR,LF,EOMER83DB'FailonINTERTAB1DWER1,ER2,ER3,ER4,ER5,ER6,ER7,ER8,ER9,ER10DWER11,ER12,ER13,ER14,ER15,ER16,ER17,ER18DWER19,ER20,ER21,ER22,ER23,ER24,ER25,ER26DWER27,ER28,ER29,ER30,ER31,ER32,ER33,ER34DWER35ERTAB2DWER80,ER81,ER82,ER83DSEGENDSCSEGSEGMENTPARAASSUMECS:CSEG,DS:DSEGSHOW_ERRPROCFARPUSHDSPUSHBX;MOVSI,DSEGMOVDS,SI;PUSHCMP ;AX83JGO_O_RCMPJG ;083O_O_R:LEADX,OUT_OF_RANGE把偏移地址記錄下來并且跳轉(zhuǎn)去顯示,直接執(zhí)行的話就會(huì)顯示這句話JMPSHORTDISP_MSG;CMPAX,35JGTRY79DECAXJMPCMPAX,79JGLAST_4LEA ; 的偏移地址放到dx里面顯示,也是前面定義的句JMPANDAX,3SHLAX,1 ADDBX,AXMOVDX,[BX] ;messageDXMOVAH,9 INT21HPOPAX SHOW_ERR;CSEG;ENDdata db0 db0 ;數(shù)字計(jì)數(shù) db0 db ;緩沖區(qū)最大字符db db80dup(datacodeassume
movax,datamovds,axleamovah,0ah int21hlea ;str+2Bxmovmov movcmpal,'0' jbothers cmpal,'9'jasmallinc ;jmpshort ;直接檢查下一個(gè)字符,next cmpal,'a'jbcmpal,'z'jabigincletter jmpshortnext cmpal,'A'jbotherscmpal,'Z'jaothersincletter jmpshortnext;直接檢查下一個(gè)字符others:incother;1next:incbxloopmovah,4ch int21hcodeendsendmaingradedw50dup(?)rankdw50dup(?)countdw?mess1dbmess2db13,10,'InputError!',13,10,'$'mess3db'Rank:$'DATASENDSSTACKSENDSprognamSEGMENTmainprocfarpushdssubax,axpushaxMOVDS,AXcallinputcallrankpcalloutputmain;inputproc ;ipleadx,mess1 movah,09 int21h;
mov mov calldecibin inccount cmpjestore cmpdl,13 jeexit2jneerrormovgrade[si],bx;add ;是因?yàn)橛米謏mpleadx,mess2;輸出錯(cuò)誤movah,09intmovgrade[si],bx結(jié)束返回什么?callcrlfinput;rankpprocnear movdi,countmovmovmovwordptrrank[bx],0;往內(nèi)存里面存立即數(shù)的時(shí)候要加上類型那些movcx,countleacmpjg incwordptrrank[bxaxax對(duì)應(yīng)在rank里面的位置加一,addloopnextaddbx,2dec ;0之后,jneloop1rankp;outputprocleadx,mess3movah,09int
movmovcallbinidecmovdl,','movah,02int21haddsi,2decdijnznext1callcrlfoutput;decibinprocmovbx,0movah,1 int21hmovsub ;10jlexit1;小于0跳轉(zhuǎn)cmpal,9d ;大于9jgexit1cbw;ALD7AHAL0AH=00;AL1AH=FFH。AL不變。;xchg ;交換兩個(gè)操作數(shù)的數(shù)據(jù),bxmovcx,10d;放到十位上mulcxxchg;addbx,axjmpnewchardecibinendp;binidecprocnear;210;pushbxpushcxpushsipushmovcalldec_divmovcx,10dcalldec_divmovcx,1dcalldec_divpopdipopsipopcxpopbxbinidec;dec_divproc;movax,bx不懂movdx,0div ;cxaxmovbx,dxmovdl,al;addmovah,02h;輸出int21hdec_div;crlfproc;movdl,0ah;換行movah,02hint;movdl,0dh;回車movah,02hint;crlf;prognamENDstacksgsegmentparastack'stack'dw32dup(?)stacksg segmentpara byte;時(shí)間的緩沖maxhlendb6 acthlendb? db6rateparlabel byte工作率的緩沖區(qū)maxrlendb6actrlendbrateflddb6messg1db'Hoursworked?','$'messg2db'Rateofpay?','$'messg3db'Wageascwagedb14dup(30h),13,10,'$';14messg4db13,10,'Overflow!',13,10,'$' dw? dw0 ;中間變量的2進(jìn)制 dw0 binratedw0 db ;decinddb ;0mult10dw01 dw ;兩個(gè)操作數(shù)小數(shù)點(diǎn)后位數(shù)之和(3種情況 db3 ;跳了3行 dw? dw10tempdxdw?tempaxdw codesgsegment ; farwageassume;setupstackforreturn ;setDSregistertocurrentdatasegment ;mainpartofprogramgoeshere ;CALLcallq10scr;清除屏幕callq20curs置光標(biāo)位置callb10inpt;hour calld10hour;Hour的ASCII2進(jìn)制數(shù)calle10rate;rate的ASCII2進(jìn)制數(shù)callf10mult;計(jì)算工資wagecall ;wage2ASCIIcall a20loop循環(huán)起來接收;call callq10scr ;;Input;b10inpt ;把時(shí)間的緩沖區(qū)偏移地址放到dx ;0 callq20curs;置光標(biāo)位置leadx,messg2;輸出話 lea b10inpt;Processhours:HourASCII2; ;加起來此時(shí)si就是數(shù)最后一個(gè)位置callm10asbi ;然后去轉(zhuǎn)換為2進(jìn)制 ;2 ;Processrate:rateASCII2;e10rate call ;2 e10rate;;把工作時(shí)間和工資率的乘積的二進(jìn)制值(有舍入和移位處理)dx:ax;f10mult ;7 ; ;將標(biāo)志寄存器Flag的方向標(biāo)志位DF ;重復(fù)字符串操作前綴,dx shift,10;shift10n ;cx ;cx2 ;
shift,ax;為什么把a(bǔ)x給shift ;邏輯右移除以2 ;adjust不等于0的時(shí)候就要用ax(乘積)/shift
f10mult;ConverttoASC2ASCII; ;從+11 byteptr[si],'.' byteptr[si],: ;為;ax10
;;Disywage顯示工資在屏幕;k10dispproc callq20curs
byteptr[si],30h;0 byteptr[si],20h callq10scr
callk10disp;;ConvertASCto; ;10,mult1010 ;decind=00 ;and4 ;給binval賦值 ;decind=0bx+1繼續(xù)下面,Bx ;Scrollscreen;q10scr subcx,cx int10hq10screndp;;Set;q20cursproc sub int10hq20curs;codesgend[HANOIdatarea db db'WhatisthenameofspindleX?'db0ah,0dh,'$' db'WhatisthenameofspindleY?'db0ah,0dh,'$' db'WhatisthenameifspindleZ?'db0ah,0dh,'$' dw dw10000,1000,100,10,1datareaendsprognamsegment; ;setupstackforreturn ;setDSregistertocurrentdatasegment ;mainpartofprogramgoes call ;ASCIINBXcall ; ;0 ; callcrlf; callcrlf; callcrlf;call;exit:ret;returnto; ; ;SolvestowerofHANOI ;N=1returncall ;調(diào)用入棧的方 ;B,Ccallhanoi callrestorcallprint ;A,Bcallhanoijmp callprintreturn:ret ; ;print call ;顯示N,調(diào)用了binidec把在BX中的N打印出 callcrlf ; ;bp中的是返回的地 ; popbxpushbp ;decibinproc ;al;; ; decibinendp;binidec ;bxN;; ; ;10進(jìn)制,bx存放的是余數(shù),dl wordptr[si] ; ;flag0 ;商=0的時(shí)候去讓si+2 ;printthecontetsofDLonscreen popcxpopbxbinidec;crlf ;printcarriagereturnandlinefeed ; ;crlf; endstart[查找datasg_tabdb50dup(28dup(;=50*28tab_lendw0endaddrdw0最后一個(gè)記錄的地址+28tnamedb21,?,20dup(''),?;緩沖區(qū)tphonedb9,?,8dup(' ;緩沖tempdb28dup(?) mess1db13,10,'Inputname:',13,10,'$'mess2db13,10,'Inputaephonemess3db13,10,'Doyouwanttocontinuetymess4db13,10,'Thenamehasbeeninthetable!Pleaseinputagain!',13,10,'$'mess5db13,10,'Doyouwantaephonenumber?(Y/N)',13,10,'$'mess6dbmess7db13,10,'Name .',13,10,'$'mess8db13,10,'Thenameisnotintable.',13,10,'$'datasgendscodesgsegment;mainprocassume
pushds pushax ;Inputcallcallname_search;查重,判 _tab中是否已經(jīng)包含當(dāng)前人 call ;Thenamehasinthetable!Pleaseinputagain! callstor_name ;Inputaephonenumber: callinphonecallname_sortcallcrlf ;Doyouwanttocontinuety?(Y/N) ;用戶選 callprintallcall ;Doyouwantaephonenumber?(Y/N)callcrlf callinput_namecallname_searchcallcrlfcall callprintline call ;Thenameisnotintable. ; 20input_nameprocnearcallcrlf ;:入 ;為填充空格做準(zhǔn)備,清0 ; tname[bx+2],20hmaxact loopcallcrlfinput_name;stor_nameprocnear cl,tname[1;cx= si,tname[2];si=name ;sicxdi stor_name;inphoneprocnear ;接收并存入 call tphone[1],0; ; cl,tphone[1];cx=字符數(shù) si,tphone[2];si=首地址 inphone;name_sortprocnear對(duì)_tab對(duì)人名進(jìn)行排序cmptab_len,1;僅有一人,不需要排序jeexitnleadi,_tab;第一個(gè)記錄的地址movsi,endaddr ;ASCII repecmpsb ; name_sortendp; 根據(jù)人名查找所需要的,查到則將對(duì)應(yīng)地址存入bx,否則bx=-1name_searchprocnear ;si=待查地 movdi,bxrepecmpsbjzmovaddbx,28;查找下一個(gè)cmpbx,endaddr name_search;printlineprocnear;按name格式輸出查詢結(jié)pushaxcallcrlf ;bx=當(dāng)前記錄址si=字符的偏移地址 loopnextccallcrlf printline;printallprocnear輸出表中所有記錄callcrlfcall ;Name. callprintline;顯示當(dāng)前聯(lián)系人 bx,endaddr;是否達(dá)到表尾 printallendp;crlfprocnear movdl,0dhmovah,02hint21hcrlf;codesgend datasfreqdw 2dup(262,294,330,262
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司策劃活動(dòng)方案
- 公司每天晨跑活動(dòng)方案
- 2025年心理咨詢與心理治療基礎(chǔ)知識(shí)考試試題及答案
- 2025年市場(chǎng)營(yíng)銷策劃考試試題及答案
- 2025年時(shí)尚設(shè)計(jì)師職業(yè)資格考試試卷及答案
- 2025年攝影師職業(yè)技能測(cè)試試題及答案
- 2025年民法典相關(guān)知識(shí)的考試試題及答案
- 2025年城市交通與環(huán)境問題分析考試試題及答案
- 2025年中國(guó)冷壓香皂行業(yè)市場(chǎng)全景分析及前景機(jī)遇研判報(bào)告
- 二型糖尿病的護(hù)理
- 2025年山東夏季高中學(xué)業(yè)水平合格考模擬生物試卷(含答案)
- 大連海事大學(xué)育鯤輪電機(jī)員培訓(xùn)課件詳解
- GB/T 45577-2025數(shù)據(jù)安全技術(shù)數(shù)據(jù)安全風(fēng)險(xiǎn)評(píng)估方法
- IgG4腎病的診斷和治療
- 中國(guó)啤酒籃行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告2025-2028版
- 2025年中國(guó)直接結(jié)合鎂鉻磚數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 會(huì)議流程規(guī)劃能力試題及答案
- 中藥硬膏熱貼敷操作流程
- 西安歷年美術(shù)中考題及答案
- 國(guó)家開放大學(xué)《管理學(xué)基礎(chǔ)》形考任務(wù)1-4答案
- 眩暈中醫(yī)臨床路徑解讀
評(píng)論
0/150
提交評(píng)論