匯編實(shí)驗(yàn)報(bào)告(河北工業(yè)大學(xué))_第1頁
匯編實(shí)驗(yàn)報(bào)告(河北工業(yè)大學(xué))_第2頁
匯編實(shí)驗(yàn)報(bào)告(河北工業(yè)大學(xué))_第3頁
匯編實(shí)驗(yàn)報(bào)告(河北工業(yè)大學(xué))_第4頁
匯編實(shí)驗(yàn)報(bào)告(河北工業(yè)大學(xué))_第5頁
已閱讀5頁,還剩103頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

.實(shí)驗(yàn)一順序與分支程序設(shè)計(jì)DATABUF1BUF2BUF3DATACODESEGMENTDW9348HDW4DUP(0),0AH,0DH,'$'ENDSSEGMENTASSUMECS:CODE,DS:DATABEGIN:MOVAX,DATAMOVDS,AXMOVAX,BUF1ADDAX,0JSNEXTMOVBUF2,AXMOVBUF3,AXJMPEEENEXT:ANDAX,7FFFHNOTMOVINCAXBUF2,AXAXMOVBUF3,AXEEE:MOVCX,0004HMOVDI,OFFSETBUF2精選精選.MOVDX,[DI]ADDDI,03BBB:MOVAX,DXANDAX,000FHCMPAL,0AHJBQQQADDAL,07HQQQ:ADDAL,30HMOV[DI],ALDECDIPUSHCXMOVSHRPOPLOOPMOVMOVMOVCL,04HDX,CLCXBBBCX,0004HSI,OFFSETBUF3ADDSI,03HCCC:MOVAX,DXANDAX,000FHCMPAL,0AHJBDDDADDAL,07HDDD:ADDAL,30HMOVDECPUSHMOVSHRCXCL,04HDX,CLPOPLOOPMOVCXCCCDX,OFFSETBUF2MOVINTMOVMOVINTMOVINTAH,09H21HDX,OFFSETAH,09H21HAH,4CH21HBUF3CODEENDSENDBEGIN精選.2)有兩個(gè)兩字節(jié)無符號(hào)數(shù)分別放在存儲(chǔ)單元A、B起始的緩沖器中,求其和,結(jié)果放在A起始源代碼:DATASEGMENTBDB56H,83HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,AMOVBL,BADDAL,BLMOVAH,A+1MOVBH,B+1ADCAH,BHMOVA,AL精選.MOVA+1,AHMOVCX,0004HMOVDI,OFFSETAMOVDX,[DI]ADDDI,03NEXT:MOVAX,DXANDAX,000FHCMPAL,0AHJBQQQADDAL,07HQQQ:ADDAL,30HMOV[DI],ALDECPUSHMOVSHRPOPLOOPDICXDX,CLCXNEXTMOVDX,OFFSETAMOVAH,09HINT21HMOVAH,4CHINT21HCODEENDSENDSTART精選.STACKSEGMENTSTACKDB1024DUP(0)STACKDATABUFMAXDATACODEENDSSEGMENTDB70H,35H,1FHENDSSEGMENTASSUMECS:CODE,DS:DATA,SS:STACKBEGIN:MOVAX,DATAMOVDS,AXMOVAL,BUF精選.CMPAL,BUF+1JNBLP1MOVAL,BUF+1LP1:CMPAL,BUF+2JAELP2MOVAL,BUF+2LP2:MOVCX,02HMOVDI,OFFSETMAXMOVDL,ALINCDILP3:ANDAL,0FHCMPAL,0AHJBLP4ADDAL,07HLP4:ADDAL,30HMOV[DI],ALDECPUSHMOVSHRPOPMOVLOOPDICXDL,CLCXAL,DLLP3MOVMOVINTDX,OFFSETMAXAH,09H21HMOVAH,4CHINTCODEEND21HENDSBEGIN精選.號(hào)數(shù)。STACKSEGMENTSTACKDB1024DUP(0)STACKDATABUFMAXDATACODEENDSSEGMENTDB98H,75H,32HENDSSEGMENTASSUMECS:CODE,DS:DATA,SS:STACKBEGIN:MOVAX,DATAMOVDS,AXMOVAL,BUFCMPAL,BUF+1JGLP1XCHGAL,BUF+1精選.LP1:CMPAL,BUF+2JGLP2XCHGAL,BUF+2LP2:MOVMAX,ALMOVCX,02HMOVDI,OFFSETMAXMOVDL,[DI]INCDILP3:MOVAL,DLANDAL,0FHCMPAL,0AHJBLP4ADDAL,07HLP4:ADDAL,30HMOV[DI],ALDECPUSHMOVSHRDICXDX,CLPOPLOOPMOVMOVINTMOVINTCODEENDCXLP3DX,OFFSETAH,09H21HAH,4CH21HENDSBEGINMAX精選.(X2+X(X=3)|X22X(X=4)DATASEGMENTXDB?YDB?DATAENDSSTACKSEGMENTSTACK精選.DW20HDUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXl0:MOVDL,0AHMOVAH,2INT21HMOVDL,0DHINT21HMOVAH,1INT21HSUBAL,30HMOVX,ALCMPX,3CMPX,4CMPX,5CMPX,6CMPX,0l1:MOVAL,XMULXADDAL,XMOVY,ALl2:MOVAL,XMULXSUBAL,XSUBAL,XMOVY,ALl3:MOVAL,XMULXMOVY,ALl4:MOVAL,XMULXMOVBL,2DIVBLMOVY,AL精選.l5:MOVDL,0AHMOVAH,2INT21HMOVDL,0DHINT21HMOVDL,YMOVCL,4SHRDL,CLCMPDL,9ADDDL,7l7:ADDDL,30HMOVAH,2INT21HMOVDL,YANDDL,0FHCMPDL,9ADDDL,7l8:ADDDL,30HMOVAH,2INT21Hl6:MOVAH,4CHINT21HCODEENDSENDSTART精選.DDATASSEGMENTXDB?YDB?ZDB?DATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATASSTART:MOVAX,DATASMOVDS,AXL0:MOVAH,1INT21HSUBAL,30HMOVX,ALMOVDL,0AHMOVAH,2INT21HMOVDL,0DHINT21HMOVAH,1INT21HSUBAL,30HMOVY,ALMOVDL,0AHMOVAH,2INT21HMOVDL,0DHINT21HMOVAH,1INT21HMOVZ,AL精選.精選.L1:MOVAL,XADDAL,YMOVS,ALJMPL6L2:MOVAL,XSUBAL,YMOVS,ALCMPS,0JNSL6L3:MOVAL,XMULYMOVS,ALJMPL6L4:MOVAL,XMOVBL,YMOVAH,0DIVBLMOVS,ALJMPL6L5:NEGSJMPL6L6:MOVDL,0AHMOVAH,2INT21HMOVDL,0DHINT21HMOVDL,SL9:ADDDL,30HMOVAH,2INT21HMOVDL,0AHMOVAH,2INT21HMOVDL,0DHINT21H精選.JMPL0L7:MOVAH,4CHINT21HCODESENDSENDSTART實(shí)驗(yàn)二循環(huán)與子程序程序設(shè)計(jì)2)掌握循環(huán)程序的設(shè)計(jì)方法。3)學(xué)習(xí)子程序的定義和調(diào)用方法。4)掌握子程序、子程序的嵌套、遞歸子程序的結(jié)構(gòu)。精選.6)熟練掌握DEBUG的常用命令,學(xué)會(huì)用DEBUG調(diào)試程序。DATASEGMENTBUFDB'S=1+2*3+3*4+4*5+…+N(N+1)+…=','$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETBUFMOVAH,09HINT21HMOVNEXT:MOVMOVINCMULDX,12AL,BLBLBLADDDX,AXCMPAX,200JNANEXTMOVCX,0004HMOVDI,OFFSETRESADDDI,03HNEXT1:MOVAX,DXANDAX,000FHCMPAL,0AHJBNEXT2ADDAL,07NEXT2:ADDAL,30HMOV[DI],ALDECPUSHMOVSHRPOPDICXDX,CLCX精選.LOOPNEXT1MOVMOVINTDX,OFFSETAH,09H21HRESMOVAH,4CHINT21HCODEENDSENDSTARTDATASEGMENTORG3000HDATAENDSSTACKSEGMENTSTACKSTACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXLEASI,XMOVCX,100LP:ANDBYTEPTR[SI],00HLOOPLPMOVAH,4CHINT21HCODEENDSENDSTART.3)編制在屏幕上顯示九九乘法表的程序。DATASEGMENTXDB1YDB1ZDB1YSDB?TENDB10DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX;裝入段寄存器L1:MOVAL,XMULYMOVZ,ALCALLSCINCYMOVBL,XCMPY,BL精選.L2:INCXCMPX,9HMOVY,1MOVDL,0AHMOVAH,02HINT21HMOVDL,0DHMOVAH,02HINT21H;輸出回車換行PLL3:MOVAH,4CHINT21HSCPROC;輸出子程序ADDY,30HMOVDL,YMOVAH,02HMOVDL,'X'MOVAH,02HINTH輸出XADDX,30HMOVDL,XMOVAH,02HINTH輸出XMOVDL,'='MOVAH,02HINT21H;輸出=MOVAX,0MOVAL,ZDIVTENMOVS,ALMOVYS,AHADDS,30HMOVDL,SMOVAH,2INT21H;輸出高位結(jié)果ADDYS,30HMOVDL,YSMOVAH,2MOVDL,''MOVAH,02H精選.INT21H;輸出一個(gè)空格l10:ADDYS,30HMOVDL,YSMOVAH,2INT21H;輸出低位結(jié)果MOVDL,''MOVAH,02HINT21H;輸出一個(gè)空格MOVDL,''MOVAH,02HINT21Hl11:MOVAX,0MOVAL,X-30HSUBX,30HSUBY,30HRETSCENDPCODEENDSENDSTART精選.4)編制在屏幕上顯示用*組成的三角形的程序DATASEGMENTNDB?NNDB?DATAENDSSTACKSEGMENTDW20DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAH,1INT21H;輸入一個(gè)數(shù)存入ALMOVN,AL;輸入的數(shù)存入N精選.SUBN,30HMOVDL,0AHMOVAH,2INT21HMOVDL,0DHMOVAH,2INT21HL10:MOVAL,NMOVNN,ALL2:CMPNN,1MOVDL,''MOVAH,02HINT21HDECNNLBLMOVAH,02HINT21HDECBLCMPBL,1JMPL14L3:MOVAL,NMOVNN,ALL4:CMPNN,1MOVDL,''MOVAH,02HINT21HDECNNL5:MOVDL,0AHMOVAH,2INT21HMOVDL,0DHMOVAH,2INT21H;輸出回車換行INCIMOVBL,ICMPBL,N.MOVBL,0JMPL10L6:MOVAH,4CHINT21HCODEENDSENDSTART5)設(shè)有五個(gè)字?jǐn)?shù)據(jù)存放在以BUF為首地址的內(nèi)存單元中,要求采用調(diào)用多個(gè)字?jǐn)?shù)據(jù)相加的子程序方法編程,和的低位字放在RESULT單元,和的高位字放在RESULT+2單元,并將結(jié)果顯示在屏精選精選.STACKSEGMENTSTACKDB1024DUP(0)STACKENDSDATASEGMENTBUFDW0F101H,110DH,52H,100H,456HCOUNT=($-BUF)/2RESULTDW4DUP(?),'$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKWDADDPUSHMOVMOVPROCDIAX,0DX,0MOVDI,OFFSETBUFNEXT2:ADDAX,[DI]JNCINCNEXT1DXNEXT1:ADDDI,2LOOPNEXT2POPDIRETWDADDENDPSHOWPUSHPUSHMOVPROCCXDICX,04HMOVDI,OFFSETRESULTMOVBX,AXADDDI,07HBBB:MOVAX,BXANDAX,000FHCMPAL,0AHJBQQQADDAL,07HQQQ:ADDAL,30HMOVALDECDIPUSHCXMOVSHRBX,CLPOPCXLOOPBBBMOVCX,CCC:MOVANDAX,0004HAX,DX000FH精選.CMPAL,0AHJBDDDADDAL,07HDDD:ADDAL,30HMOV[DI],ALDECPUSHDICXMOVSHRPOPLOOPCL,04HDX,CLCXCCCPOPPOPDICXRETSHOWENDPBEGIN:MOVAX,DATAMOVDS,AXMOVCX,COUNTCALLCALLMOVMOVINTWDADDSHOWDX,OFFSETAH,09H21HRESULTMOVINTCODEENDAH,4CH21HENDSBEGIN精選.實(shí)驗(yàn)三算術(shù)運(yùn)算與代碼轉(zhuǎn)換程序設(shè)計(jì)1)掌握算術(shù)運(yùn)算程序的設(shè)計(jì)方法。2)掌握代碼轉(zhuǎn)換程序的設(shè)計(jì)方法。3)進(jìn)一步掌握各種程序結(jié)構(gòu)。4)熟練掌握和使用用DEBUG調(diào)試程序。精選DATASEGMENTTABLEDWL1,L2,L3,L4,L5BUFDB32H,20H,12HNUMDB04HDATAENDSSTACK1SEGMENTPARASTACKDW20HDUP(0)STACK1ENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK1START:MOVAX,DATAMOVDS,AXMOVBL,BUFMOVBH,BUF+1MOVCL,BUF+2CMPBL,BHCMPBH,CLJMPL3L1:CMPBL,CLJMPL3L2:MOVDL,BUF+1ANDDL,0F0HSARDL,1SARDL,1SARDL,1SARDL,1ADDDL,30HMOVAH,02HINT21HMOVDL,BUF+1ANDDL,0FHADDDL,30HMOVAH,02HINT21HJMPL5L3:MOVDL,BUF+2ANDDL,0F0HSARDL,1SARDL,1SARDL,1SARDL,1ADDDL,30H精選.MOVAH,02HINT21HMOVDL,BUF+2ANDDL,0FHADDDL,30HMOVAH,02HINT21HJMPL5L4:MOVDL,BUFANDDL,0F0HSARDL,1SARDL,1SARDL,1SARDL,1ADDDL,30HMOVAH,02HINT21HMOVDL,BUFANDDL,0FHADDDL,30HMOVAH,02HINT21HJMPL5L5:MOVAH,4CHINT21HCODEENDSENDSTART精選.DATASEGMENTBIN1DW1101111011010101BDEC1DB6DUP(0)DATAENDSSTACK1SEGMENTPARASTACKDW20HDUP(0)STACK1ENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK1START:MOVAX,DATAMOVDS,AXMOVDX,BIN1MOVDI,OFFSETDEC1MOVCX,0LOP1:PUSHCXMOVAX,DXMOVDX,0MOVCX,10DIVCXXCHGAX,DXADDAL,30H精選.MOV[DI],ALINCDIPOPCXINCCXCMPDX,0JNZLOP1DEC2:DECDIMOVAL,[DI]MOVDL,ALMOVAH,2INT21HLOOPDEC2MOVAH,4CHINT21HCODEENDSENDSTART3)編寫程序計(jì)算從鍵盤輸入兩個(gè)不超過四位的十進(jìn)制數(shù)的和、差、積、商,并以十進(jìn)制形式輸精選DATASEGMENTTISHI1DB'PLEASEENTERTHEFIRSTNUMBER:','$'TISHI2DB'PLEASEENTERTHEFIRSTNUMBER:','$'YUDBADB10BDW10CDW10000FDW0HNUM1DW0HNUM2DW0HNDB0HN1DB4HDATAENDSSTACK1SEGMENTSTACKDW30HDUP(0)STACK1ENDSCODESSEGMENTASSUMECS:CODES,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETTISHI1MOVAH,09HINT21HLOOP2:MOVAX,NUM1MULBMOVBX,AXMOVAH,1INT21HCMPAL,0DHJELOP1MOVNUM1,BXMOVAH,0SUBAL,30HADDNUM1,AXJMPLOOP2LOP1:MOVDL,0AHMOVAH,2INT21H.MOVDL,0DHMOVAH,2INT21HMOVDX,OFFSETTISHI2MOVAH,09HINT21HLOOP1:MOVAX,NUM2MULBMOVBX,AXMOVAH,1INT21HCMPAL,0DHJELOP3MOVNUM2,BXMOVAH,0SUBAL,30HADDNUM2,AXJMPLOOP1LOP3:MOVDL,0AHMOVAH,2INT21HMOVDL,0DHMOVAH,2INT21HMOVN,0MOVDX,NUM1MOVF,DXLOP6:MOVDX,0HMOVAX,FDIVBPUSHDXINCNCMPAX,0HJELOP7MOVF,AXJMPLOP6LOP7:MOVCL,NMOVCH,0LOP16:POPDXADDDX,30HMOVAH,2INT21HLOOPLOP16MOVDX,NUM2MOVF,DXMOVN,0精選.MOVDX,OFFSETJIAMOVAH,09HINT21HLOOOP6:MOVDX,0HMOVAX,FDIVBPUSHDXINCNCMPAX,0HJELOOOP7MOVF,AXJMPLOOOP6LOOOP7:MOVCL,NMOVCH,0LOOOP16:POPDXADDDX,30HMOVAH,2INT21HLOOPLOOOP16MOVDX,OFFSETDENGMOVAH,09HINT21HMOVN,0LOOP3:MOVAX,NUM1ADDAX,NUM2MOVF,AXLOOP4:MOVDX,0HMOVAX,FDIVBPUSHDXINCNCMPAX,0HJELOOP5MOVF,AXJMPLOOP4LOOP5:MOVCL,NMOVCH,0LOOP0:POPDXADDDX,30HMOVAH,2INT21HLOOPLOOP0MOVDL,0AHMOVAH,2INT21HMOVDL,0DHMOVAH,2精選.INT21HMOVN,0MOVDX,NUM1MOVF,DXLOP61:MOVDX,0HMOVAX,FDIVBPUSHDXINCNCMPAX,0HJELOP71MOVF,AXJMPLOP61LOP71:MOVCL,NMOVCH,0LOP161:POPDXADDDX,30HMOVAH,2INT21HLOOPLOP161MOVDX,NUM2MOVF,DXMOVN,0MOVDX,OFFSETJIANMOVAH,09HINT21HLOOOP61:MOVDX,0HMOVAX,FDIVBPUSHDXINCNCMPAX,0HJELOOOP71MOVF,AXJMPLOOOP61LOOOP71:MOVCL,NMOVCH,0LOOOP161:POPDXADDDX,30HMOVAH,2INT21HLOOPLOOOP161MOVDX,OFFSETDENGMOVAH,09HINT21HMOVN,0MOVN,0精選.MOVAX,NUM1SUBAX,NUM2MOVF,AXANDAX,10000000BCMPAX,10000000BJNELOOP6NEGFLOOP6:MOVDX,0MOVAX,FDIVBPUSHDXINCNCMPAX,0HJELOOP7MOVF,AXJMPLOOP6LOOP7:MOVCL,NMOVCH,0LOOP16:POPDXADDDX,30HMOVAH,2INT21HLOOPLOOP16MOVDL,0AH輸出換行和回車MOVAH,2INT21HMOVDL,0DHMOVAH,2INT21HMOVN,0MOVDX,NUM1MOVF,DXLOP62:MOVDX,0HMOVAX,FDIVBPUSHDXINCNCMPAX,0HJELOP72MOVF,AXJMPLOP62LOP72:MOVCL,NMOVCH,0LOP162:POPDXADDDX,30H精選.MOVAH,2INT21HLOOPLOP162MOVDX,NUM2MOVF,DXMOVN,0MOVDX,OFFSETCHENGMOVAH,09HINT21HLOOOP62:MOVDX,0HMOVAX,FDIVBPUSHDXINCNCMPAX,0HJELOOOP72MOVF,AXJMPLOOOP62LOOOP72:MOVCL,NMOVCH,0LOOOP162:POPDXADDDX,30HMOVAH,2INT21HLOOPLOOOP162MOVDX,OFFSETDENGMOVAH,09HINT21HMOVN,0MOVAX,NUM1MULNUM2DIVCPUSHDXMOVF,AXMOVN,0LOOP8:MOVDX,0MOVAX,FDIVBPUSHDXINCNCMPAX,0HJELOOP9MOVF,AXJMPLOOP8LOOP9:MOVCL,NMOVCH,0精選.LOOP17:POPDXADDDX,30HMOVAH,2INT21HLOOPLOOP17MOVN,0POPFLOOP10:MOVDX,0HMOVAX,FDIVBPUSHDXINCNCMPAX,0HJELOOP11MOVF,AXJMPLOOP10LOOP11:MOVAL,NCMPAL,4HJELOOP20MOVAL,4HSUBAL,NMOVCL,ALMOVCH,0LOOP19:MOVDX,'0'MOVAH,2INT21HLOOPLOOP19LOOP20:MOVCL,NMOVCH,0LOOP18:POPDXADDDX,30HMOVAH,2INT21HLOOPLOOP18MOVDL,0AHMOVAH,2INT21HMOVDL,0DHMOVAH,2INT21HMOVN,0MOVDX,NUM1MOVF,DXLOP64:MOVDX,0HMOVAX,FDIVB精選.PUSHDXINCNCMPAX,0HJELOP74MOVF,AXJMPLOP64LOP74:MOVCL,NMOVCH,0LOP164:POPDXADDDX,30HMOVAH,2INT21HLOOPLOP164MOVDX,NUM2MOVF,DXMOVN,0MOVDX,OFFSETchuMOVAH,09HINT21HLOOOP64:MOVDX,0HMOVAX,FDIVBPUSHDXINCNCMPAX,0HJELOOOP74MOVF,AXJMPLOOOP64LOOOP74:MOVCL,NMOVCH,0LOOOP164:POPDXADDDX,30HMOVAH,2INT21HLOOPLOOOP164MOVDX,OFFSETDENGMOVAH,09HINT21HMOVN,0MOVAX,NUM1MOVDX,0DIVNUM2PUSHDXMOVF,AXMOVN,0LOOP15:MOVDX,0.MOVAX,FDIVBPUSHDXINCNCMPAX,0HJELOOP12MOVF,AXJMPLOOP15LOOP12:MOVCL,NMOVCH,0LOOP21:POPDXADDDX,30HMOVAH,2INT21HLOOPLOOP21MOVDX,OFFSETYUMOVAH,09HINT21HPOPFMOVN,0LOOP13:MOVDX,0MOVAX,FDIVBPUSHDXINCNCMPAX,0HJELOOP14MOVF,AXJMPLOOP13LOOP14:MOVCL,NMOVCH,0HLOOP22:POPDXADDDX,30HMOVAH,2INT21HLOOPLOOP22MOVAH,4CHINT21HCODESENDSENDSTART精選.4)寫程序把從鍵盤輸入的四位十六進(jìn)制數(shù)轉(zhuǎn)換為壓縮的BCD碼,并顯示輸出。STACKSEGMENTSTACKDB16DUP(0)STACKENDSDATASEGMENTMSG1DB0AH,0DH,'PLEASEINPUTAGAIN!','$'MSG2DB0AH,0DH,'BCDCODE:','$'MSG3DB'PLEASEINPUTYOUDATA:',0AH,0DH,'$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMSG3MOVAH,09HINT21HMOVAH,01HMOVCX,4精選.INPUT:MOVAH,01H符INT21HCMPAL,30HJBREINPUTCMPAL,39HJAZIMUSUBAL,30HJMPOKZIMU:ANDAL,11011111BCMPAL,41HJBREINPUTCMPAL,46HJAREINPUTSUBAL,37HOK:MOVAH,0PUSHCXMOVCL,4SHLBX,CLADDBX,AXPOPCXLOOPINPUTMOVAX,DATAMOVDS,AXMOVDX,OFFSETMSG2MOVAH,09HINT21HBCD:MOVAX,BXMOVBX,10MOVCX,0S1:MOVDX,0DIVBXPUSHDXINCCXCMPAX,0MOVBX,2S2:POPAXPUSHCXMOVCX,4S2_0:MOVDX,0DIVBXPUSHDXLOOPS2_0MOVCX,4精選.MOVAH,02HS2_1:POPDXADDDL,30HINT21HLOOPS2_1MOVDL,20HINT21HPOPCXLOOPS2JMPOK2REINPUT:MOVAX,DATAMOVDS,AXMOVDX,0MOVAH,09HINT21HJMPSTARTOK2:MOVAX,4C00HINT21HCODEENDSENDSTARTPDATASEGMENT精選.STRING1DB'INPUTYOURM=','$'STRING2DB'INPUTYOURP=','$'REDB8DUP(30H)DATAENDSSTACK1SEGMENTSTACKDW60HDUP(0)STACK1ENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK1START:MOVAX,DATAMOVDS,AXMOVDX,OFFSETSTRING1MOVAH,09HINT21HMOVAH,01HINT21HANDAX,0000FHMOVDL,10MULDLMOVBX,AXMOVAH,01HINT21HANDAL,0FHCLCADDBL,ALADCBH,0MOVDL,0AHMOVAH,02HINT21HMOVDL,0DHINT21HMOVDX,OFFSETSTRING2MOVAH,09HINT21HMOVAH,01HINT21HMOVDH,ALSUBDH,30HMOVDL,0AHMOVAH,02HINT21HMOVDL,0DHINT21HMOVAX,BXMOVBX,0001HMOVDI,OFFSETRE.LOP1:DIVDHADDAH,30HMOV[DI],AHCBWADDDI,BXCMPAL,0JALOP1MOVCX,08HMOVDI,OFFSETRECLCADCDI,CXLOP2:SUBDI,BXMOVDL,[DI]MOVAH,02HINT21HLOOPLOP2MOVAH,4CHINT21HCODEENDSENDSTART實(shí)驗(yàn)五輸入輸出程序設(shè)計(jì)精選.1)在CRT上每隔一秒連續(xù)顯示字符0-9。0BL輸出是十進(jìn)制,增量后用DAA調(diào)整指令。由于輸出為一位十進(jìn)制數(shù),用AND0FH指令屏蔽高4位。STACKSEGMENTSTACKDB1024DUP(0)STACKENDSCODESEGMENTASSUMECS:CODE,SS:STACKSTART:MOVBL,0LP:MOVDL,20HMOVAH,2INTMOVADDDAAANDMOVPUSHORMOVMOVINT21HAL,BLAL,0FHBL,ALBXAL,30HDL,ALAH,221HMOVBX,3E8HLP2:MOVCX,176H,延時(shí)1ms精選精選.LP1:PUSHFPOPFLOOPDECJNZPOPINCJMPCODELP1BXLP2BXBLLPENDSENDSTART2)用系統(tǒng)功能調(diào)用將‘HELLO’由鍵盤輸入,再從屏幕輸出‘***HELLO***’。STACKSEGMENTSTACKDB1024DUP(0)STACKDATABUFFDATAINPUTENDSSEGMENTENDSMACROBUFEMOVMOVINTDX,OFFSETBUFEAH,0AH21HENDMPUTCHARMACROCHARMOVMOVINTENDM.DL,CHARAH,02H21HCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXINPUTBUFF;讀取字符串BUFFPUTCHAR0DHPUTCHAR0AH;光標(biāo)另起一行MOVCX,0003HNEXT:PUTCHAR2AHLOOPNEXTMOVCL,BUFF+1SUBCH,CHMOVBX,OFFSETBUFF+2BEGIN:MOVAL,[BX]PUTCHARALINCLOOPMOVBXBEGINCX,0003HNEXT1:PUTCHAR2AHLOOPMOVINTCODEENDNEXT1AH,4CH21HENDSSTART精選精選.DATASEGMENTCOLDw50ROWDw50LENGTHDw100COLORDb2DATAENDSSTACK1SEGMENTDW20DUP(0)STACK1ENDSCODESEGMENTSTACKASSUMECS:CODE,DS:DATA,SS:STACK1START:MOVAX,DATAMOVMOVMOVDS,AXAH,0AL,12HINT10HMOVDX,ROWMOVCX,COLCALLPROC_XMOVDX,ROWMOVCX,COLCALLPROC_YMOVDX,ROWMOVCX,COLADDCX,LENGTHCALLPROC_YMOVDX,ROWMOVCX,COLADDDX,LENGTHCALLPROC_XMOVAH,1INT21HMOVAH,0MOVAL,3INT10HMOVAH,4CH;結(jié)束INT21H精選.PROC_XPROC;畫橫線子程序MOVBP,LENGTH;線長LOP1:MOVBH,0;置頁號(hào)INCCX;修改列號(hào)MOVAL,COLOR;取象素值MOVAH,0CH;寫象素INT10HDECBPJNELOP1RETPROC_XENDPPROC_YPROC;劃豎線子程序MOVBP,LENGTHLOP2:MOVBH,0INCDX;修改行號(hào)MOVMOVAL,COLORAH,0CHINT10HDECBPJNELOP2RETPROC_YCODEENDENDPENDSSTART精選.4)編制字母下落一行的子程序,調(diào)用該子程序使字母從屏幕頂部下落到底部。DATASEGMENTTIMERDW18COLORDB00000100BSTR1DB'NICETOMEETYOU!'DATAENDSSTACK1SEGMENTSTACKDW100DUP(?)STACK1ENDSCODESEGMENTASSUMEDS:DATA,CS:CODE,SS:STACK1,ES:DATASTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVAH,0FHINT10HPUSHAXMOVAL,03HMOVAH,00HINT10HMOVAH,13H精選.MOVAL,00HMOVBL,COLORMOVBP,OFFSETSTR1MOVDH,10MOVDL,20MOVCX,5INT10HMOVCX,25LOP1:PUSHCXCALLDOWN1MOVAH,1MOVCX,0MOVDX,0INT1AHDELAY:MOVAH,0INT1AHCMPDX,TIMERJBDELAYPOPCXLOOPLOP1POPAXMOVAH,0INT10HMOVAH,4CHINT21HDOWN1PROCMOVAH,07HMOVAL,1MOVBH,00000000BMOVCH,0MOVCL,0MOVDH,25MOVDL,80INT10HRETDOWN1ENDPCODEENDSENDSTART精選.5)創(chuàng)建一磁盤文件,保存從鍵盤輸入的字符串。STACKSEGMENTSTACK'stack'DB1024DUP(?)STACKENDSDATASEGMENTASKNAMEDB0DH,0AH,'Enterthe'HAND_DDW?MSGMERDB0DH,0AH,0AHMSGWERDB0DH,0AH,0AHMSGSUCDB0DH,0AH,0AHDB0DH,0AH,'$'DATAENDSDISPLYMACROTEXTMOVDX,OFFSETTEXTMOVAH,09HINT21HENDMCRHANDMACROPATH,ATTRMOVDX,OFFSETPATH精選.MOVCL,ATTRXORCH,CHMOVAH,3CHINT21HENDMWRHANDMACROHAND,BUFF,BYTEMOVBX,HANDMOVDX,OFFSETBUFFADDDX,2MOVCL,BYTEXORCH,CHMOVAH,40HINT21HENDMCLHANDMACROHANDMOVBX,HANDMOVAH,3EHINT21HENDMCODESEGMENTPROGPROCFARASSUMECS:CODE,DS:DATA,SS:STACKPUSHDSMOVAX,0PUSHAXMOVAX,DATAMOVDS,AXDISPLYASKNAMEMOVDX,OFFSETFILEBUFMOVAH,0AHINT21HMOVDI,OFFSETFILEBUF[2]MOVBL,FILEBUF[1]XORBH,BHMOVBYTEPTR[BX][DI],00HCRHANDFILEBUF[2],0JCCRTERRMOVHAND_D,AXDISPLY

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論