版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
匯編語言第七章子程序設計第七章子程序設計返回目錄練習題7(4(1單項選擇題1(在子程序中,如果利用堆棧保護現(xiàn)場,在恢復現(xiàn)場時,先壓入堆棧的內容()。A(先彈出堆棧B(后彈出堆棧C(不分先后彈出堆棧D(任意彈出堆棧2(下列敘述不正確的是()。A(在子程序中的現(xiàn)場保護只能用堆棧來實現(xiàn)。B(在子程序中的現(xiàn)場保護用堆棧來實現(xiàn)是其中的一種方法。C(在子程序中的現(xiàn)場保護可以有多種實現(xiàn)方法。D(在子程序中的現(xiàn)場保護可以將要保護的內容送內存變量來實現(xiàn)。3(下列定義子程序的是()。A(PNAMEPROCB(PNAMEPROC??PNAMEENDSENDMC(PNAMEPROCD(PNAMEPROC??PNAMEENDPPNAMEEND4(子程序重定位可選在內存中的整個區(qū)域內,在進行程序設計時,子程序應采用()。A(絕對地址B(相對地址C(邏輯地址D(物理地址5(下列敘述不正確的是()。A(在子程序中可以再次調用子程序。B(在主程序中一般用跳轉指令轉移到子程序。C(在子程序中一般用返回指令返回到主程序。D(在主程序中一般用調用指令轉移到子程序。6(下列敘述正確的是()。A(執(zhí)行一條段內返回指令,先從堆棧彈出兩個字節(jié)的內容,然后SP指針減2。B(執(zhí)行一條段內返回指令,先SP指針減2,然后從堆棧彈出兩個字節(jié)的內容。C(執(zhí)行一條段內返回指令,先SP指針加2,然后從堆棧彈出兩個字節(jié)的內容。D(執(zhí)行一條段內返回指令,先從堆棧彈出兩個字節(jié)的內容,然后SP指針加2。7(下列敘述正確的是()。A(執(zhí)行一條段間調用指令,先將CS、IP的內容壓棧,然后將目的地址送CS和IP。B(執(zhí)行一條段間調用指令,先將目的地址送CS和IP,然后將CS、IP的內容壓棧。C(執(zhí)行一條段間調用指令,先將CS、IP的內容壓棧,然后SP指針加2。D(執(zhí)行一條段間調用指令,先將CS、IP的內容壓棧,然后SP指針減2。8(下列敘述不正確的是()。A(在匯編語言程序中,每一個過程允許有多條RET指令。B(在匯編語言程序中,每一個過程只允許出現(xiàn)一條RET指令。C(在匯編語言程序中,每一個過程結束之前一定有一條RET指令。D(在匯編語言程序中,以過程形式表示的代碼段一定有一條RET指令存在。9(下列敘述中屬于子程序嵌套的是()。A(主程序調用子程序1B(主程序調用子程序2C(主程序調用子程序3D(子程序1調用子程序210(下列敘述中屬于子程序直接遞歸調用的是()。A(子程序1調用子程序2B(子程序2調用子程序3C(子程序3調用子程序4D(子程序4調用子程序411(在進行DOS功能調用前,其功能號應先送()。A(AH寄存器B(BH寄存器C(CH寄存器D(DH寄存器12(執(zhí)行“INT10H”指令時,中斷向量地址是()。A(10HB(20HC(30HD(40H13(執(zhí)行“INT10H”指令時,其中斷處理程序的入口地址存放在()。A(10H,13HB(20H,23HC(30H,33HD(40H,43H14(執(zhí)行“INT10H”指令時,壓入堆棧的內容有()。A(PSW、CS、IPB(CS、IPC(PSW、IPD(PSW、CS15(在進行字符串顯示的DOS功能調用時,要求字符串的最后一個字符是()。A(0B(‘0’C(‘,’D(0DH7(4(2多項選擇題1(一般的子程序說明文件有()。A(子程序名B(功能描述以入口參數(shù)D(出口參數(shù)2(在子程序的設計中,通常采用現(xiàn)場保護和現(xiàn)場恢復的方法有()。A(寄存器法B(堆棧法C(約定單元法D(變元法3(子程序的參數(shù)傳遞方法有()。A(寄存器法B(約定單元法C(堆棧法D(變元法4(下列敘述中屬于子程序嵌套的有()。A(子程序1調用子程序2,子程序2調用子程序3。B(主程序調用子程序2。C(主程序調用子程序3。D(子程序3調用子程序4。5(下列敘述中屬于子程序遞歸調用的有()。A(子程序1調用子程序2,子程序2調用子程序3。B(子程序2調用子程序3,子程序3調用子程序2。C(子程序3調用子程序4,子程序4調用子程序3。D(子程序3調用子程序3。6(在執(zhí)行“CALLFARPTRM”指令后,完成的操作有()。A(CS、1?入棧B(SP+2C(SP+4。(目的地址送CS、IP7(下列敘述正確的有()。A(如果主程序和子程序A在同一代碼段,則用“CALLA”可以實現(xiàn)子程序的調用。B(如果主程序和子程序A不在同一代碼段,則用“CALLA”可實現(xiàn)子程序的調用。C(如果主程序和子程序A在同一代碼段,則用“CALLFARPTRA”可以實現(xiàn)子程序的調用。D(如果主程序和子程序A不在同一代碼段,則用“CALLFARPTRA”可以實現(xiàn)子程序的調用。8(下列敘述不正確的有()。A(在子程序設計中,不論采用什么參數(shù)傳遞方法,須將所有寄存器的內容保護起來。B(在子程序設計中,為了防止寄存器內容被破壞,通常將有關寄存器內容保護起來。C(在子程序設計中,都是采用寄存器法傳遞參數(shù)。D(在子程序設計中,子程序都只安排一個出口。9(在進行字符串輸入的DOS功能調用時,輸入字符串緩沖區(qū)中的內容是()。A(第一單元存放字符個數(shù)。B(第二單元存放的是實際輸入字符的個數(shù)。C(第三單元開始存放輸入字符的ASCII碼。D(最后一個單元存放回車符。10(如果要將BUF字符緩沖區(qū)的內容顯示輸出,在采用DOS功能調用前,必須()。A(將BUF字符緩沖區(qū)的段地址送DS。B(將BUF字符緩沖區(qū)的段地址送ES。C(將BUF字符緩沖區(qū)的偏移地址送DX。D(將功能號9送AH寄存器。7(4(3填空題1(調用子程序通常用指令,返回調用程序通常用指令。2(在子程序的設計中,通常用堆棧來保護現(xiàn)場和恢復現(xiàn)場。而堆棧的操作原則是。3(如果主程序和子程序在同一個代碼段,則主程序調用子程序時只改變地址。如果主程序和子程序不在同一個代碼段,則主程序調用子程序時要改變地址。4(在調用程序中調用子程序的CALL指令執(zhí)行后,壓人堆棧的內容是指令的下一條指令的地址。在子程序中的RET指令將返回指令繼續(xù)執(zhí)行程序。5(子程序(過程)的定義是以“過程名”開始,以“過程名”結束。6(在調用子程序前,如果將要參加運算的數(shù)送寄存器,這種參數(shù)傳遞方法稱為;如果將要參加運算的數(shù)送指定的內存單元,這種參數(shù)傳遞方法稱為;如果將要參加運算的數(shù)壓入堆棧,這種參數(shù)傳遞方法稱為。7(一個子程序調用另一個子程序稱為;一個子程序直接或間接調用該子程序本身稱為。8(以過程定義的子程序有兩種類型的屬性,他們分別是和。9(在程序設計中,利用堆棧不僅可以保存,而且還可以保存主程序和子程序之間傳遞的參數(shù),這些參數(shù)既可以是,也可以是。10(在程序的執(zhí)行過程中,近程調用時CALL指令執(zhí)行完后壓入堆棧的內容是字節(jié),遠程調用時CALL指令執(zhí)行完后壓入堆棧的內容是字節(jié)。11(在編制子程序時,的使用是十分頻繁的,它不僅可以用來保存返回的地址,而且還可以用來存放主程序與子程序之間傳遞的。12(子程序的正確執(zhí)行是由主程序中的指令和子程序的指令來完成的。13(在進行“INT45H”功能調用時,其中斷類型號為,調用的功能號應送。14(DOS系統(tǒng)功能調用是根據(jù)中斷類型號從中斷向量表中取中斷處理程序的入口地址。每一個中斷處理程序的入口地址占用內存字節(jié),其中的低地址字用來存放中斷處理程序的,高地址字用來存放中斷處理程序的。15(中斷向量表占用內存字節(jié),它的物理地址范圍是。16(在DOS系統(tǒng)功能調用中,01號功能調用表示,它的出口參數(shù)在中。02號功能調用表示,它的入口參數(shù)在中。17(在DOS系統(tǒng)功能調用中,要實現(xiàn)字符串顯示輸出應使用號功能調用,要實現(xiàn)字符串輸入應使用號功能調用。18(在進行字符串輸入的DOS系統(tǒng)功能時,如果鍵盤輸入字符“345A”后按回車鍵,則在鍵盤輸入緩沖區(qū)的第二單元的值是,在第三到第七單元的值依次是。19(在進行字符串顯示輸出的DOS系統(tǒng)功能時,要求輸出字符串以結尾。20(在進行DOS功能調用時,壓入堆棧的內容是。7(4(4簡答題1(簡述在程序設計中,采用子程序結構有哪些優(yōu)點,2(簡述過程的定義與子程序的定義有何區(qū)別,3(簡述一個完整的子程序結構應包含哪幾方面的內容,4(在子程序的設計過程中,子程序的現(xiàn)場保護和現(xiàn)場恢復通常采用哪幾種方法,哪一種方法使用較為方便,5(調用程序和子程序之間一般使用哪幾種參數(shù)的傳遞方法,他們各自的特點是什么,6(簡述段內調用和段間調用時堆棧有何不同,7(簡述子程序嵌套調用的基本原理。8(簡述遞歸調用的基本原理。9(簡述DOS系統(tǒng)功能調用的使用方法。10(簡述DOS系統(tǒng)功能調用和中斷返回時堆棧的變化,7(4(5程序分析題1(現(xiàn)有程序如下:STACKSEGMENTSTACK‘STACK’DW100DUP(0)STACKENDSDATASEGMENTBUFDB100DUP(0)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXLEADI,BUFL:MOVAH,1INT21HCMPAL,0DHJZEXITCALLSTOJMPLEXIT:MOVBYTEPTR[DI],‘,’LEADX,BUFMOVAH,9INT21HMOVAH,4CHINT21HSTOPROCCMPAL,30HJBNEXTCMPAL,39HJANEXTMOV[DI],ALINCDINEXT:RETSTOENDPCODEENDSENDSTART請回答:(1)STO子程序完成的功能是什么,(2)該程序完成的功能是什么,2(現(xiàn)有程序如下:STACKSEGMENTSTACK‘STACK’DW100DUP(0)STACKENDSDATASEGMENTBUF1DB100DUP(,)BUF2DB200,0,200DUP(0)EQDB‘兩個字符串相等?,’NEQDB‘兩個字符串不相等?,'FLAGDB0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVEX,AXMOVSS,AXLEADX,BUF2MOVAH,0AHINT21HMOVCX,100LEASI,BUF1LEADI,BUF2,2CALLSCMPCMPFLAG,0JZNLEADX,EQMOVAH,9INT21HJMPEXITN:LEADX,NEQMOVAH,9INT21HEXIT:MOVAH,4CHINT21HSCMPPROCPUSHAXMOVAH,[DI,1]MOVAL,9CMPAX,CXJZRCLDCMPSBJNZRMOVFLAG,0FFHJMPR1R:MOVFLAG,0R1:POPAXRETSCMPENDPCODEENDSENDSTART請回答:(1)SCMP子程序完成的功能是什么,(2)該程序完成的功能是什么,3(現(xiàn)有程序如下:STACKSEGMENTSTACK‘STACK’DW100DUP(0)STACKENDSDATASEGMENTBUFDB20CDB4DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVAX,STACKMOVSS,AXMOVBL,CMOVSI,BUFL1:PUSHSICALLSUBP1CALLSUBP2POPSIINCSIDECBLJNZL1MOVAH,4CHINT21HSUBP1PROCPUSHAXPUSHDXL2:MOVDL,20HMOVAH,2INT21HDECSIJNZL2POPDXPOPAXRETSUBP1ENDPSUBP2PROCPUSHAXPUSHDXMOVCX,8L3:MOVDL,‘*’MOVAH,2INT21HLOOPL3MOVDL,0DHMOVAH,2INT21HMOVDL,0AHMOVAH,2INT21HPOPDXPOPAXRETSUBP2ENDPCODEENDSENDSTART請回答:(1)SUBP1子程序完成的功能是什么,(2)SUBP2子程序完成的功能是什么,(3)該程序完成的功能是什么,4(現(xiàn)有程序如下:STACKSEGMENTSTACK‘STACK’DW100DUP(0)STACKENDSDATASEGMENTADB30BDB9CDW5DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXMOVCX,CMOVBH,BMOVBL,AL1:PUSHBXCALLSUBP1CALLSUBP2POPBXINCBLSUBBH,2LOOPL1INT21HSUBP1PROCPUSHAXPUSHDXL2:MOVDL,20HMOVAH,2INT21HDECBLJNZL2POPDXPOPAXRETSUBP1ENDPSUBP2PROCPUSHAXPUSHDXL3:MOVDL,‘*MOVAH,2INT21HDECBHJNZL3MOVDL,0DHMOVAH,2INT21HMOVDL,0AHMOVAH,2INT21HPOPDXPOPAXRETSUBP2ENDPCODEENDSENDSTART請回答:(1)SUBP1子程序完成的功能是什么,SUBP2子程序完成的功能是什么,該程序完成的功能是什么,5(現(xiàn)有程序如下:STACKSEGMENTSTACK‘STACK’DW100DUP(0)STACKENDSDATASEGMENTBUF1DB0E5H,01H,73H,34H,3AH,0D5HC1=,,BUF1BUF2DB22H,12H,67H,35H,73H,0B3HC2DB,,BUF2DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXLEABX,BUF1MOVCX,C1CALLSORTLEABX,BUF2MOVCX,C2CALLSORTMOVAH,4CHINT21HSORTPROCPUSHAXPUSHDXPUSHSIPUSHDIMOVDX,CXDECDXMOVSI,1L1:MOVDI,SIINCDIMOVAL,[BX,SI,1]L2:CMPAL,[BX,DI,1]JBENEXTXCHG[BX,DI,1],ALMOV[BX,SI,1],ALNEXT:INCDICMPDI,CXJBEL2INCSICMPSI,DXJBEL1POPDIPOPSIPOPDXPOPAXRETSORTENDPCODEENDSENDSTART請回答:(1)該子程序完成的功能是什么,(2)程序執(zhí)行完后,BUF1和BUF2的內容各是什么,6(現(xiàn)有程序如下:STACKSEGMENTSTACK‘STACK’DW100DUP(0)STACKENDSDATASEGMENTBUFDW20E5H,4501H,7653H,1234H,354AH,60D5HC=(,,BUF)/2SMAXDW0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXPUSHAXMOVAX,CPUSHAXCALLMAXMOVAH,4CHINT21HMAXPROCPUSHBPMOVBP,SPPUSHSIPUSHAXPUSHBXPUSHCXPUSHFMOVSI,[BP,6]MOVCX,[BP,4]MOVBX,[SI]DECCXADDSI,2CLDMAX1:LODSWCMPAX,BXJNANEXTXCHGAX,BXNEXT:LOOPMAX1MOVSMAX,BXPOPFPOPCXPOPBXPOPAXPOPSIPOPBPRET4MAXENDPCODEENDSENDSTART請回答:(1)該子程序完成的功能是什么,(2)程序執(zhí)行完后,SMAX中的內容為何值,7(現(xiàn)有程序如下:STACKSEGMENTSTACKDB100DUP(0)STACKENDSDATASEGMENTBUFDW1064HN=(,,BUF)/2STRDB9DUP(‘’)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXLEASI,BUFMOVCX,NL:MOVAX,[SI]LEADI,STRCALLCBDADDSI,2LOOPLMOVAH,4CHINT21HCBDPROCPUSHAXPUSHBXPUSHCXPUSHDXPUSHDIPUSHDIORAX,AXJNSPLUSMOVBYTEPTR[DI],INCDINEGAXPLUS:MOVCX,5MOVBX,10L1:MOVDX,0DIVBXADDDL,30HMOV[DI],DLINCDIORAX,AXJZL2LOOPL1L2:MOVBYTEPTR[DI],0DHINCDIMOVBYTEPTR[DI],0AHINCDIMOVBYTEPTR[DI],‘,’POPDXMOVAH,9INT21HPOPDIPOPDXPOPCXPOPBXPOPAXRETCBDENDPCODEENDSENDSTART請回答:(1)該子程序完成的功能是什么,(2)程序執(zhí)行完后,顯示輸出的結果是什么,8(現(xiàn)有程序如下:STACKSEGMENTSTACK‘STACK’DW100DUP(0)STACKENDSDATASEGMENTNUM1DQ7654321089ABCDEFHNUM2DQ0FEDCBA9801234567HRESULDT0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVAX,STACKMOVSS,AXLEASI,NUM1LEABX,NUM2LEADI,RESULCALLADMOVAH,4CHINT21HADPROCPUSHAXPUSHCXPUSHFCLCCLDMOVCX,4AGAIN:LODSWADCAX,[BX]STOSWADDBX,2LOOPAGAINMOVAX,0ADCAX,0MOV[DI],AXPOPFPOPCXPOPAXRETADENDPCODEENDSENDSTART請回答:(1)該子程序完成的功能是什么,(2)程序執(zhí)行完后,RESUL單元的內容是什么,9(現(xiàn)有程序如下:STACKSEGMENTSTACK‘STACK’DW100DUP(0)STACKENDSDATASEGMENTSTRDB‘PLEASEINPUTSTRING(0?9):,’ASCDB20,0,20DUP(0)BCDBDB20DUP(0)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXLEADX,STRMOVAH,9INT21HLEADX,ASCMOVAH,10INT21HLEABX,ASC,2MOVCL,[BX,1]MOVCH,0LEASI,BCDBCALLTABMOVAH,4CHINT21HTABPROCPUSHAXL:DECBXMOVAL,[BX]ANDAL,0FHMOV[SI],ALINCSILOOPLPOPAXRETTABENDPCODEENDSENDSTART請回答:(1)該子程序完成的功能是什么,(2)該程序完成的功能是什么,10(現(xiàn)有程序如下:STACKSEGMENTSTACK‘STACK’DW100DUP(0)STACKENDSDATASEGMENTBUFDW8376H,9028H,4AB4H,0947H,3362HN=(,,BUF)/2STRDB7DUP(0)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXLEASI,BUFMOVCX,NLA:MOVAX,[SI]CALLF2T10MOVDL,‘/’MOVAH,2INT21HMOVAH,4CHINT21HF2T10PROCPUSHBXPUSHDXPUSHSILEASI,STRORAX,AXJNSPLUSNEGAXMOV[SI],BYTEPTR‘,’INCSIPLUS:MOVBX,10CALLBCPMOV[SI],BYTEPTR‘,’LEADX,STRMOVAH,9INT21HPOPSIPOPDXPOPBXRETF2T10ENDPBCPPROCPUSHAXPUSHBXPUSHCXPUSHSIMOVCX,0L1:MOVDX,0DIVBXPUSHDXINCCXORAX,AXJNZL1L2:POPAXCMPAL,10JBL3ADDAL,7L3:ADDAL,30HMOV[SI],ALINCSILOOPL2MOV[SI+1],0DHMOV[SI+2],0AHPOPSIPOPCXPOPBXPOPAXRETBCPENDPCODEENDSENDSTART請回答:(1)F2T10子程序完成的功能是什么,(2)BCP子程序完成的功能是什么,7(4(6程序填空題1(下列程序是將BUF1緩沖區(qū)的100個字單元的內容送BUF2字緩沖區(qū)的子程序。請在程序的空格處填寫適當?shù)闹噶?。B1TB2PROCPUSHAXPUSHSI(1)PUSHCXMOVCX,100LEASI,BUF1LEADI,BUF2L:MOVAX,[SI](2)(3)POPCXPOPDI(4)POPAXRETB1TB2ENDP2(下列程序是檢查以BX寄存器的內容為首地址、以CX寄存器的內容為字符個數(shù)的字符串中是否有AL寄存器中存放的字符,如果有則將FLAG字節(jié)變量置1,否則清0的子程序。請在程序的空格處填寫適當?shù)闹噶?。STRXPROCPUSHAXPUSHBXPUSHCXPUSHDICLD(1)SCASB(2)MOVFLAG,1(3)N:MOVFLAG,0EXIT:POPDIPOPCXPOPBXPOPAX(4)STRXENDP3(若TAB的內容為數(shù)組的首地址、TAB,2的內容為數(shù)組元數(shù)的個數(shù)、TAB,4的內容為數(shù)組和數(shù)的地址。下列程序是計算數(shù)組和數(shù)的子程序。請在程序的空格處填寫適當?shù)闹噶睢RYAPROCPUSHAXPUSHBXPUSHCXPUSHDIMOVBX,TAB(1)MOVDI,TAB,4MOVDX,0L:ADDAX,[BX](3)ADDBX,2LOOPL(4)MOV[DI,2],DXPOPDIPOPCXPOPBXPOPAXRETARYAENDP4(下列程序是以SI寄存器的內容為壓縮BCD碼的首地址、以BX寄存器的內容為字節(jié)的個數(shù),將該壓縮BCD碼顯示輸出的子程序。請在程序的空格處填寫適當?shù)闹噶?。BCDPPROCPUSHAXPUSHBXPUSHCXPUSHDXPUSHSIL:MOVDL,[SI](1)SHRDL,CL(2)MOVAH,2INT21H(3)ANDDL,0FHADDDL,30HMOVAH,2INT21H(4)DECBXJNZLPOPSIPOPDXPOPCXRETBCDPENDP5(設以SI寄存器的內容為首地址、以0為結束的無符號字數(shù)組。下列程序是從該數(shù)組中找出最大數(shù)的數(shù)值和偏移地址送DI所指示的單元的子程序。請在程序的空格處填寫適當?shù)闹噶?。MAXAPROCPUSHAXPUSHSIPUSHDI(1)L:CMP[SI],BYTEPTR0JZEXITCMPAX,[SI](2)MOVAX,[SI]NEXT:ADDSI,2(3)EXIT:MOV[DI],AX(4)MOV[DI,2],SIPOPDIPOPSIPOPAXRETMAXAENDP6(若TAB、TAB,2和TAB,4中的內容分別為壓縮BCD碼的首地址,TAB,6中的內容是字節(jié)的個數(shù)。下列程序是將兩個多位壓縮BCD碼相加后送第三個緩沖區(qū)的子程序。請在程序的空格處填寫適當?shù)闹噶睢CDAPROCPUSHAXPUSHBXPUSHCXPUSHSIPUSHDIMOVSI,TABMOVBX,TAB,2MOVDI,TAB,4MOVCX,TAB,6L:MOVAL,[SI](2)DAAMOV[DI],ALINCSI(3)INCDI(4)POPDIPOPSIPOPCXPOPBXPOPAXRETBCDAENDP7(下列程序是根據(jù)鍵盤輸入的一位數(shù)據(jù)N求出BUF字節(jié)緩沖區(qū)中N個數(shù)據(jù)有符號數(shù)據(jù)的和數(shù)送DI所指示的字單元的子程序。請在程序的空格處填寫適當?shù)闹噶?。BUFAPROCPUSHAXPUSHBXPUSHCXPUSHDXPUSHDIW:MOVAH,1INT21HCMPAL,30HJBWCMPAL,39HJAW(1)MOVCL,AL(2)LEABX,BUF(3)CLCL:MOVAL,[BX](4)ADDDX,AXINCBXLOOPLPOPDIPOPDXPOPCXPOPBXPOPAXRETBUFAENDP8(若BX寄存器中的內容為數(shù)組的首地址,CX寄存器中的內容為數(shù)組元素的個數(shù)。下列程序是求數(shù)組元素的平均值和余數(shù)送DI寄存器所指示單元的子程序。請在程序的空格處填寫適當?shù)闹噶睢RYVPROCPUSHAXPUSHBXPUSHCXPUSHDXPUSHDIPUSHCXMOVAX,0MOVDX,0(1)L:ADDAX,[BX](2)ADDBX,2LOOPL(3)DIVCXMOV[DI],AX(4)POPDIPOPDXPOPCXPOPBXPOPAXRETARYVENDP9(下列程序是將AX寄存器的16位無符號二進制數(shù)轉換為十進制數(shù)顯示輸出的子程序。請在程序的空格處填寫適當?shù)闹噶睢ISPPROCPUSHAXPUSHBXPUSHCXPUSHDXMOVCX,0MOVBX,10L:(1)CMPAX,0JZDISP0DIVBX(2)INCCXJMPLDISP0:CMPCX,0JZREPOPDX(3)MOVAH,2INT21HDECCX(4)RE:POPDXPOPCXRETDISPENDP10(下列程序是統(tǒng)計BUF字節(jié)緩沖區(qū)中15個單元的字母、數(shù)字和其他字符的個數(shù)并顯示輸出的子程序。請在程序的空格處填寫適當?shù)闹噶?。DISPSPROCPUSHAXPUSHBXPUSHCXPUSHDXMOVCX,15MOVDX,0MOVBX,0(1)L:CMP[BX],BYTEPTR30HJBNNCCMP[BX],BYTEPTR39HJBENUM(2)JBNNCCMP[BX],BYTEPTR5AHJBECHRCMP[BX],BYTEPTR61HJBNNCCMP[BX],BYTEPTR7AH(3)CHR:INCDLJMPNEXTNUM:INCDHJMPNEXTNNC:INCBLNEXT:(4)CALLDIPMOVDL,DHCALLDIPMOVDL,BLCALLDIPPOPDXPOPCXPOPBXPOPAXRETDISPSENDPDIPPROCPUSHAXPUSHDXMOVAH,2INT21HMOVDL,0AHINT21HMOVDL,0DHINT21HPOPDXPOPAXRETDIPENDP7(4(7程序設計題1(請用寄存器法傳遞參數(shù),編寫一個將BUF緩沖區(qū)中的16位有符號數(shù)轉換為32位補碼的子程序。2(利用查表指令,編寫一個將X中的壓縮BCD轉換為對應的ASCII碼依次存放在BUF緩沖區(qū)中的子程序。3(編寫一個將32位二進制數(shù)轉換為十進制數(shù)并顯示輸出的子程序。4(分別編寫一個實現(xiàn)多位數(shù)的加法、減法、乘法的子程序。5(編寫一個將STR字符串中的小寫字母轉換為大寫字母,其他字符不變,并將轉換后的字符串顯示輸出的子程序。6(編寫一個從鍵盤輸入字符串,然后顯示該字符串中數(shù)字的個數(shù)、大寫字母個數(shù)、小寫字母個數(shù)和非數(shù)字字母個數(shù)子程序。7(編寫一個調用子程序的完整程序。其子程序的功能是將BUF緩沖區(qū)中的若干個16位有符號數(shù)轉換為十進制數(shù)和八進制數(shù)顯示輸出。8(編寫一個統(tǒng)計指定字緩沖區(qū)中的正數(shù)、負數(shù)和為0的個數(shù)的子程序。要求在主程序中調用該子程序,將BUF1到BUF3中的數(shù)分別統(tǒng)計出來。9(編寫一個搜索指定字緩沖區(qū)中的字符串是否有字符N,若有則用字符Y取代字符N的子程序。在主程序中調用該子程序,將BUF1到BUF3中的字符N全部用Y替代。10(設某班有30位同學,現(xiàn)需將某課程的成績通過鍵盤輸入依次存放在TAB緩沖區(qū)中(得分范圍0,99)。采用子程序的結構形式編程,找出最高分送顯示器輸出。要求:編寫一鍵盤輸入子程序。編寫一將兩個數(shù)字的ASCII碼轉換成一字節(jié)壓縮BCD碼的子程序。編寫一字節(jié)壓縮BCD碼轉換為ASCII碼的子程序。編寫一屏幕顯示輸出子程序。寫出主程序調用子程序的程序段。11(設TAB中依次存放60位學生某一門課程的成績,試編寫一程序統(tǒng)計0,59、60,69、70,79、80,89、90,100的人數(shù),并將統(tǒng)計結果以十進制形式顯示輸出。12(編寫子程序嵌套結構的程序,將BUF緩沖區(qū)中的若干個16位二進制數(shù)分別以二進制、十進制和十六進制顯示輸出。13(編寫子程序嵌套結構的程序,將鍵盤輸入的字符串按數(shù)字、大寫字母、小寫字母和非數(shù)字字母分別顯示輸出。參考答案7(5(1單項選擇題1(B2(A3(C4(B5(B6(D7(A8(B9(D10(D11(A12(D13(D14(A15(C7(5(2多項選擇題1(ABCD2(BC3(ABC4(AD5(BCD6(ACD7(ACD8(ACD9(BC10(ACD7(5(3填空題1(CALL(調用),RET(返回)2(后進先出(先進后出)3(IP(偏移),CS和IP(段地址和偏移地址)4(CALL,CALL指令的下一條5(PROC[NEAR/FAR],ENDP6(寄存器法,約定單元法,堆棧法7(子程序嵌套,遞歸調用8(NEAR(近程),F(xiàn)AR(遠程)9(地址,數(shù)據(jù)/地址,地址/數(shù)據(jù)10(2,411(堆棧,參數(shù)12(調用(CALL),返回(RET)13(45H,AL寄存器14(4,偏移地址,段地址15(1K,0,1023(0000,03FFH)16(帶顯示的鍵盤輸入,AL寄存器,顯示字符,DL寄存器17(9(09H),10(0AH)18(4,33H、34H、35H、41H、0DH19(,(美圓符號)20(PSW、CS、IP7(5(4簡答題1(采用子程序結構的優(yōu)點:簡化了程序的設計過程,節(jié)省了程序的設計時間??s短了程序的長度,節(jié)省了程序所占的存儲空間。增加了程序的可讀性,便于程序的修改和調試。便于程序的模塊化、結構化和自頂向下的程序設計。2(過程的定義與子程序的定義不同在于:段的定義是以“名字PROC參數(shù)”開始,以“名字ENDS”結束;而過程的定義是以“名字PROC參數(shù)”開始,以“名字ENDP”結束。在參數(shù)的選擇中,段的參數(shù)選擇有定位方式、組合方式、類型;而過程的參數(shù)選擇是NEAR、FAR。3(一個完整的子程序結構應包含如下幾方面的內容:為了便于程序具有一定的通用性,所以在子程序設計時要建立子程序的說明文件。在子程序設計時,其子程序是以過程的形式表示。在定義子程序時要說明它的類型,以便正確完成子程序的調用和返回。要注意現(xiàn)場的保護和現(xiàn)場的恢復。要正確地使用主程序和子程序之間的參數(shù)傳遞。在子程序中,除了要完成指定的功能外,還必須至少有一個出口(RET指令)。4(在子程序的設計過程中,子程序的現(xiàn)場保護和現(xiàn)場恢復通常采用的方法有兩種:利用壓棧指令將寄存器的內容壓入堆棧實現(xiàn)現(xiàn)場的保護,利用彈棧指令將堆棧的內容送寄存器實現(xiàn)現(xiàn)場的恢復;利用數(shù)據(jù)傳送指令將寄存器的內容送內存單元實現(xiàn)現(xiàn)場的保護,再利用數(shù)據(jù)傳送指令將內存單元的內容送寄存器實現(xiàn)現(xiàn)場的的恢復。在程序的設計過程中,通常使用堆棧來保護和恢復現(xiàn)場較為方便。5(調用程序和子程序之間一般使用參數(shù)的傳遞方法有:寄存器法、約定單元法、堆棧法。他們各自的特點是:采用寄存器法傳遞參數(shù)主要是在CPU內部的各個寄存器間完成,它可以減少訪問存儲器的次數(shù)。但是CPU內部的寄存器是有限的,在多個入口參數(shù)時這種方法就難以完成其操作;采用約定單元法傳遞參數(shù)可以將入口參數(shù)送指定單元,然后逐一完成入口參數(shù)的計算,并將計算的結果送指定單元。這種方法可以實現(xiàn)對多個參數(shù)的傳遞。采用堆棧法傳遞參數(shù)可以利用堆棧后進先出的操作原則實現(xiàn)參數(shù)的傳遞,這種方法傳遞參數(shù)比約定單元法節(jié)省時間。6(在進行段內調用時,由于段地址不會變化,只是偏移地址發(fā)生變化,所以只是將偏移地址壓入堆棧,SP,2。在進行段間調用時,不但偏移地址發(fā)生變化,而且段地址也發(fā)生了變化,所以須將段地址和偏移地址都壓入堆棧,SP,4。7(如果在主程序(調用程序)中調用子程序時,在子程序的執(zhí)行過程中又調用另外的一個子程序,這種子程序調用子程序的方法稱為子程序的嵌套調用。8(如果在主程序(調用程序)中調用子程序時,在子程序的執(zhí)行過程中又直接或間接地調用該子程序,這種子程序調用稱為子程序的遞歸調用。9(在進行DOS系統(tǒng)功能調用的方法是:(1)將入口參數(shù)送相應的寄存器。(2)將調用的功能號送AH寄存器。(3)進行功能調用(即執(zhí)行INTN指令)。(4)出口參數(shù)分析。10(在進行DOS系統(tǒng)功能調用時,須將PSW、CS、和IP的內容壓入堆棧,SP,6;在中斷返回時,按照堆棧后進先出的操作原則,依次將調用時壓入堆棧的PSW、CS、和IP的內容彈出送IP、CS和PSW,SP+6,使SP指向DOS系統(tǒng)功能調用前的地址。7(5(5程序分析題1((1)STO子程序的功能是:若AL寄存器中的內容為數(shù)字ASCII碼,則將AL的內容送DI寄存器所指的單元。該程序的功能是將鍵盤輸入字符的數(shù)字顯示輸出,其他字符不顯示,最后以回車結束。2((1)SCMP子程序的功能是比較兩個字符串是否相等,若相等則FLAG送0FFH,若不相等則FLAG送0。該程序的功能是從鍵盤輸入字符串與BUF1字符串比較,若相等則顯示'兩個字符串相等?',若不相等則顯示'兩個不字符串相等?’。3((1)SUBP1子程序的功能是顯示輸出SI寄存器所表示的空格數(shù)。SUBP2子程序的功能是顯示輸出8個字符'*’。該程序的功能是在顯示器上顯示圖形********************************4((1)SUBP1子程序的功能是顯示輸出BL寄存器所表示的空格數(shù)。SUBP2子程序的功能是顯示輸出字符'*',輸出個數(shù)由BH寄存器所表示。該程序的功能是在顯示器上顯示圖形*************************5((1)子程序的功能是將BX寄存器為首地址的N個無符號數(shù)按遞增排序。BUF1的內容為:01H、34H、3AH、73H、0D5H、0E5HBUF2的內容為:12H、22H、35H、67H、73H、0B3H6((1)子程序的功能是將無符號字緩沖區(qū)BUF中的最大值送SMAX單元。程序執(zhí)行后,SMAX中的內容為7653H。7((1)子程序的功能是將BUF緩沖區(qū)中的16位二進制轉換成十進制顯示輸出。程序執(zhí)行后,顯示輸出的結果是4196。8((1)子程序的功能是將NUM1和NUM2的64位二進制相加,結果送RESUL單元。程序執(zhí)行后,75420EB90ABDF14601H9((1)子程序的功能是將BX寄存器所指的ASCII碼串轉換成非壓縮BCD碼送SI寄存器所指的緩沖區(qū)。該程序完成的功能是將鍵盤輸入的十進制數(shù)轉換成非壓縮的BCD碼送SI寄存器所指的緩沖區(qū)。10((1)F2T10子程序的功能是將AX寄存器中的帶符號數(shù)二進制轉換為十進制顯示輸出。(2)BCP子程序的功能是將AX寄存器中的二進制數(shù)轉換為十進制的ASCII碼送STR字符串緩沖區(qū)。7(5(6程序填空題1((1)PUSHDIMOV[DI],AXLOOPLPOPSI2((1)MOVDI,BXJNZNJMPEXITRET3((1)MOVCX,TAB,2MOVAX,0ADCDX,0MOV[DI],AX4((1)MOVCL,4ADDDL,30H(ORDL,30H)MOVDL,[SI]INCSI5((1)MOVAX,0(XORAX,AX)JBNEXT(JBZNEXT或JNCNEXT)JMPLSUBSI,26((1)CLCADCAL,[BX]INCBXLOOPL7((1)ANDAL,0FHMOVCH,0MOVDX,0CBW8((1)CLCADCDX,0POPCXMOV[DI,2],DX9((1)MOVDX,0PUSHDXADDDL,30HJMPDISP010((1)LEABX,BUF(或MOVBX,OFFSETBUF)CMP[BX],BYTEPTR41HJANNCLOOPL7(5(7程序設計題1(STACKSEGMENTSTACK‘STACK’DW100DUP(0)STACKENDSDATASEGMENTBUFDW8376H,9028H,4AB4H,0947H,3362HN=(,,BUF)/2BINDDNDUP(0)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXLEASI,BUFLEADI,BINMOVCX,NLA:MOVAX,[SI]CALLF16T32ADDSI,2LOOPLAMOVAH,4CHINT21HF16T32PROCPUSHDXCWDMOV[DI],AXADDDI,4POPDXRETF16T32ENDPCODEENDSENDSTART2(STACKSEGMENTSTACK‘STACK’DW100DUP(0)STACKENDSDATASEGMENTXDB43H,76H,90H,28H,43H,64H,09H,47H,33H,62HN=,,XBUFDBN,NDUP(0)ASCTBDB30H,31H,32H,33H,34H,35H,36H,37H,38H,39HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXLEASI,XLEADI,BUFLEABX,ASCTBMOVCX,NLA:MOVAL,[SI]CALLDTASCINCSILOOPLAMOVAH,4CHINT21HDTASCPROCPUSHAXPUSHCXMOVAH,ALMOVCL,4SHRAL,CLXLATMOV[DI],ALMOVAL,AHANDAL,0FHXLATMOV[DI,1],ALADDDI,2POPCXPOPAXRETDTASCENDPCODEENDSENDSTART3(STACKSEGMENTSTACK‘STACK’DW100DUP(0)STACKENDSDATASEGMENTBUFDD32344376H,2AD419028H,342A4364H,60050947H,3362HN=(,,BUF)/4STRDB20DUP(0)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXLEASI,BUFMOVCX,NLA:LEADI,STRMOVEAX,[SI]CALLF2T10ADDSI,4LOOPLAMOVAH,4CHINT21HF2T10PROCPUSHEAXPUSHEBXPUSHECXPUSHEDXPUSHEDIMOVCX,0MOVEBX,10L:CMPEAX,0JZDISPDIVEBXPUSHDXINCCXJMPLDISP:CMPCX,0JZREPOPAXADDAL,30HMOV[DI],ALINCDIDECCXJMPDISPMOV[DI,2],BYTEPTR‘,’MOV[DI,1],BYTEPTR0DHMOV[DI],BYTEPTR0AHRE:LEADX,STRMOVAH,9INT21HPOPEDIPOPEDXPOPECXPOPEBXPOPEAXRETF2T10ENDPCODEENDSENDSTART4(STACKSEGMENTSTACK‘STACK’DW100DUP(0)TOSLABELWODRSTACKENDSDATASEGMENTALABELWORDA1DD,A2DD,RLABELWORDARDW0,0SRDW0,0MRDW0,0,0,0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXLEASP,TOSPUSHAPUSHA,2PUSHA,4PUSHA,6CALLA32CALLS32CALLM32MOVAH,4CHINT21HA32PROCPUSHBPMOVBP,SPPUSHAXPUSHBXMOVAX,[BP,4]MOVBX,[BP,8]ADDAX,BXMOVAR,AXMOVAX,[BP,6]MOVBX,POPAXPOPBPRETA32ENDPS32PROCPUSHBPMOVBP,SPPUSHAXPUSHBXMOVAX,[BP,4]MOVBX,MOVAX,[BP,6]MOVBX,POPBXPOPAXPOPBPRETS32ENDPM32PROCPUSHBPMOVBP,SPPUSHAXPUSHBXPUSHDXMOVAX,[BP,4]MOVBX,[BP,0AH]ADCAX,BXMOVAR,2,AXPOPBX[BP,8]SUBAX,BXMOVSR,AX[BP,0AH]SBBAX,BXMOVSR,2,AX[BP,8]MULBXMOVMR,AXMOVMR,2,DXMOVAX,[BP,4]MOVBX,[BP,0AH]MULBXADDMR,2,AXADCMR,4,DXMOVAX,[BP,6]MOVBX,[BP,8]MULBXADDMR,2,AXADCMR,4,DXMOVAX,[BP,6]MOVBX,[BP,0AH]MULBXADDMR,4,AXADCMR,6,DXPOPDXPOPBXPOPAXPOPBPRETM32ENDPCODEENDSENDSTART5(STACKSEGMENTSTACK‘STACK’DW100DUP(0)STACKENDSDATASEGMENTSTRDB‘3467RGBhfiDY6TzXTA686SfferrE’N=,,STRBUFDBN,1DUP(‘,’)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXLEASI,STRLEADI,BUFMOVCX,NCALLASCMOVAH,4CHINT21HASCPROCPUSHAXPUSHDXPUSHDIL:MOVAL,[SI]CMPAL,61HJBNEXTJANEXTSUBAL,20HNEXT:MOV[DI],ALINCSIINCDILOOPLMOV[DI],BYTEPTR‘,’POPDXMOVAH,9INT21HPOPDXPOPAXRETASCENDPCODEENDSENDSTART6(STACKSEGMENTSTACK‘STACK’DW100DUP(0)STACKENDSDATASEGMENTSTRDB100,0,100DUP(0)NUMDB0ACHRDB0BCHRDB0NCHRDB0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXLEADX,STRMOVAH,0AHINT21HLEASI,STRCALLTOJIMOVAH,4CHINT21HTOJIPROCPUSHAXPUSHCXMOVCL,SI,1MOVCH,0ADDSI,2L:MOVAL,[SI]CMPAL,30HJBN3CMPAL,39HJAN1INCNUMJMPNEXTN1:CMPAL,41HJBN3CMPAL,5AHJAN2INCACHRJMPNEXTN2:CMPAL,61HJBN3CMPAL,7AHJAN3INCBCHRJMPNEXTN3:INCNCHRNEXT:INCSILOOPLMOVAL,NUMCALLDISPMOVAL,ACHRCALLDISPMOVAL,BCHRCALLDISPMOVAL,NCHRCALLDISPPOPCXPOPAXRETTOJIENDPDISPPROCPUSHAXPUSHDXMOVCL,4MOVDL,ALSHRDL,CLCMPDL,9JNAD1ADDDL,7D1:ADDDL,30HMOVAH,2INT21HMOVDL,ALANDDL,0FHCMPDL,9JNAD2ADDDL,7D2:ADDDL,30HMOVAH,2INT21HMOVDL,‘H’MOVAH,2INT21HMOVDL,0AHMOVAH,2INT21HMOVDL,0DHMOVAH,2POPDXPOPCXPOPAXRETDISPENDPCODEENDSENDSTART7(STACKSEGMENTSTACK‘STACK’DW100DUP(0)STACKENDSDATASEGMENTBUFDW3421H,,0A23H,932DH,4CF0H,2457HN=(,,BUF)/2STRDB9DUP(0)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXLEABX,BUFMOVCX,NL:MOVAX,[BX]LEASI,STRCALLTDISPADDBX,2LOOPLMOVAH,4CHINT21HTDISPPROCPUSHBXPUSHDXPUSHSICALLCRLFORAX,AXJNSPLUSNEGAXMOV[SI],BYTEPTR‘,’INCSIPLUS:MOVBX,10MOVDX,0MOVCX,0LA:ORAX,AXJZREDIVBXPUSHDXINCCXJMPLARE:POPDXADDDL,30HMOV[SI],DLINCSILOOPREMOV[SI],BYTEPTR‘,’MOVAH,9POPDXINT21HPOPDXPOPBXRETTDISPENDPCRLFPROCPUSHAXPUSHDXMOVDL,0AHMOVAH,2INT21HMOVDL,0DHMOVAH,2INT21HPOPDXPOPAXRETCRLFENDPCODEENDSENDSTART8(STACKSEGMENTSTACK‘STACK’DW100DUP(0)STACKENDSDATASEGMENTBUF1DW3421H,,0A23H,932DH,4CF0H,2457HC1DW(,,BUF1)/2P1DB0N1DB0Z1DB0TAB1DWBUF1,C1,P1,N1,Z1BUF2DW9000H,6221H,,0023H,0,032DH,40H,27HC2DW(,,BUF2)/2P2DB0N2DB0Z2DB0TAB2DWBUF2,C2,P2,N2,Z2BUF3DW3001H,,0,0,,03H,0C000H,6850H,3532HC3DW(,,BUF3)/2P3DB0N3DB0Z3DB0TAB3DWBUF3,C3,P3,N3,Z3DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXLEASI,TAB1CALLPNZLEASI,TAB2CALLPNZLEASI,TAB3CALLPNZMOVAH,4CHINT21HPNZPROCPUSHAXPUSHBXPUSHCXPUSHSIPUSHDIPUSHBPMOVBX,[SI]MOVDI,[SI,2]MOVCX,[DI]MOVBP,[SI,4]MOVDI,[SI,6]MOVSI,[SI,8]LA:MOVAX,[BX]CMPAX,0JGPLUSJLNEINCBYTEPTR[SI]JMPNEXTPLUS:INCBYTEPTRDS:[BP]JMPNEXTNE:INCBYTEPTR[DI]NEXT:ADDBX,2LOOPLAPOPBPPOPDIPOPSIPOPCXPOPBXPOPAXRETPNZENDPCODEENDSENDSTART9(STACKSEGMENTSTACK‘STACK’DW100DUP(0)STACKENDSDATASEGMENTBUF1DB‘39WAGNTY9N9GSR8Tg7YogGGgf%ufR6’C1=,,BUF1BUF2DB‘SRTHTH48658nTVTnKEDBNTLM5H’C2=,,BUF2BUF3DB‘YYJY7U8KMNMUMNHY5667668nhbtTYYU’C3=,,BUF3DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXLEASI,BUF1MOVCX,C1CALLNTYLEASI,BUF2MOVCX,C2CALLNTYLEASI,BUF3MOVCX,C3CALLNTYMOVAH,4CHINT21HNTYPROCPUSHAXPUSHCXLA:MOVAL,[SI]CMPAL,‘N’JNZCONMOV[SI],BYTEPTR‘Y’JMPNEXTCON:CMPAL,‘n’JNZNEXTMOV[SI],BYTEPTR‘Y’NEXT:INCSILOOPLAPOPCXPOPAXRETNTYENDPCODEENDSENDSTART10(STACKSEGMENTSTACK‘STACK’DW100DUP(0)STACKENDSDATASEGMENTTABDB30DUP(0)N=,,TABMAXDB0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXLEASI,TABMOVCX,NCALLINDISMOVAH,4CHINT21HINDISPROCPUSHAXPUSHCXPUSHSIPUSHCXCALLKBINPOPCXPOPSIMOVAL,0LA:CMPAL,[SI]JNBNEXTMOVAL,[SI]NEXT:INCSILOOPLAMOVMAX,ALCALLBBCDPOPCXPOPAXRETINDISENDPKBINPROCPUSHAXPUSHBXPUSHCXL1:MOVAH,1INT21HCMPAL,30HJBL1CMPAL,39HJAL1MOVBH,ALL2:MOVAH,1INT21HCMPAL,30HJAL2MOVBL,ALCALLABCDMOV[SI],BLINCSILOOPL1POPCXPOPBXPOPAXRETKBINENDPABCDPROCPUSHCXMOVCL,4SHLBH,CLANDBL,0FHORBL,BHPOPCXRETABCDENDPBBCDPROCPUSHAXPUSHDXPUSHCXMOVCL,4MOVDL,ALSHRDL,CLCALLDISPANDAL,0FHMOVDL,ALCALLDISPPOPCXPOPDXPOPAXRETBBCDENDPDISPPROCPUSHAXMOVAL,2INT21HPOPAXRETDISPENDPCODEENDSENDSTART11(STACKSEGMENTSTACK‘
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學年陽江市陽東縣三年級數(shù)學第一學期期末聯(lián)考試題含解析
- 2025年氧化鋯陶瓷粉料項目提案報告模范
- 公司文員的辭職報告模板集合7篇
- 2023三年級語文下冊 第一單元 語文園地配套教學實錄 新人教版
- 北師大五年級語文下冊的教案
- 銷售年終工作總結集錦15篇
- 小學美術教案合集九篇
- 江蘇地區(qū)高一年級信息技術一年教學實錄15使用搜索引擎教學實錄
- 我的寒假學習計劃(15篇)
- 小學教師自我鑒定范文15篇
- 鐵藝圍墻主要施工方法
- 10、美的微波爐美食創(chuàng)意拍攝腳本
- 07FK02防空地下室通風設備安裝PDF高清圖集
- 浙江綜合醫(yī)院等級評審標準
- ANSI-ASQ-Z1.4-抽樣標準培訓教材
- ISO9000質量管理體系培訓資料
- 煙草異物智能剔除系統(tǒng)技術參數(shù).
- 強制檢定工作計量器具目錄
- 大學基礎寫作--表達方式課件
- 300td高強瓦楞原紙廢紙制漿工段工藝設計
- 螺桿式風冷冷水(熱泵)機組電路圖
評論
0/150
提交評論