版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
PC技術(shù)機試模擬試卷5(共9套)(共9題)PC技術(shù)機試模擬試卷第1套一、程序設計題(本題共1題,每題1.0分,共1分。)1、試題要求如下:請編制程序,其功能是:統(tǒng)計20個學生成績中得分在100~90,89~80,79~70、69~60和低于60分的人數(shù),并計算20個學生的平均成績(取整數(shù)),結(jié)果依次存放在指定的區(qū)域內(nèi)。例如:內(nèi)存中有5個分數(shù):50H,40H,5EH,64H,48H結(jié)果為02H,01H,01H,01H,00H,52H(平均成績)部分程序己給出,其中原始數(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:FARNEQU20LEQU5DATASEGMENTSOURCEDBNDUP(?)RESULTDBN+1DUP(0)NAME0DB’INPUT1.DAT’,0NAME1DB’OUTPUT1.DAT’,0DATAENDSSSEGSEGMENTSTACKDB256DUP(?)SSEGENDSCSEGSEGMENTASSUMECS:CSEG,SS:SSEG,DS:DATASTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXLEADX,SOURCE;數(shù)據(jù)區(qū)起始地址LEASI,NAME0;原始數(shù)據(jù)文件名MOVCX,N;字節(jié)數(shù)CALLLOAD;從’INPUT1.DAT’中讀取數(shù)據(jù);****BEGIN****LEASI,SOURCELEADI,RESULTXORBX,BX(1)MOVCX,NGOON:LODSB(2)ADDBX,AX(3)JAEP1CMPAL,80JAEP2CMPAL,70JAEP3CMPAL,60JAEP4INC(4)(5)P4:INCBYTEPTR[DI+3]JMPNEXTP3:INCBYTEPTR[DI+2]JMPNEXTP2:INCBYTEPTR[DI+I]JMPNEXTP1:INCBYTEPTR[DI]NEXT:LOOPGOONMOVAX,BXMOVDL,(6)DIVDLMOV[DI+5],AL;***END****LEADX,RESULT;結(jié)果數(shù)據(jù)區(qū)首址LEASI,NAME1;結(jié)果文件名MOVCX,L+1;結(jié)果字節(jié)數(shù)CALLSAVE;保存結(jié)果到文件RETSTARTENDPCODEENDSENDSTART標準答案:(1)CLD;使DF=0,在執(zhí)行串處理指令時可以使地址自動增量(2)MOVAH,0;設初值(3)CMPAL,90;判斷分數(shù)在90~100分之間的個數(shù)(4)BYTEPTR[DI+4];設置平均值存儲空間(5)JMPNEXT;無條件轉(zhuǎn)移(6)N;計算20個學生的平均成績知識點解析:程序中GOON完成的是按題目的要求求出各段的數(shù)據(jù),P1、P2、P3、P4完成的分別是對各分數(shù)段的計數(shù),NEXT是求平均值。PC技術(shù)機試模擬試卷第2套一、程序設計題(本題共1題,每題1.0分,共1分。)1、請編制程序PROG1.ASM,其功能是:內(nèi)存中連續(xù)存放的20個8位有符號數(shù)(補碼)是由一個8位A/D轉(zhuǎn)換器采集的雙極性信號(Xn),現(xiàn)要求對該信號作如下限幅處理(處理后的信號記為Yn):a)Yn=-100Xn<-100b)Yn=Xn∣Xn∣≤100c)Yn=100Xn>100例如:Xn:68H,60H,8EH,38H,…Yn:64H,61H,9CH,38H,…部分程序已在PROG1.ASM中給出,請?zhí)羁誃EGIN和END之間已給出的源程序使其完整(空白己用橫線標出,每行空白一般只需一條指令,但功能相當?shù)亩鄺l指令亦可)或刪除BEGIN和END之間原有的代碼并自行編寫程序片段來完成要求的功能。原始數(shù)據(jù)由過程LOAD從文件INPUT1.DAT中讀入SOURCE開始的內(nèi)存單元中,結(jié)果要求從RESULT開始存放,由過程SAVE保存到文件OUTPUT1.DAT中。對程序必須進行匯編,并與IO.OBJ鏈接產(chǎn)生PROG1.EXE執(zhí)行文件,最終運行程序產(chǎn)生結(jié)果(無結(jié)果或結(jié)果不正確者均不得分)。試題程序:EXTRNLOAD:FAR,SAVE:FARNEQU20MEQU100DSEGSEGMENTSOURCEDWNDUP(?)RESULTDWNDUP(0)NAME0DB’INPUTI.DAT’,0NAME1DB’OUTPUT1.DAT’,0DSEGENDSSSEGSEGMENTSTACKDB128DUP(?)SSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEG,SS:SSEGSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DSEGMOVDS,AXLEADX,SOURCE;數(shù)據(jù)區(qū)起始地址LEASI,NAME0;原始數(shù)據(jù)文件名起始地址MOVCX,N;字節(jié)數(shù)CALLLOAD;從INPUT1.DAT中讀取數(shù)據(jù);****BEGIN****LEASI,SOURCELEADI,RESULT(1)NEXT:MOVAX,[SI]CMPAX,-M(2)L1CMPAL,M(3)MOVAL,MJMPL2L1:MOVAL,-ML2:MOV[DI],AL(4)(5)(6);****END****LEADX,RESULT;結(jié)果數(shù)據(jù)區(qū)首址LEASI,NAME1;結(jié)果文件名起始地址MOVCX,N;字節(jié)數(shù)CALLSAVE;保存結(jié)果到OUTPUT1.DAT文件中RETSTARTENDPCSEGENDSENDSTART標準答案:(1)MOVCX,20(2)JL(3)JLL2(4)ADDSI,I(5)ADDDI,1(6)LOOPNEXT知識點解析:本題要求對20個數(shù)進行循環(huán)轉(zhuǎn)換,但本題中沒有設置計數(shù)器,所以應該在循環(huán)體前面的一個空白處設置計數(shù)器。程序中,比較指令后通常是轉(zhuǎn)移指令,需要考慮一個比較操作后應做如何處理。在一個數(shù)據(jù)處理完畢并存入目的地址后,應準備處理下—個數(shù)據(jù),所以應修改源操作數(shù)地址和目的操作數(shù)地址,并回到循環(huán)體開始部分重新進行操作。PC技術(shù)機試模擬試卷第3套一、程序設計題(本題共1題,每題1.0分,共1分。)1、請編制程序,其功能是:內(nèi)存中連續(xù)存放著20個ASCII字符,如果是小寫字母a~z之間的字符,請把它們轉(zhuǎn)換成相應的大寫字符;若為其他字符,不作轉(zhuǎn)換。例如:內(nèi)存中有61H(’a’),62H(’b’),31H(’1’),41H(’A’),42H(’B’)…結(jié)果為41H(’A’),42H(’B’),31H,41H(’A’),42H(’B’)…部分程序已給出,其中原始數(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)整個程序中存在錯誤之處,請加以修改。試題程序:標準答案:(1)UPPER2(2)’Z’(3)A(4)AL,0DFH(5)AL(6)SI(7)DI(8)LOOP知識點解析:此程序要求實現(xiàn)的功能是:將內(nèi)存中連續(xù)存放著的20個ASCII字符,如果是小寫字母a~z之間的字符,把它們轉(zhuǎn)換成相應的大寫字符;若為其他字符,不作轉(zhuǎn)換。程序的堆棧段定義了一個128字節(jié)的堆棧區(qū)。堆棧段下面是數(shù)據(jù)段。數(shù)據(jù)段中定義了四個字節(jié)型變量:原始數(shù)據(jù)區(qū)SOURCE、結(jié)果數(shù)據(jù)區(qū)RESULT、原始數(shù)據(jù)文件名NAME0、結(jié)果數(shù)據(jù)文件名NAME1。數(shù)據(jù)段下面是代碼段,告訴匯編程序,代碼段、數(shù)據(jù)段和堆棧段分別屬于段寄存器CS、DS、SS。先將原始數(shù)據(jù)的偏移地址裝入到SI中,結(jié)果數(shù)據(jù)存放的偏移地址裝入到DI中,CX賦值為N,用于控制循環(huán)處理的次數(shù)。NEXT段,取第一個原始ASCII字符,即將SI中內(nèi)容送AL,將AL與’a’做比較,若AL小于字符’a’的ASCII值,說明AL為大寫字母或其他字符,則轉(zhuǎn)向UPPER2處執(zhí)行;否則,將AL與字符’z’再做比較,若AL大于字符’z’的ASCII值,說明AL為其他字符,仍轉(zhuǎn)向UPPER2處執(zhí)行;否則,AL大于等于字符’a’的ASCII值,小于等于字符’2’的ASCII值,說明AL為小寫字母a~z之間的字符。因為小寫字母的ASCII值范圍是61H~7AH,大寫字母的ASCII值范圍是41H~5AH,所以要將小寫字母變成大寫字母的話,只需將小寫字母的ASCII值和0DFH進行邏輯與操作。讀者可以試一下,將61H~7AH之間的值和0DFH進行邏輯與操作,看是否能得到41H~5AH之間的值。從上面的分析來看,第(1)空填寫"UPPER2",第(2)空填寫"’2’",第(3)空填寫"A",第(4)空填寫"AL,0DFH"。UPPER2段,當字符AL不為小寫字母,為大寫字母或其他字符時,不需將它做任何變換,直接將該字符AL存入到DI中。所以第(5)空填寫"AL"。接著,SI地址加1,準備取下一個字符,繼續(xù)判斷;DI地址加1,準備存儲下一個轉(zhuǎn)換后或不需轉(zhuǎn)換的字符。然后從NEXT入口處循環(huán),繼續(xù)下一個字符的處理。一共循環(huán)CX即20次,才能完成程序的功能。所以第(6)空填寫"SI",第(7)空填寫"DI",第(8)空填寫"LOOP"。PC技術(shù)機試模擬試卷第4套一、程序設計題(本題共1題,每題1.0分,共1分。)1、請編制程序PROG1.ASM,其功能是:對10個無符號字節(jié)數(shù)據(jù)排序(升序),然后剔除第一個數(shù)和最后一個數(shù),并按四舍五入原則計算其余8個數(shù)據(jù)的算術(shù)平均值。將剩余的8個數(shù)據(jù)存入指定的內(nèi)存區(qū)域中,其后存放平均值。例如:內(nèi)存中有:1,5,4,0,7,9,2,6,8,3結(jié)果為:1,2,3,4,5,6,7,8,5部分程序已給出,其中原始數(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:FARNEQU10DSEGSEGMENTSOURCEDBNDUP(?)RESULTDBN-1DUP(0)NAME0DB’INPUT1.DAT’,0NAME1DB’OUTPUT1.DAT’,0TEMPDW0DSEGENDSSSEGSEGMENTSTACKDB256DUP(?)SSEGENDSCSEGSEGMENTASSUMECS:CSEG,SS:SSEG,DS:DSEG,ES:DSEGSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DSEGMOVDS,AXMOVES,AXLEADX,SOURCELEASI,NAME0MOVCX,NCALLLOAD;***BEGIN***MOVBX,(1)GOONI:(2)LEASI,SOURCEGOONJ:MOVAL,[SI]CMPAL,[SI+1]JLENEXTXCHGAL,[SI+1]MOV[SI],ALNEXT:ADDSI,1LOOPGOONJ(3)JNZGOONICLDLEASI,SOURCELEADI,RESULTMOVCX,(4)INCSILP2:LODSBCBWADDTEMP,AXSTOSBLP1:LOOPLP2MOVAX,TEMP(5)DIVDLADDAH,AHCMPAH,DLJBOFF(6)OFF:MOV[DI],AL;***END***EXIT:LEADX,RESULTLEASI,NAME1MOVCX,N-1CALLSAVERET`STARTENDPCSEGENDSENDSTART標準答案:(1)N(2)MOVCX,N-1(3)DECBX(4)N-2(5)MOVDL,N-2(6)ADDAL,1知識點解析:首先將數(shù)值排序;然后從排序后的第二個數(shù)開始,求其后N-2個數(shù)的按四舍五入原則的算術(shù)平均值。PC技術(shù)機試模擬試卷第5套一、程序設計題(本題共1題,每題1.0分,共1分。)1、請編制程序,其功能是:內(nèi)存中連續(xù)存放著10個二進制字節(jié)數(shù),需對此組數(shù)進行加密,其方法為:將前一個字節(jié)數(shù)(兩位十六進制數(shù)a1a2表示)的低位十六進制數(shù)a2與后一個字節(jié)數(shù)(兩位十六進制數(shù)b1b2表示)的高位十六進制數(shù)b1進行交換;第一個字節(jié)數(shù)的高位十六進制數(shù)與最后一個字節(jié)數(shù)的低十六進制數(shù)進行交換,加密后的結(jié)果存入內(nèi)存。例如:內(nèi)存中有:50H,61H,72H,83H,94H,A5H,B6H,C7H,D8H,E9H結(jié)果為:96H,07H,18H,29H,3AH,4BH,5CH,6DH,7EH,85H部分程序已給出,其中原始數(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:FARNEQU10STACSEGMENTSTACKDB128DUP(?)STACENDSDATASEGMENTSOURCEDBNDUP(?);順序存放10個ASCII字符RESULTDBNDUP(0);存放結(jié)果NAME0DB’INPUT1.DAT’,0NAME1DB’OUTPUT1.DAT’,0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXLEAOX,SOURCE;數(shù)據(jù)區(qū)起始地址LEASI,NAMEO;原始數(shù)據(jù)文件名MOVCX,N;字節(jié)數(shù)CALLLOAD;從INPUT1.DAT中讀取數(shù)據(jù);****BEGIN****MOVDI,0MOVSI,0MOVCX,NAGN1:MOVAL,SOURCE[SI]MOVAH,ALANDAL,0FHANDAH,0FOHINCSICMPSI,N(1)MOVSI,0LW:MOVBL,SOURCE[SI]MOVBH,BLANDBL,0FHANDBH,0FOH(2)CXMOVCX,4L1:SHRBH,1SHLAL,1LOOPL1(3)CXORAH,BHORAL,BLCMPDI,0JNZSTORE1MOVSOURCE[SI],ALDECSIMOVSOURCE[SI],AHINCSIJMPNEXTSTORE1:CMPDI,N-1JLSTORE2MOVRESULT[DI],AHMOVDI,0MOVRESULT[DI],ALJMPNEXTSTORE2:MOV(4),AHMOV(5),ALNEXT:INCDILOOPAGN1;****END****LEADX,RESULT;結(jié)果數(shù)據(jù)區(qū)首址LEASI,NAME1;結(jié)果文件名MOVCX,N;字節(jié)數(shù)CALLSAVE;保存結(jié)果文件RETSTARTENDPCODEENDSENDSTART標準答案:(1)JNZLW(2)PUSH(3)POP(4)RESULT[DI](5)SOURCE[SI]知識點解析:本題屬于數(shù)據(jù)加密算法的簡單應用。對原數(shù)據(jù)進行加密時,首先要通過對高4位和低4位分別清0來做交換準備,同時當原數(shù)據(jù)指針下移時,要判斷是否到了末尾。如果到了末尾,就要回頭去取第1個字節(jié),把它的高4位和末尾字節(jié)的低4位互換,接下來通過進行邏輯移位4次后,后一個字節(jié)的高4位與前一個字節(jié)低4位交換,前一個字節(jié)低4位與后一字節(jié)的高4位交換。PC技術(shù)機試模擬試卷第6套一、程序設計題(本題共1題,每題1.0分,共1分。)1、請編制程序,其功能為:內(nèi)存中連續(xù)存放著20個無符號字節(jié)數(shù),求它們的和。和值按字的形式存放,此前先按序存放參加運算的20個字節(jié)。例如;內(nèi)存中有:01H,02H,03H……結(jié)果為:01H,02H,03H……(參加運算的字節(jié)),后跟一個字(為前面各字節(jié)的和)部分程序已經(jīng)給出,其中原始數(shù)據(jù)由LOAD過程從文件INPUT1.DAT中讀入從SOURCE開始的內(nèi)存單元,運算結(jié)果要求從RESULT開始存放,由SAVE過程保存到OUTPUT1.DAT文件中。請在BEGIN和END之間補充使其完整,完成要求的功能。或刪除BEGIN和END之間原有的代碼并自行編程來完成要求的功能。對程序必須進行匯編,并與IO.OBJ鏈接產(chǎn)生PROG1.EXE執(zhí)行文件,最終產(chǎn)生運行結(jié)果。部分程序如下:;PROG1.ASMEXTRNLOAD:FAR,SAVE:FARNEQU20DSEGSEGMENTSOURCEDWNDUP(?)RESULTDWNDUP(0)NAME0DB’INPUT1.DAT’,0NAME1DB’OUTPUT1.DAT’,0DSEGENDSSSEGSEGMENTSTACKDB256DUP(?)SSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEG;SS;SSEGSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DSEGMOVDS,AXLEADX,SOURCELEASI,NAME0MOVCX,NCALLLOAD;***BEGIN***LEASI,SOURCELEADI,RESULTMOVCX,NMOVBX,0NEXT:MOVAL,[SI]________________________MOV[DI],______________________________LOOPNEXTMOV[DI],______;***END***LEADX,RESULTLEASI,NAME1MOVCX,N+2CALLSAVERETSTARTENDPCSEGENDSENDSTART標準答案:;***BEGIN***LEASI,SOURCELEADI,RESULTMOVCX,NMOVBX,0NEXT:MOVAL,[SI]ADDBL,AL;將SOURCE原始數(shù)據(jù)區(qū)中相應的數(shù)累加。;BLADCBH,0;將上一條加法指令中產(chǎn)生的進位加入至和;值的高8位BH中MOV[DI],AL;將SOURCE原始數(shù)據(jù)區(qū)中的數(shù)存入;RESULT相應單元INCSIINCDILOOPNEXT;(CX)-1,若(CX)≠0,則轉(zhuǎn)移NEXTMOV[DI],BX;因最后依次循環(huán)中DI已加1,故BX將緊;跟在這20個數(shù)之后存入;***END***[INPUT1.DAT中的輸入數(shù)據(jù)]:FFH,8OH,7FH,FOH,14H,84H,25H,7EH,3CH,45H,FFH,80H,O1H,O2H,22H,FCH,E3H,A3H,12H,01H[輸出結(jié)果]FF807FF01484257E3C45FF80010222FC113A31201E308知識點解析:暫無解析PC技術(shù)機試模擬試卷第7套一、程序設計題(本題共1題,每題1.0分,共1分。)1、請編制程序,其功能是:內(nèi)存中連續(xù)存放著20個十六位二進制數(shù),對每個數(shù)邏輯右移,使其最低位為"1"(值為零的字不變)。例如:內(nèi)存中有A704H(1010011100000100B),0000H,9A58H…結(jié)果為29C1H(0010100111000001B),0000H,134BH…部分程序已給出,其中原始數(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)整個程序中存在錯誤之處,請加以修改。試題程序:標準答案:(1)0(2)TEST(3)NZ(4)SHR(5)LOOPNEXT知識點解析:此程序要求對內(nèi)存中的20個十六位二進制數(shù)的每一個數(shù)邏輯右移,直到最低位為1為止。考查了SHR,TEST,LOOP等指令的用法。程序的堆棧段定義了一個128字節(jié)的堆棧區(qū)。堆棧段下面是數(shù)據(jù)段。數(shù)據(jù)段中定義了兩個字型變量:原始數(shù)據(jù)區(qū)SOURCE、結(jié)果數(shù)據(jù)區(qū)RESULT;兩個字節(jié)型變量:原始數(shù)據(jù)文件名NAME0、結(jié)果數(shù)據(jù)文件名NAME1。數(shù)據(jù)段下面是代碼段,告訴匯編程序,代碼段、數(shù)據(jù)段和堆棧段分別屬于段寄存器CS、DS、SS。先將原始數(shù)據(jù)偏移地址裝入到SI中,結(jié)果數(shù)據(jù)偏移地址裝入到DI中,CX賦初值為N,用于控制循環(huán)處理的次數(shù)。NEXT段,將SI中內(nèi)容送AX中,再將AX與0做比較,如果AL等于0,轉(zhuǎn)向SKIP段。所以第(1)空填寫"0"。LOOP1段的開始要填寫第(2)空,這里是要判斷AX的最低位是否為1,判斷的方法是將AX和0001H做TEST指令。注意:這里千萬不能用指令"ANDAX,0001H",否則會改變AX的初值.而TEST指令不改變AX的值,它的結(jié)果只顯示在幾個狀態(tài)標志位上。所以第(2)空填寫"TEST"。當TEST的結(jié)果ZF=0,說明AX的最低位為1,AL不需要再邏輯右移了,轉(zhuǎn)向SKIP段;否則,ZF=1,說明AX的最低位為0,還需要將AX繼續(xù)邏輯右移1位,無條件轉(zhuǎn)向LOOP1段,AX再邏輯右移1位,再判斷,若仍不滿足最低位為1,繼續(xù)右移1位,直到AX最低位變?yōu)?為止。所以第(3)、(4)空分別填寫"NZ"和"SHR"。再來看SKIP段,當AX的最低位為1,或者AX等于0000H時,直接將AX存入到DI中,SI和DI地址都加2,因為原始數(shù)據(jù)和結(jié)果數(shù)據(jù)都是字型的,它們在內(nèi)存中都占兩個地址。接著從NEXT處循環(huán),處理下一個十六位二進制數(shù)。所以第(5)空填寫"LOOPNEXT"。PC技術(shù)機試模擬試卷第8套一、程序設計題(本題共1題,每題1.0分,共1分。)1、請編制程序,其功能是:將一數(shù)據(jù)采集系統(tǒng)中采集的80個字節(jié)無符號數(shù)(已存于SOURCE開始的內(nèi)存區(qū)域)按算術(shù)平均數(shù)字濾波方法進行數(shù)字濾波,每8個數(shù)求一個平均值(含去余數(shù))。將10個平均值依次寫入RESULT指示的內(nèi)存區(qū)域。例如:原采集數(shù)據(jù)1EH,31H,31H,33H,58H,75H,38H,34H,49H,A2H,98H,DFH,99H,64H,64H,B7H,…結(jié)果為3DH,CCH,…部分程序已經(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)整個程序中存在錯誤之處,請加以修改。試題程序:標準答案:(1)DI,OFFSETRESULT(2)8(3)AL(4)LOOPMAGN2(5)MOVCL,8(6)DIVCL(7)MOV[DI],AL(8)INCDI(9)JNZ知識點解析:系統(tǒng)中有80個字節(jié)無符號數(shù),此程序要實現(xiàn)的功能是,每8個數(shù)求算術(shù)平均值,一共求出10紐平均值。程序的堆棧段定義了一個128字節(jié)的堆棧區(qū).堆棧段下面是數(shù)據(jù)段。數(shù)據(jù)段中定義了四個字節(jié)型變量,原始數(shù)據(jù)區(qū)SOURCE、結(jié)果數(shù)據(jù)區(qū)RESULT、原始數(shù)據(jù)文件名NAME0、結(jié)果數(shù)據(jù)文件名NAME1。數(shù)據(jù)段下面是代碼段,告訴匯編程序,代碼段、數(shù)據(jù)段和堆棧段分別屬于段寄存器CS、DS、SS。先將原始數(shù)據(jù)的偏移地址送SI中,結(jié)果數(shù)據(jù)存放的偏移地址送DI中。所以第(1)空填寫"DI,OFFSETRESULT"。DI中存放平均值。DX賦初值為N,寄存器AX和BX清0。第(2)空CX是作為循環(huán)的次數(shù),所以根據(jù)題意,CX應該等于8,即循環(huán)求8次和。接著將SI中內(nèi)容送AL中,開始求和,將BX與AL相加,結(jié)果存放在BX中。所以第(3)空填寫"AL"。SI地址加1,循環(huán)取下一個數(shù)據(jù),繼續(xù)求和。循環(huán)入口處為MAGN2,所以第(4)空填寫"LOOPMAGN2"。求完8個數(shù)的和之后,接著要求平均值,先給CL賦值為8,再用8個數(shù)的和AX除以CL,得到平均值。第(5)、(6)空分別填寫"MOVCL,8","DIVCL"。第(7)、(8)空是將平均值結(jié)果存放到結(jié)果數(shù)據(jù)區(qū)DI中,DI地址加1,存放下一個平均值。從第(9)空的前一條指令理解,每次求完8個數(shù)的平均值,DX減1,當DX不為。時,說明10組平均值還沒有求完,轉(zhuǎn)向MAGN1開始的指令處繼續(xù)求下一組8個數(shù)的平均值。所以第(9)空填寫"JNZ"。PC技術(shù)機試模擬試卷
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 出口藥銷售合同范例
- 加油員簽合同范例
- 商鋪餐飲租賃合同模板
- 廈門正規(guī)雇傭合同范例
- 變更保證合同范例
- 廠房項目合同范例
- 古玩收購出售合同范例
- 公益慈善捐款合同模板
- 臨時道路合同范例
- 買冰箱購銷合同范例
- 失血性休克患者的麻醉處理
- 2024網(wǎng)站滲透測試報告
- DG-TJ08-2433A-2023 外墻保溫一體化系統(tǒng)應用技術(shù)標準(預制混凝土反打保溫外墻)
- 九年級上期中考試質(zhì)量分析
- 《共情的力量》課件
- 單詞默寫表(素材)-2023-2024學年人教PEP版英語五年級上冊
- 屠宰行業(yè)PEST分析
- JBT 14191-2023 管道帶壓開孔機 (正式版)
- 肌張力障礙性震顫的護理查房
- 湖北省武漢市江夏區(qū)2023-2024學年七年級上學期期中數(shù)學試題
- tpm培訓學習心得體會
評論
0/150
提交評論