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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

PC技術機試模擬試卷2(共9套)(共9題)PC技術機試模擬試卷第1套一、程序設計題(本題共1題,每題1.0分,共1分。)1、試題要求如下:請編制程序,其功能是:內存中連續放著20個ASCII字符,如果是小寫字母A~Z之間的字符,請把它們轉換成相應的小寫字母:若為其他字符,均轉換成ASCII字符’NUL’(00H)。例如:內存中有:41H(’A’),42H(’B’),5EH,64H,48H……結果為:61H(’a’),62H(’b’),00H(’NUL’),00H(’NUL’),00H(’NUL’)……部分程序已給出,其中原始數據由過程LOAD從文件INPUT1.DAT中讀入SOURCE開始的內存單元中,運算的結果要求從RESULT開始存放,由過程SAVE保存到文件OUTPUT1.DAT中。在BEGIN和AND之間編程完成要求的功能。對程序進行匯編,并與IO.OBJ鏈接產生PROG1.EXE執行文件,最終運行程序產生結果。試題程序:EXTRNLOAD:FAR,SAVE:FARNEQU20STACSEGMENTSTACKDB128DUP(?)STACENDSDATASEGMENTSOURCEDBNDUP(?)RESULTDBNDUP(0FH)NAME0DB’INPUT1.DAT’,0NAME1DB’OUTPUT1.DAT’,0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXLEADX,SOURCE;數據區起始地址LEASI,NAME0;原始數據文件名MOVCX,N;字節數CALLLOAD;從’INPUT1.DAT’中讀取數據LEASI,SOURCELEADI,RESULT;****BEGIN****;****END****LEADX,RESULT;結果數據區首址LEASI,NAME1;結果文件名MOVCX,L+I;結果字節數CALLSAVE;保存結果到文件RETSTARTENDPCODEENDSENDSTART標準答案:MOVCX,NNEXT:MOVAL,[SI]CMPAL,’A’JBPROCMPAL,’Z’JAPROXORAL,20HJMPPSHPRO:MOVAL,00HPSH:MOV[DI],ALINCDIINCSILOOPNEXT知識點解析:本程序要求將A~Z之間的字母轉換成相對應的小寫字母。DI中存放著的是轉換后的偏移地址,每次加1;AL的作用是相當于一個指針,每次SOURCE與它相加;CX是一個循環計數器,每次減1。PC技術機試模擬試卷第2套一、程序設計題(本題共1題,每題1.0分,共1分。)1、請編制程序,其功能是:內存中連續存放著10個用ASCII碼表示的十進制個位數,將它們轉換成相應的二進制字節數N0,N1,…,N9,然后按序將N0~N9,存入內存中,最后存放它們的和M(M=N0+N1+N9)。M用壓縮型(組合型)BCD碼表示。例如:內存中有:30H(’0’),39H(’9’),31H(’1’)…結果為:00H,09H,01H…(最后為M)部分程序已給出,其中原始數據由過程LOAD從文件INPUT1.DAT中讀入SOURCE開始的內存單元中。運算結果要求從RESULT開始存放,由過程SAVE保存到文件OUTPUT1.DAT中。填空BEGIN和END之間已給出的一段源程序使其完整(空白已用橫線標出,每行空白一般只需一條指令,但采用功能相當的多條指令亦可),或刪除BEGIN和END之間原有的代碼并自行編程來完成要求的功能。對程序必須進行匯編,并與IO.OBJ鏈接產生PROG1.EXE執行文件,最終運行程序產生結果(無結果或結果不正確者均不得分)。調試中若發現整個程序中存在錯誤之處,請加以修改。試題程序:EXTRNLOAD:FAR,SAVE:FARNEQU10STACSEGMENTSTACKDB128DUP(?)STACENDSDATASEGMENTSOURCEDBNDUP(?)RESULTDBN+1DUP(0)NAME0DB’INPUT1.DAT’,0NAME1DB’OUTPUT1.DAT’,0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXLEADX,SOURCE;數據區起始地址LEASI,NAME0;原始數據文件名MOVCX,N;字節數CALLLOAD;從INPUT1.DAT中讀取數據;****BEGIN****MOVDI,OFFSETRESULTMOVBX,0MOVCX,NMOVDL,(1)PRO:MOVAL,SOURCE[BX](2)AL,3OHMOV[DI],AL(3)ADDAL,DL(4)MOVDL.ALINCBX(5)JNZPRO(6);****END****LEADX,RESULT;結果數據區首址LEASI,NAME1;結果文件名MOVCX,N+1;字節數CALLSAVE;保存結果到文件RETSTARTENDPCODEENDSENDSTART標準答案:(1)0(2)SUB(3)INCDI(4)DAA(5)DECCX(6)MOV[DI],DL知識點解析:采用DL統計和,從源數據區取出數據后,減30H就轉換為二進制字節數,然后再累加和以后,通過十進制調整指令將和調整為BCD碼。每做一次循環就對CX減1,通過判斷CX是否為0來結束循環。最后還要把DL中的累加和存入結果單元。PC技術機試模擬試卷第3套一、程序設計題(本題共1題,每題1.0分,共1分。)1、編制一個程序,使其實現如下功能:將內存中連續存放的10個十六位二進制無符號數按照從小到大的順序排列。例如:內存中有:3456H,2345H,5643H,…(假設后面的7個數都大于5643H)結果為:2345H,3456H,5643H,…(后面跟7個字,按照從小到大的順序排列)。部分程序已經給出,其中原始數據由過程LOAD從文件INPUT.DAT中讀入以SOURCE開始的內存單元中。運算結果要求從RESULT開始的內存單元存放,由過程SAVE保存到文件OUTPUTDAT中。請填空BEGIN和END之間已給出的源程序使其完整,空白已經用橫線標出,每行空白一般只需要一條指令,但采用功能相當的多條指令亦可,考生也可以刪除BEGIN和END之間原有的代碼并自行編程來完成要求的功能。對程序必須進行匯編,并與IO.OBJ鏈接產生可執行文件,最終運行程序產生結果。調試中若發現整個程序中存在錯誤之處,請加以修改。[試題程序]EXTRNLOAD:FAR,SAVE:FARNEOU10SSEGSEGMENTSTACKDB256DUP(?)SSEGENDSDSEGSEGMENTSOURCEDWNDUP(?)RESULTDWNDUP(0)NAME0DB’INPUT.DAT’,0NAME1DB’OUTPUT.DAT’,0DSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEG,SS:SSEGSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DSEGMOVDS,AXLEADX,SOURCELEASI,NAME0MOVCX,N*2CALLLOAD;********BEGIN********MOVSI,OFFSETSOURCEMOVDI,(1)MOVCX,NAGAIN0:MOVAX,[SI]MOV[DI],AXADDSI,2ADDDI,2LOOPAGAIN0CLDMOVBX,N-1AGAIN1:MOVSI,OFFSETRESULTMOVCX,BXAGAIN2:LODSWCMP[SI],(2)JAENEXT(3)MOV[SI-2],AXNEXT:LOOP(4)DECBXJNZ(5);********END********LEADX,RESULTLEASI,NAME1MOVCX,N*2CALLSAVERETSTARTENDPCSEGENDSENDSTART標準答案:(1)OFFSETRESULT(2)AX(3)XCHG[SI],AX(4)AGAIN2(5)AGAIN1知識點解析:從整個程序可以看出,程序所采用的方法是先將從SOURCE開始的內存單元的內容送到從RESULT開始的內存單元中,然后對從RESULT內存單元開始的數據進行排序。程序第一個循環的作用是完成數據傳送,由此可以判斷傳送到DI中的應該是RESm。丁存儲單元的偏移地址,即第一個空白處應填OFFSETRESULT。當數據全部傳送到從RESULT開始的單元以后,便對其進行從小到大的排序。在排序的過程中,使用的是取字符串指令LODSW,所以比較的數應該在AX寄存器中,即第二個空應填AX。接下來的程序實現的是比較功能,程序采用的是逐項比較的算法,當后面的元素大于前面的元素時,直接進行下一次循環,而當后面的元素較小的話,就需要和前面的元素進行交換,因此需要填寫的指令是XCHG[SI],AX。當程序執行完一次排序以后,最大的數已經在最后面,因此下一次只需要對前N-1個數進行比較,并且循環應該從第一個數據開始,所以后兩個空應該分別填AGAIN2和AGAIN1。PC技術機試模擬試卷第4套一、程序設計題(本題共1題,每題1.0分,共1分。)1、請編制程序,其功能是:以SOURCE開始的內存區域存放著若干字節的數據,以’#’作為數據的結束標志。將其中的空格濾除,對每個非空格數據的最高位清0后依次存放到RESULT指示的區域,其后存放一個空格符(20),然后存放原來的空格個數,最后仍以’#’結束。例如:內存中有45H,20H,87H,20H,A5H,32H,20H,20H,20H,23H結果為45H,07H,25H,32H,20H,05H,23H部分程序已經給出,其中原始數據由過程LOAD從文件INPUT1.DAT中讀入SOURCE開始的內存單元中,轉換結果要求從RESULT開始存放,由過程SAVE保存到文件OUTPUT1.DAT中。請填空BEGIN和END之間已經給出的一段源程序使其完整,需填空處已經用橫線標出,每個空白一般只需要填一條指令或指令的一部分(指令助記符或操作數),也可以填入功能相當的多條指令,或刪去BEGIN和END之間原有的代碼并自行編程來完成所要求的功能。對程序必須進行匯編,并與IO.OBJ鏈接產生可執行文件,最終運行程序產生結果。調試中若發現整個程序中存在錯誤之處,請加以修改。試題程序:標準答案:(1)AGN11(2)’#’(3)INCDI(4)JMPAGN1(5)20H(6)[DI]知識點解析:此程序要實現以下功能:非空格數據最高位清0,以及統計空格符的個數。然后將處理后的數據存儲到內存區域,并以"20H",空格符個數及’#’結尾。要讀懂程序中的BL是存放空格符的個數。程序的堆棧段定義了一個128字節的堆棧區。堆棧段下面是數據段。數據段中定義了四個字節型變量,原始數據區SOURCE、結果數據區RESULT、原始數據文件名NAME0、結果數據文件名NAME1。數據段下面是代碼段,告訴匯編程序,代碼段、數據段和堆棧段分別屬于段寄存器CS、DS、SS。先將原始數據的偏移地址裝入到SI中,結果數據存放的偏移地址裝入到DI中。BL清0。接著將SI中內容送AL中。SI地址加1,準備取下一個字節。將AL與空格符比較,若相等,則轉向AGN11段;否則,轉向AGN2段。所以第(1)空填寫"AGN11"。AGN11段中,BL是記錄空格符的個數。當AL為空格符時,BL加1。接著轉向AGN1,繼續判斷下一個字符。AGN2段的第(2)空中,將AL與’#’比較,若AL=’#’,則數據已經搜索到’#’,搜索完畢,轉向DONE段;否則,用指令"ANDAL7FH"將AL字符最高位清0,并將結果AL存入到DI中。DI地址加1,無條件轉向AGN1段。所以第(3)空填寫“INCDI”,第(4)空填寫"JMPAGN1"。DONE這一段,是統計完所有字符后,將空格符存入到DI中。所以第(5)空填寫"20H"。接著將空格符個數BL存入到DI中。最后將字符’#’存入到DI中。所以第(6)空填寫[DI]。PC技術機試模擬試卷第5套一、程序設計題(本題共1題,每題1.0分,共1分。)1、請編制程序,其功能是:在遞增的有序字節數組中插入一個正整數,并按指定的數組個數存入內存區中。假設數組元素均為正數。例如,將02H插入下面的數組中:01H,03H,04H,05H…結果為01H,02H,03H,04H,05H…部分程序已經給出,其中原始數據由過程LOAD從文件INPUT1.DAT中讀入SOURCE開始的內存單元中,轉換結果要求從RESULT開始存放,由過程SAVE保存到文件OUTPUT1.DAT中。請填空BEGIN和END之間已經給出的一段源程序使其完整,需填空處已經用橫線標出,每個空白一般只需要填一條指令或指令的一部分(指令助記符或操作數),考生也可以填入功能相當的多條指令,或刪去BEGIN和END之間原有的代碼并自行編程來完成所要求的功能。對程序必須進行匯編,并與IO.OBJ鏈接產生可執行文件,最終運行程序產生結果。調試中若發現整個程序中存在錯誤之處,請加以修改。試題程序:標準答案:(1)AL(2)DL(3)SI(4)[BX+SI+1](5)REP知識點解析:此程序要實現的功能是:在遞增的有序字節數組中插入一個正整數,并按指定的數組個數存入內存區中。此程序是用直接插入法將關鍵字插入到一個數組中,插入前數組的長度為9,插入關鍵字后,數組長度為10。關鍵要理解:是將關鍵字和數組的最后一個數開始比較,然后再與倒數第二個、倒數第三個……逐個比較,直到找到了合適的插入位置為止。程序的數據段中定義了五個字節型變量:變量MIN、原始數據區SOURCE、結果數據區RESULT、原始數據文件名NAME0、結果數據文件名NAME1。數據段下面是堆棧段,定義了一個256個字節的堆棧區。最后是代碼段,告訴匯編程序,代碼段、數據段和堆棧段分別屬于段寄存器CS、DS、SS。假設要插入的數是X即2。先將原始數據的偏移地址裝入到BX中,SI賦值為N-2即日,將偏移地址BX加上SI,則得到偏移地址BX為8,接著將SI賦值為0,將要插入的數X送AX。LP段,先將AL即X與數組的最后一個數(第9個數)即BX+SI中的內容做比較,若AL大于等于第9個數,則轉向1NS處執行;否則,AL小于最后第9個數,則將第9個數即BX+SI中的內容賦給DL,再將DL存入到數組的最后一個位置即第10個數存放的地址中,它的偏移地址為BX+SI+I,這樣數組中原第9個數就存入到了數組的第十個位置了,成為該數組的最后一個數。然后,將SI減1,無條件轉向LP處執行,繼續將AL與原數組的倒數第二個數即偏移地址為BX+SI-1內容中的數相比較,比較后,再做不同的處理。從上面的分析來看,第(1)空填寫"AL",第(2)空填寫"DL",第(3)空填寫"SI"。INS段,是當AL大于等于第9個數時,則將AL即要插入的數X存入到數組的第十個位置上。如果AL不是與第9個數比較,而是與中間的某一個數如第六個數相比,AL大于第六個數,則將要插入的數AL存放到數組的第七個位置上。其他情況依次類推。所以第(4)空填寫"[BX+SI+1]"。接著,用CLD指令將方向標志DF清0,在存儲數組中的數據時,實現地址指針自動增量。將原始數據的偏移地址裝入到SI中,結果數據存放的偏移地址裝入到DI中。CX賦值為N,用于控制存儲數組中數據的次數。再用REPMOVSB指令將SI指定的存儲單元中的內容即數組中的10個數據裝入到DI指定的內存中。一共操作10次,就將10個數據都存儲完畢了。所以第(5)空填寫"REP"。PC技術機試模擬試卷第6套一、程序設計題(本題共1題,每題1.0分,共1分。)1、請編制程序,其功能是:內存中連續存放著20個十進制數字的ASCⅡ字符,把它們轉換成10個字節的壓縮型(組合型)BCD碼。例如:內存中有:31H(’1’),32H(’2’),33H(’3’),34H(’4’)…(共20個字節)結果為:21H,43H,…(共10個字節)部分程序已經給出,其中原始數據由過程LOAD從文件INPUT1.DAT中讀入SOURCE開始的內存單元中,運算結果要求從RESULT開始存放,由過程SAVE保存到文件OUTPUT1.DAT中。請填空BEGIN和END之間已給出的源程序使其完整,空白處已用橫線標出,每行空白一般只需一條指令,但采用功能相當的多條指令亦可,或刪去BEGIN和END之間原有的代碼并自行編程來完成所要求的功能。對程序必須進行匯編,并與IO.OBJ連接產生可執行文件,最終運行程序產生結果。調試中若發現整個程序存在錯誤之處,請加以修改。【試題程序】EXTRNLOAD:FAR,SAVE:FARNEQU10STACSEGMENTSTACKDB128DUP(?)STACENDSDATASEGMENTSOURCEDBN*2DUP(?)RESULTDBNDUP(0)NAME0DB’INPUT1.DAT’,0NAME1DB’OUTPUT1.DAT’,0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXLEADX,SOURCE;數據區起始地址LEASI,NAME0;原始數據文件名MOVCX,N*2;字節數CALLLOAD;從"INPUT1.DAT"中讀取數據;*******BEGIN********LEASI,SOURCELEADI,RESULTMOVCX,NNEXT:MOV(1),[SI](2)ANDAL,(3)MOVBL,AL(4)ADDSI,2PUSH(5)MOVCL,(6)SALAL,CLPOP(7)ADDAL,(8)MOV(9),AL(10)LOOPNEXT;********END********LEADX,RESULT;結果數據區首址LEASI,NAME1;結果文件名CALLSAVE;保存結果到文件RETSTARTENDPCODEENDSENDSTART標準答案:(1)AX(2)MOVBH,AH(3)0FH(4)MOVAL(5)CX(6)4(7)CX(8)BL(9)[DI](10)INCDI知識點解析:本題主要考查怎樣將數字的ASCⅡ字符進行壓縮成BCD碼。題目中所提供的程序是每次讀取兩個數字字符至AX,分別對這兩個字符進行處理,AL取低4位并存入BL中,AH左移4位,與此同時正好把高4位去掉并存入AL中,最后將AL和BL加在一起并存,放到結果數據區。PC技術機試模擬試卷第7套一、程序設計題(本題共1題,每題1.0分,共1分。)1、根據16位邏輯變量L的內容對內存單元中連續存放的十六個字符的數組SOURCE作如下處理:(1)若L的第i位為1,將SOURCE[i]的最高位置加偶校驗位(2)若L的第i位為0,SOURCE[i]不變例如:L=0005轉換之前:67H,61H,4EH,38H……轉換之后:E7H,61H,4EH,38H……部分程序已經在PROG1.ASM中給出,請填空BEGIN到END之間已經給出的源程序,使其完整(空白已經用橫線標出,每行空白一般只需要一條指令,但功能相當的多條指令亦可)或刪除BEGIN與END之間的原有代碼并自行編寫程序片段完成所需的功能。原有數據由過程LOAD從文件INPUT1.DAT中讀入SOURCE開始的內存單元中,結果要求從RESULT開始存放,由SAVE保存到OUTPUT1.DAT文件。對程序必須進行匯編,并與IO.OBJ連接產生PROG1.EXE執行文件,最終產生運行結果(無結果或結果不正確均不得分)。部分源程序如下:EXTRNLOAD:FAR,SAVE:FARNEQU16STACSEGMENTSTACKDB128DUP(?)STACENDSDATASEGMENTLDW?SOURCEDBNDUP(?)RESULTDBNDUP(0)NAME0DB’INPUT1.DAT’,0NAME1DB’OUTPUT1.DAT’,0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXLEADX,L;數據區起始地址LEASI,NAME0;原始數據文件名MOVCX,2+N;字節數CALLLOAD;從"INPUT1.DAT"中讀取數據****BEGIN****LEASI,SOURCELEADI,RESULTMOVCX,NMOVDX,(1)LO:MOVAL,[SI](2)L,DXJZSTOREANDAL,AL(3)STORE(4)STORE:MOV[DI],ALINCSIINCDI(5)LOOPLO*****END*****LEADX,RESULT;結果數據區首地址LEASI,NAME1;結果文件名MOVCX,N;結果字節數CALLSAVE;保存結果到文件RETSTARTENDPCODEENDSENDSTART相關知識:●測試指令指令格式:TESTR,R或TESTR,M或TESTM,R或TESTR,I或TESTM,R(其中R為寄存器,M為內存變量,I為立即數)。測試指令將兩個操作數進行邏輯乘操作,但并不把結果寫回目的操作數,我們若需要知道某個寄存器中第i位是否為1,可以與一個立即數(這個立即數的第i位為1,其他位為0)進行TEST運算,結果為0,則被測試位為0,否則被測試位為1。●測試寄存器中1的個數的奇偶性。可以將這個寄存器進行不改變其內容的邏輯乘運算,然后查看一下奇偶標志位即可。●對寄存器的內容進行位操作利用“AND”、“OR”運算可對寄存器或某個內存單元中相應的清0或置1。編程思路:第一步:分析本程序要求完成的功能。本程序要求完成以下功能:(1)從數據文件INPUT1.DAT中讀取16個字符存放在SOURCE開始的內存單元中。(2)將SOURCE開始的16個字符按邏輯尺L的內容決定是否在字符的最高位置1,然后依次放在RESULT開始的內存單元中。(1)將處理之后的字符串存入到OUTPUT1.DAT。第二步:用相應程序匯編實現其功能。(1)數據的讀取和存入題目中已經給出,只要完成16個字符的最高位置1操作即可。(2)對于一個數組的排序操作可按下面的方法進行。從0到15依次取得邏輯尺L的第i位的值,若為0,則不對SOURCE[i]作操作;否則,計算SOURCE[i]中1的個數,若為奇數則在SOURCE[i]的最高位置1,否則不作操作,然后將其存放在RESULT開始的內存單元中。這里我們仍然采用填空,而不重新編寫程序,采用填空的方式解題對于我們閱讀程序的能力會有所幫助。通過閱讀程序我們發現程序是采用循環的方式測試一個數的第i位是否為1(要么將被測試數進行移位操作,然后與1進行TEST運算,要么將1進行移位操作,與被測試數進行TEST運算均可獲得結果),然后根據第i位是否為1加偶校驗位。標準答案:(1)1(2)TEST(3)JP(4)ORAL,80H(5)SHRL,1或SHLDX,1知識點解析:暫無解析PC技術機試模擬試卷第8套一、程序設計題(本題共1題,每題1.0分,共1分。)1、請編制程序,其功能為:內存中存放著10個二進制數,需對此數組進行加密。方法為將前一個字節數(兩位十六進制數a1a2表示)的低位十六進制數a2與后一個字節數(兩位十六進制數b1b2表示)的高位十六進制數b1進行交換:第一個字節數的高位十六進制數與最后一個字節的低位十六進制數進行交換,加密后的結果存入內存。例如:內存中原始數據為:50H,61H,72H,83H,94H,…,E9H結果:90H,07H,18H,29H,3AH,…,85H部分程序已經給出,其中原始數據由LOAD過程從文件INPUT1.DAT中讀入從SOURCE開始的內存單元,轉換結果(要求從RESULT開始讀入)由SAVE過程保存到OUTPUT1.DAT文件中。請在BEGIN和END之間補充使其完整,完成要求的功能。或刪除BEGIN和END之間原有的代碼并自行編程來完成要求的功能。對程序必須進行匯編,并與IO.OBJ鏈接產生PROG1.EXE執行文件,最終產生運行結果。部分程序如下:;PROG1.ASMEXTRNLOAD:FAR,SAVE:FARNEQU10DSEGSEGMENTSOURCEDWNDUP(?)RESULTDWNDUP(0)NAME0DB’INPUT1.DAT’,0NAME1DB’OUTPUT1.DAT’,0DSEGENDSSSEGSEGMENTSTACKDB128DUP(?)SSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEG;SS:SSEGSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DSEGMOVDS,AXMOVES,AXLEADX,SOURCELEASI,NAME0MOVCX,NCALLLOAD;***BEGIN***MOVDI,0MOVSI,0MOVCX,NCONT:MOVAL,SOURCE[SI]MOVAH,ALANDAL,0FHANDAH,0F0HINCSICMPSI,N____________MOVSI,0ONE:MOVBL,SOURCE[SI]MOVBH,BLANDBL,0FHANDBH,0FOH____________MOVCX,4LI:SBRBH,1SHLAL,1LOOPL1______,CXORAH,BHORAL,BLCMPDI,0JNZSTOPE1MOVSOURCE[SI],ALDECSIMOVSOURCE[SI],AHINCSIJMPNEXTSTORE1:CMPDI,N-1JLSTORE2MOVRESULT[DI],AHMOVDI,0MOVRESULT[DI],ALJMPNEXTSTORE2:MOV______,AHMOV______,ALNEXT:INCDILOOPCONT;***END***LEADX,RESULTLEASI,NAME1MOVCX,NCALLSAVERETSTARTENDPCSEGENDSENDSTART標準答案:;***BEGIN***MOVDI,0MOVSI,0MOVCX,NCONT:MOVAL,SOURCE[SI]MOVAH,ALANDAL,0FH;取得低4位ANDAH,0F0H;取得高4位INCSICMPSI,NJBEONE;不是最后一個數,跳轉至ONEMOVSI,0ONE:MOVBL,SOURCE[SI]MOVBH,BLANDBL,0FHANDBH,0F0HPUSHCXMOVCX,4L1:SHRBH,1SHLAL,1LOOPL1;循環移位POPCXORAH,BH;加密運算ORAL,BL;加密運算CMPDI,0JNZSTORE1MOVSOURCE[S1),AL;交換位置DECSIMOVSOURCE[SI],AH;交換位置INCSIJMPNEXTSTORE1:CMPDI,N-1;處理的是最后一個數據?JLSTORE2;不是則跳轉至STORE2MOVRESULT[DI],AHMOVDI,0MOVRESULT[DI],ALJMPNEXTSTORE2:MOVRESULT[D1],AHMOVSOURCE[SI],ALNEXT:INCDI;結果數據指針加1LOOPCONT;繼續處理;***END***[INPUT1.DAT中的輸入數據]:50H,61H,72H,83H,94H,2BH,51H,11H,45H,E9H[輸出結果]:900718293245B1141E50知識點解析:暫無解析PC技術機試模擬試卷第9套一、程序設計題(本題共1題,每題1.0分,共1分。)1、請編制程序,其功能是:內存中連續存放的20個8位無符號數是一個自動抄表儀抄錄的20個用戶某月天然氣的使用量(立方米),天然氣費用的

溫馨提示

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

評論

0/150

提交評論