PC技術(shù)機試模擬試卷1(共9題)_第1頁
PC技術(shù)機試模擬試卷1(共9題)_第2頁
PC技術(shù)機試模擬試卷1(共9題)_第3頁
PC技術(shù)機試模擬試卷1(共9題)_第4頁
PC技術(shù)機試模擬試卷1(共9題)_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PC技術(shù)機試模擬試卷1(共9套)(共9題)PC技術(shù)機試模擬試卷第1套一、程序設計題(本題共1題,每題1.0分,共1分。)1、請編制程序,其功能為:設由20個8位有符號數(shù)構(gòu)成一個數(shù)組,試依次去掉其中負的奇數(shù),生成一個新的數(shù)組(順序不變)。結(jié)果存放在RESULT開始的內(nèi)存單元中。部分程序已經(jīng)給出,其中原始數(shù)據(jù)由LOAD過程從文件INPUT1.DAT中讀入從SOURCE開始的內(nèi)存單元,運算結(jié)果要求從RESULT開始存放,由SAVE過程保存到OUTPUT1.DAT文件中。請在BEOIN和END之間補充使其完整。對程序必須進行匯編,并與IO.OBJ鏈接產(chǎn)生PROG1.EXE執(zhí)行文件,最終產(chǎn)生運行結(jié)果。部分程序如下:;PROG1.ASMEXTRNLOAD:FAR,SAVE:FARLENEQU20DSEGSEGMENTSOURCEDWNDUP(?)RESULTDWNDUP(0)NAME0DB’INPUT1.DAT’,0NAME1DB’OUTPUT1.DAT’,0DSEGENDSSSEGSEGMENTSTACKDB256DUP(?)SSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEG;SS:SSEGSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DSEGMOVDS,AXMOVES,AXLEADX,SOURCELEASI,NAME0MOVCX,NCALLLOAD;***BEGIN***………………;***END***LEADX,RESULTLEASI,NAME1MOVCX,NCALLSAVERETSTARTENDPCSEGENDSENDSTART標準答案:;***BEGIN***LEASI,SOURCELEADI,RESULTMOVCX,20LOOP1:MOVAL,[SI]MOVAH,ALSHRAH,1JNCLOOP2CMPAL,0.JNLLOOP2JMPEXITLOOP2:MOV[DI],ALINC,DIEXIT:INCSILOOPLOOP1;***END***[INPUT1.DAT中的輸入數(shù)據(jù)]:81H,60H,8EH,38H,68H,60H,8EH,38H,68H,5EH,50H,64H,52H,55H,48H,3AH,4AH,40H,42H,23H[輸出結(jié)果]608E3868608E38685E50645255483A4A40422300知識點解析:暫無解析PC技術(shù)機試模擬試卷第2套一、程序設計題(本題共1題,每題1.0分,共1分。)1、請編制程序PROG1.ASM,其功能是:以SOURCE開始的內(nèi)存區(qū)域中存放著N個字節(jié)的有符號數(shù)。現(xiàn)找出最大的數(shù),結(jié)果存放到RESULT指示的單元,其后存放原N個數(shù)邏輯取反后的值。例如:數(shù)據(jù)為:09H,7EH,89H,F3H,17H,……,67H(N個數(shù)據(jù))結(jié)果為:7EH(最大數(shù)),F(xiàn)6H,81H,76H,0CH,E8H,……,98H(原來N個數(shù)的邏輯反)部分程序已給出,其中原始數(shù)據(jù)由過程LOAD從文件INPUT1.DAT中讀入SOURCE開始的內(nèi)存單元中。運算結(jié)果要求從RESULT開始存放,由過程SAVE保存到文件OUTPUT1.DAT中。填空BEGIN和END之間已給出的源程序使其完整(空白已用橫線標出,每行空白一般只需一條指令,但采用功能相當?shù)亩鄺l指令亦可),或刪除BEGIN和END之間原有的代碼并自行編程來完成要求的功能。對程序必須進行匯編,并與IO.OBJ鏈接產(chǎn)生PROG1.EXE執(zhí)行文件,最終運行程序產(chǎn)生結(jié)果(無結(jié)果或結(jié)果不正確者均不得分)。調(diào)試中若發(fā)現(xiàn)整個程序中存在錯誤之處,請加以修改。試題程序:EXTRNLOAD:FAR,SAVE:FARNEQU19STACSEGMENTSTACKDB128DUP(?)STACENDSDATASEGMENTSOURCEDBNDUP(0)RESULTDBN+1DUP(0)NAME0DB’INPUT1.DAT’,0NAME1DB’OUTPUT1.DAT’,0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXMOVES,AXLEADX,SOURCE;數(shù)據(jù)區(qū)起始地址LEASI,NAME0;原始數(shù)據(jù)文件名MOVCX,N;字節(jié)數(shù)CALLLOAD;從INPUT1.DAT中讀取數(shù)據(jù);****BEGIN****(1)SI,SOURCEMOVBX,OFFSETSOURCELEADI,RESULTMAXD1:MOVCX,NMOVDX,CXMOVAL,(2)MAXD2:INCBX(3)AL,[BX](4)MOVAL,[BX]MAXD3:DECDXJNZ(5)MOV[DI],ALINCDICLDMREP:LODSBNOTAL(6)LOOPMREP;****END****LEADX,RESULT;結(jié)果數(shù)據(jù)區(qū)首址LEASI,NAME1;結(jié)果文件名起始地址MOVCX,N+1;字節(jié)數(shù)CALLSAVE;保存結(jié)果到OUTPUT1.DAT文件中RETSTARTENDPCODEENDSENDSTART標準答案:(1)LEA(2)[BX](3)CMP(4)JGEMAXD3(5)MAXD2(6)STOSB知識點解析:在MAXD2程序段中進行比較,找最大值;在MAXD3程序段中對非最大值進行邏輯取反。PC技術(shù)機試模擬試卷第3套一、程序設計題(本題共1題,每題1.0分,共1分。)1、編制一個程序,其實現(xiàn)的功能為:計算10個帶符號字節(jié)數(shù)據(jù)的絕對值之和(和為字型),并且找出絕對值最小的數(shù)及其所在的偏移地址,將結(jié)果依次存入指定的內(nèi)存區(qū)中,結(jié)果以0FH結(jié)束。例如:內(nèi)存中有:23H,14H,00H,08H,PEH,87H,02H,01H,PPH,01H結(jié)果為:BFH,00H,00H,02H,00H,0FH部分程序已經(jīng)給出,原始數(shù)據(jù)由過程LOAD從文件INPUT.DAT中讀入以SOURCE開始的內(nèi)存單元中。運算結(jié)果要求從RESULT開始的內(nèi)存單元存放,由過程SAVE保存到文件OUTPUT.DAT中。請?zhí)羁誃EGIN和END之間已給出的源程序使其完整,空白已經(jīng)用橫線標出,每行空白一般只需要一條指令,但采用功能相當?shù)亩鄺l指令也行,考生也可以刪除BEGIN和END之間原有的代碼并自行編程來完成要求的功能。對程序必須進行匯編,并與IO.OBJ鏈接產(chǎn)生可執(zhí)行文件,最終運行程序產(chǎn)生結(jié)果。調(diào)試中若發(fā)現(xiàn)整個程序中存在錯誤之處,請加以修改。[試題程序]EXTRNLOAD:FAR,SAVE:FARNEQU10DSEGSEGMENTSOURCEDBNDUP(?)RESULTDB6DUP(0)MINDB?NAME0DB’INPUT.DAT’,0NAME1DB’OUTPUT.DAT’,0DSEGENDSSSEGEGMENTSTACKDB256DUP(?)SSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEG,SS:SSEGSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DSEGMOVDS,AXLEADX,SOURCELEASI,NAME0MOVCX,NCALLLOAD;********BEGIN***********LEASI,SOURCELEADI,RESULTMOVDX,SIMOVCX,N-1MOVAL,[SI]SUBAX,0JNSNEXTNEGALNEXT:MOVMIN,ALADD[DI],AL(1)AGAIN:INCSIMOVAL,[SI]ADDAL,0JNSNEXT1(2)NEXT1:ADD[DI],AL(3)CMPMIN,ALJBENEXT2MOVMIN,AL(4)NEXT2:LOOPAGAINADDDI,2MOVAL,MINMOV[DI],ALINCDIMOV[DI],DXADDDI,2MOV(5),0FH***********END*************LEADX,RESULTLEASI,NAME1MOVCX,6CALLSAVERETSTARTENDPCSEGENDSENDSTART標準答案:(1)ADCBYTEPTR[DI+1],0(2)NEGAL(3)ADCBYTEPTR[DI+1],0(4)MOVDX,SI(5)BYTEPTR[DI]知識點解析:程序的整體結(jié)構(gòu)是:先對數(shù)據(jù)進行判斷,若是正數(shù),則直接求和,否則求補以后再進行相加。并且對每個數(shù)的絕對值進行比較,絕對值最小的數(shù)放在MIN中,絕對值最小數(shù)的偏移地址放在DX中。程序開始進行的是指針的初始化,SI中為SOURCE的偏移地址,DI中為RESULT的偏移地址,并將SOURCE中第一個存儲單元的數(shù)據(jù)和地址分別放在AL和DX中。第一個數(shù)裝入以后,需要對其進行判斷,如果為正數(shù)的話,可以接著執(zhí)行下面的程序段,否則就求出它的絕對值(即對其進行求補操作)。完成操作以后,就可以把第一個數(shù)當成比較對象和其他值的絕對值進行比較。首先將AL中的數(shù)放入MIN中,然后將其加到RESULT的第一個單元中(即DI所指的地址單元中),在執(zhí)行加法運算時,要將其進位也加進去,所以第一個空白處應該填的內(nèi)容是對進位進行相加,即ADCBYTEPTR[DI+1],0。從第二個數(shù)據(jù)開始,程序進入循環(huán),即后面的數(shù)將執(zhí)行同一操作:判斷是否為正數(shù),若是正數(shù),則直接加入DI所指的單元,否則求補以后再加入。同時,把數(shù)據(jù)的絕對值與MIN中的內(nèi)容進行比較,如果數(shù)據(jù)的絕對值小于MIN則將數(shù)據(jù)放入M1N中,并且把此時的偏移地址SI存入DX中,否則執(zhí)行下一次加法與比較操作。因此,對于2~4個空缺處來說,需要完成的就是上述的操作。執(zhí)行完加法操作和找出絕對值最小的數(shù)以后,接下來便是按照要求對結(jié)果進行存儲。由于題目要求最后一個存儲單元為0FH,所以最后一步操作應該是存入0FH。由于此時DI已經(jīng)指向RESULT的最后一個單元,因此可以直接存入。但需要注意的是不能使用MOV[DI],0FH的語句,因為這樣將不知道是把0FH存入[DI]單元,還是把0FH和00H存入[DI]和[DI+1]單元,所以應該指定操作數(shù)的類型,即MOVBYTEPTR[DI],0FH。PC技術(shù)機試模擬試卷第4套一、程序設計題(本題共1題,每題1.0分,共1分。)1、試題要求如下:請編制程序,其功能是:內(nèi)存中連續(xù)存放著30個無符號字節(jié)數(shù),求它們的和。和值形式按字存放,此前按順序存放參加運算的30個字節(jié)。例如:內(nèi)存中有01H,02H,03H,……結(jié)果為01H,02H,03H,……(30個參加運算的字節(jié)),后跟一個字(為前面30個字節(jié)的和)。部分程序已給出,其中原始數(shù)據(jù)由過程LOAD從文件INPUT1.DAT中讀入SOURCE開始的內(nèi)存單元中,運算的結(jié)果要求從RESULT開始存放,由過程SAVE保存到文件OUTPUT1.DAT中。補充BEGIN和END之間已給出的源程序使其完整(空白已用橫線標出,每行空白一般只需一條指令,但采用功能相當?shù)亩鄺l指令亦可),或刪除BEGIN和END之間原有的代碼并自行編程來完成要求的功能。對程序進行匯編,并與IO.OBJ鏈接產(chǎn)生執(zhí)行文件,最終運行程序產(chǎn)生結(jié)果。調(diào)試中發(fā)現(xiàn)整個程序中存在錯誤之處,請加以修改。試題程序:EXTRNLOAD:FAR,SAVE:FARNEQU30STACSEGMENTSTACKDB128DUP(?)STACENDSDATASEGMENTSOURCEDBNDUP(?)RESULTDBN+2DUP(0)NAME0DB’INPUT1.DAT’,0NAME1DB’OUTPUT1.DAT’,0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXLEADX,SOURCE;數(shù)據(jù)區(qū)起始地址LEASI,NAME0;原始數(shù)據(jù)文件名MOVCX,N;字節(jié)數(shù)CALLLOAD;從’INPUT1.DAT’中讀取數(shù)據(jù);****BEGIN****LEASI,SOURCELEADI,RESULTMOVCX,NMOVBX,0NEXT:MOVAL,[SI](1)(2)MOV[DI],(3)INCSI(4)LOOPNEXTMOV[DI],(5);****END****LEADX,RESULT;結(jié)果數(shù)據(jù)區(qū)首址LEASI,NAME1;結(jié)果文件名MOVCX,N+2;結(jié)果字節(jié)數(shù)CALLSAVE;保存結(jié)果到文件RETSTARTENDPCODEENDSENDSTART標準答案:(1)MOVAH,0;設初值(2)ADDBX,AX;第一次求和(3)AL(4)INCDI;移動地址讓上個數(shù)的所得結(jié)果和下個數(shù)相加(5)BX;保存數(shù)據(jù)知識點解析:此題是一個求和的問題,NEXT中用循環(huán)指令求和。先設一個初值為0,讓它和內(nèi)存中存儲的第一個數(shù)據(jù)相加,然后讓所得結(jié)果和下一個數(shù)相加,直到循環(huán)結(jié)束為止。PC技術(shù)機試模擬試卷第5套一、程序設計題(本題共1題,每題1.0分,共1分。)1、請編制程序PROG1.ASM,其功能是:統(tǒng)計30個學生成績中得分在100~90、89~80、79~70、69~60區(qū)間以及低于60分的人數(shù),并計算30個學生的平均成績(取整數(shù)),結(jié)果依次存入指定的內(nèi)存區(qū)域。例如:內(nèi)存中有10個分數(shù);5EH,50H,64H,52H,55H,48H,3AH,4AH,40H,42H結(jié)果為:02H,03H,02H,02H,01H,4DH(平均成績)部分程序已給出,其中原始數(shù)據(jù)由過程LOAD從文件INPUT1.DAT中讀入SOURCE開始的內(nèi)存單元中。運算結(jié)果要求從RESULT開始存放,由過程SAVE保存到文件OUTPUT1.DAT中。填空BEGIN和END之間已給出的源程序使其完整(空白已用橫線標出,每行空白一般只需一條指令,但采用功能相當?shù)亩鄺l指令亦可),或刪除BEGIN和END之間原有的代碼并自行編程來完成要求的功能。對程序必須進行匯編,并與IO.OBJ鏈接產(chǎn)生PROG1.EXE執(zhí)行文件,最終運行程序產(chǎn)生結(jié)果(無結(jié)果或結(jié)果不正確者均不得分)。調(diào)試中若發(fā)現(xiàn)整個程序中存在錯誤之處,請加以修改。試題程序:EXTRNLOAD:FAR,SAVE:FARNEQU30LEQU5DSEGSEGMENTSOURCEDBNDUP(?)RESULTDBN+1DUP(0)NAME0DB’INPUT1.DAT’,0NAME1DB’OUTPUT1.DAT’,0DSEGENDSSSEGSEGMENTSTACKDB256DUP(?)SSEGENDSCSEGSEGMENTASSUMECS:CSEG,SS:SSEG,DS:DSEGSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DSEGMOVDS,AXLEADX,SOURCELEASI,NAME0MOVCX,NCALLLOAD;***BEGIN***LEASI,SOURCELEADI,RESULTXORBX,BX(l)MOVCX,NGOON:LODSB(2)ADDBX,AX(3)JAEA1CMPAL,80JAEA2CMPAL,70JAEA3CMPAL,60JAEA4INC(4)(5)A4:INCBYTEPTR[DI+3]JMPNEXTA3:INCBYTEPTR[DI+2]JMPNEXTA2:INCBYTEPTR[DI+I]JMPNEXTA1:INCBYTEPTR[DI]NEXT:LOOPGOONMOVAX,(6)MOVDL,(7)DIVDLMOV[DI+5],AL;***END***LEADX,RESULTLEASI,NAME1MOVCX,L+1CALLSAVERETSTARTENDPCSEGENDSENDSTART標準答案:(1)XORAX,AX(2)CBW(3)CMPAL,90(4)BYTEPTR[DI+4](5)JMPNEXT(6)BX(7)N知識點解析:首先將AX和BX都置零,對操作數(shù)進行擴展,從高于90分的開始統(tǒng)計,一直到低于60分為止。對于不同的分數(shù)段分別增加相應的計數(shù)器,最后計算所有學生的平均成績。PC技術(shù)機試模擬試卷第6套一、程序設計題(本題共1題,每題1.0分,共1分。)1、請編制程序,其功能是:內(nèi)存中連續(xù)存放著20個ASCⅡ字符,如果是小寫字母a~z之間的字符(包括字母a和z),請把它們轉(zhuǎn)換成相應的大寫字母所對應的ASCⅡ字符;若為其他字符,不作轉(zhuǎn)換。例如:內(nèi)存中有:61H(’a’),62H(’b’),31H(’1’),41H(’A’),42H(’B’)…結(jié)果為:41H(’A’),42H(’B’),31H,41H,42H…部分程序已經(jīng)給出,其中原始數(shù)據(jù)由過程LOAD從文件INPUT1.DAT中讀入SOURCE開始的內(nèi)存單元中,運算結(jié)果要求從RESULT開始存放,由過程SAVE保存到文件OUTPUT1.DAT中。請?zhí)羁誃EGIN和END之間已給出的源程序使其完整,空白處已用橫線標出,每行空白一般只需一條指令,但采用功能相當?shù)亩鄺l指令亦可,或刪去BEGIN和END之間原有的代碼并自行編程來完成所要求的功能。對程序必須進行匯編,并與IO.OBJ連接產(chǎn)生可執(zhí)行文件,最終運行程序產(chǎn)生結(jié)果。調(diào)試中若發(fā)現(xiàn)整個程序存在錯誤之處,請加以修改?!驹囶}程序】EXTRNLOAD:FAR,SAVE:FARNEQU20STACSEGMENTSTACKDB128DUP(?)STACENDSDATASEGMENTSOURCEDBNDUP(?)RESULTDBNDUP(0)NAME0DB’INPUT1.DAT’,0NAME1DB’OUTPUT1.DAT’,0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXLEADX,SOURCE;數(shù)據(jù)區(qū)起始地址LEASI,NAME0;原始數(shù)據(jù)文件名MOVCX,N;字節(jié)數(shù)CALLLOAD;從"INPUT.DAT"中讀取數(shù)據(jù);********BEGIN********LEASI,SOURCELEADI,RESULTMOVCX,NNEXT:MOVAL,[SI]CMPAL,’a’JB(1)CMPAL,(2)J(3)UPPER2SUBAL,(4)UPPER2:HOV[DI],(5)INC(6)INC(7)(8)NEXT;********END********LEADX,RESULT;結(jié)果數(shù)據(jù)區(qū)首址LEASI,NAME1;結(jié)果文件名MOVCX,N;結(jié)果字節(jié)數(shù)CALLSAVE;保存結(jié)果到文件RETSTARTENDPCODEENDSENDSTART標準答案:(1)UPPER2(2)’z’(3)JA(4)20H(5)AL(6)SI(7)DI(8)LOOP知識點解析:本題主要考查的是將小寫字母改寫成大寫字母的實現(xiàn)方法。題目中給出的程序是利用循環(huán)依次對每個字符進行判斷是否是小寫字母,若是則減去32即成為該字母相對應的大寫字母。PC技術(shù)機試模擬試卷第7套一、程序設計題(本題共1題,每題1.0分,共1分。)1、請編制程序,其功能為:將內(nèi)存中存放的連續(xù)的30個二進制數(shù)(0到100之間),按數(shù)值大小分別進行統(tǒng)計,0~59為D,60~74為C,75~84為B,85~100為A,統(tǒng)計出A、B、C、D的個數(shù),并按A、B、C、D次序存放在內(nèi)存中。例如:內(nèi)存中原始數(shù)據(jù)為:21H,3CH,4DH,31H,4FH,51H,56H統(tǒng)計結(jié)果:1,3,1,2部分程序已經(jīng)給出,其中原始數(shù)據(jù)由LOAD過程從文件INPUT1.DAT中讀入從SOURCE開始的內(nèi)存單元,轉(zhuǎn)換結(jié)果(要求從RESULT開始讀入)由SAVE過程保存到OUTPUT1.DAT文件中。請在BEGIN和END之間補充使其完整,完成要求的功能。或刪除BEGIN和END之間原有的代碼并自行編程來完成要求的功能。對程序必須進行匯編,并與IO.OBJ鏈接產(chǎn)生PROG1.EXE執(zhí)行文件,最終產(chǎn)生運行結(jié)果。部分程序如下:;PROG1.ASMEXTRNLOAD:FAR,SAVE:FARNEQU30DSEGSEGMENTSOURCEDBNDUP(?)RESULTDBNDUP(0)NAME0DB’INPUT1.DAT’,0NAME1DB’OUTPUT1.DAT’,0DSEGENDSSSEGSEGMENTSTACKDB128DUP(?)SSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEG;SS:SSEGSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DSEGMOVDS,AXMOVES,AXLEADX,SOURCELEASI,NAME0MOVCX,NCALLLOAD;***BEGIN***MOVCX,NLEASI,SOURCECONT:MOVAL,[SI]_____________JBLBINCRESULTJMPOKLB:CMPAL,75JBLCINC______JMPOKLC:CMPAL,60JBLD____________JMPOKLD:____________OK:INCSILOOPCONT;***END***LEADX,RESULTLEASI,NAME1MOVCX,4CALLSAVERETSTARTENDPCSEGENDSENDSTART標準答案:;***BEGIN***MOVCX,NLEASI,SOURCECONT:MOVAL,[SI]CMPAL,85JBLBINCRESULTJMPOKLB:CMPAL,75JBLCINCRESULT+1JMPOKLC:CMPAL,60JBLDINCRESULT+2JMPOKLD:INCRESULT+3OK:INCSILOOPCONT;***END***[INPUT1.DAT中的輸入數(shù)據(jù)]:60H,3CH,4DH,31H,4FH,51H,56H,59H,41H,32H35H,21H,4FH,3AH,21H,2BH,51H,11H,45H,44H3AH,1EH,3BH,34H,3CH,46H,63H,24H,40H,3EH[輸出結(jié)果]:040508OD知識點解析:暫無解析PC技術(shù)機試模擬試卷第8套一、程序設計題(本題共1題,每題1.0分,共1分。)1、請編制程序,其功能是:內(nèi)存中連續(xù)存放著16個二進制字節(jié)數(shù),在原16個數(shù)的第4和第5個數(shù)之間插入00H,在原16個數(shù)的第8和第9個數(shù)之間插入55H,在原16個數(shù)的第12和第13個數(shù)之間插入AAH,在原16個數(shù)的最后加入FFH。將按上述方法插入4個字節(jié)數(shù)后得到的20個字節(jié)數(shù)存入內(nèi)存中。例如:內(nèi)存中有:10H,20H,30H,40H,50H,…,8FH(共16今字節(jié))結(jié)果為:10H,20H,30H,40H,00H,50H,…,8FH,F(xiàn)FH(共20個字節(jié))部分程序已給出,其中原始數(shù)據(jù)由過程LOAD從文件INPUT1.DA了中讀入SOURCE開始的內(nèi)存單元中。運算結(jié)果要求從RESULT開始存放,由過程SAVE保存到文件OUTPUT1.DAT中。請?zhí)羁誃EGIN和END之間已經(jīng)給出的源程序使其完整,需填空處已經(jīng)用橫線標出,每個空白一般只需一條指令,也可以填入功能相當?shù)亩鄺l指令,或刪去BEGIN和END之間原有的代碼并自行編程來完成所要求的功能。對程序必須進行匯編,并與IO.OBJ鏈接產(chǎn)生可執(zhí)行文件,最終運行程序產(chǎn)生結(jié)果。調(diào)試中若發(fā)現(xiàn)整個程序中存在錯誤之處,請加以修改。[試題程序]EXTRNLOAD:FAR,SAVE:FARNEQU16STACSEGMENTSTACKDB128DUP(?)STACENDSDATASEGMENTSOURCEDBNDUP(?)INDATADB0FFH,0AAH,55H,00HRESULTDBN+4DUP(0)NAME0DB’INPUT1.DAT’,0NAME1DB’OUTPUT1.DAT’,0DATAENDSCODESECMENTASSUMECS:CODE,DS:DATA,SS:STACSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXEADX,SOURCE;數(shù)據(jù)區(qū)起始地址EASI,NANE0;原始數(shù)據(jù)文件名OVCX,N;字節(jié)數(shù)ALLLOAD;從’INPUT1.DAT’中讀取數(shù)據(jù);********BEGIN********(1)OVDI,0OVCX,4OVBX,4CHAN:(2)OVRESULT[GI],AH(3)NCDIECCXZINSER1MPCHANINSER1:PUSHSIMOVSI,BXMOVAX,WORDPTRINDATA[SI-2]MOVRESULT[DI],(4)DECBXJZ(5)MOVCX,04H(6)INCDIJMP(7)EXIT:POPSI;********END*********LEADX,RESULT結(jié)果數(shù)據(jù)區(qū)首址LEASI,NAME1;結(jié)果文件名MOVCX,N+4;結(jié)果字節(jié)數(shù)CALLSAVE保存結(jié)果到文件RETSTARTENDPCODEENDSENDSTART標準答案:(1)MOVSI.0(2)MOVAH,SOURCE[SI](3)INCSI(4)AH(5)EXIT(6)POPSI(7)CHAN知識點解析:此程序所要實現(xiàn)的過程是在連續(xù)存放的16個數(shù)的四個不同位置當中插入四個不同的數(shù)。程序開始,將要插入的四個數(shù)即:0FPH,0AAH,55H,00H,先定義成字節(jié)型變量INDATA。程序中寄存器BX和CX的作用主要是用于計數(shù)控制。CX用于控制一次存儲4個數(shù)到結(jié)果數(shù)據(jù)區(qū)中,一共要存儲四組。這四組分別是第1~4個、第5~8個、第9~12個、第13~16個。存完一組數(shù)據(jù)后,在各組后面分別插入00H、55H、0AAH、0FPH。BX用于控制所要插入數(shù)的個數(shù),插入完一個數(shù)后,BX減1。程序的堆棧段定義了一個128字節(jié)的堆棧區(qū),堆棧段下面是數(shù)據(jù)段。數(shù)據(jù)段中定義了五個字節(jié)型變量:原始數(shù)據(jù)區(qū)SOURCE、變量INDATA(包括四個將要插入的數(shù))、結(jié)果數(shù)據(jù)區(qū)RESULT、原始數(shù)據(jù)文件名NAME0、結(jié)果數(shù)據(jù)文件名NAME1。數(shù)據(jù)段下面是代碼段,在代碼段的開始告訴匯編程序,代碼段、數(shù)據(jù)段和堆棧段分別屬于段寄存器CS、DS、SS。接下來是對返回地址的保存和數(shù)據(jù)段寄存器的初始化,這是每一個匯編程序所必須具有的操作步驟。然后調(diào)用外部過程LOAD,從“INPUT1.DAT”中讀取數(shù)據(jù)。準備工作完成以后,程序進入主體部分。需說明的是,程序中所有分號“:”后邊的部分均為注釋說明性內(nèi)容。將原始數(shù)據(jù)的偏移地址SI賦初值為0,所以第(1)空填寫“MOVSI,0”。將結(jié)果數(shù)據(jù)的偏移地址DI也賦初值為0,CX和BX的初值都為4。由于需先將SOURCE[SI]中的內(nèi)容傳送給AH,所以第(2)空填寫“MOVAH,SOURCE[SI]”,再將AH存儲到RESULT[DI]中。CX減1,若CX為0,表示已經(jīng)搜索到了第四個字符,則轉(zhuǎn)向INSER1段,開始插入第一個數(shù):否則CX不為0,繼續(xù)搜索下一個字符,即無條件轉(zhuǎn)向CHAN段。第(3)空SI地址加1,繼續(xù)取下一個數(shù)據(jù)。INSER1段是將INDATA中的數(shù)據(jù)插入到RESULT[DI]中。先給AH賦值為INDATA[SI-1],再將AH存入到RESULT[DI]中,所以第(4)空填寫“AH”。INDATA[SI-1]表示每次取完INDATA中的一個數(shù)后,偏移地址SI減1,取下一個數(shù)(INDATA中一共四個數(shù))。插入一個數(shù)后,BX減1,若BX減為0,表示四個數(shù)全部都已經(jīng)插入到數(shù)組的四個位置中,則轉(zhuǎn)向EXIT段,所以第(5)空填寫“EXIT”。另外,在INSER1程序段中,先執(zhí)行指令“PUSHSI”,然后給SI賦值,有壓入就必有彈出,所以第(6)空填寫“POPSI”,與前面的“PUSHSI”指令相對應。當插入操作未完時,繼續(xù)搜索下一組四個數(shù),然后再插入新的數(shù),無條件轉(zhuǎn)向CHAN段,所以第(7)空填寫“CHAN”。PC技術(shù)機試模擬試卷第9套一、程序設計題(本題共1題,每題1.0分,共1分。)1、請編制程序,其功能是:內(nèi)存中連續(xù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論