大學學年第一學期期末試卷及答案 匯編語言程序設計_第1頁
大學學年第一學期期末試卷及答案 匯編語言程序設計_第2頁
大學學年第一學期期末試卷及答案 匯編語言程序設計_第3頁
大學學年第一學期期末試卷及答案 匯編語言程序設計_第4頁
大學學年第一學期期末試卷及答案 匯編語言程序設計_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

試卷編號:(B)卷課程名稱:匯編語言程序設計考試形式:閉卷適用班級:計算機級姓名:學號:班級:學院:信息工程學院專業(yè):考試日期:題號一二三四五六七八九十總分累分人簽名題分2012182030100得分單項選擇題(每題2分,共20分)1、執(zhí)行下列指令后,正確的結果是()。MOVAL,100MOVBL,-2[A]AL=100H;BL=02H[B]AL=64H;BL=0FEH[C]AL=64H;BL=82H[D]AL=100H;BL=0FEH2、下列對指令JMPBX說法正確的是()。[A]不合法[B]合法,BX中應為目的轉移地址的段地址[C]合法,BX中應為目的轉移地址的偏移地址[D]合法,BX中應為子程序入口地址3、條件轉移指令JB的測試條件為()[A]ZF=0[B]CF=0[C]ZF=1[D]CF=14、設SP的初值為3000H,AX=2000H,BX=4400H,執(zhí)行PUSHAX,PUSHBX,POPAX指令后,SP,AX,BX分別等于()。[A]3002H,4400H,2000H[B]2FFEH,4400H,4400H[C]2FFCH,2000H,4400H[D]2FFEH,4400H,2000H5、如果有如下數(shù)據(jù)定義:A1DB20HA2DW4756H則執(zhí)行指令:MOVAX,WORDPTRA1后,(AX)=()。[A]4720H[B]2047H[C]2056H[D]5620H6、執(zhí)行下面指令序列后,結果是()。

MOVAL,82HCBW[A]AX=0FF82H[B]AX=8082H[C]AX=0082H[D]AX=0F82H7、中斷向量是()。[A]CPU響應中斷時IP和CS內(nèi)容[B]中斷斷點的地址[C]中斷服務程序的入口地址[D]中斷服務程序的返回地址8、根據(jù)下面定義的數(shù)據(jù)段:DESGSEGMENTDAT1DB‘1234H’DAT2DW5678HADDREQUDAT2-DAT1DESGENDS執(zhí)行指令MOVAX,ADDR后,AX寄存器中的內(nèi)容是()。[A]5678H[B]7856H[C]1234H[D]0005H9、若有BUFDW1234,則可將數(shù)據(jù)02H取到AL寄存器中的指令是()。[A]MOVALBYTEPTRBUF+1[B]MOVALBYTEPTRBUF+2[C]MOVALBYTEPTRBUF+3[D]MOVALBYTEBUF210、定義變量ARRAYDW5,6,$+3,3,4,$+3假如匯編時ARRAY分配的偏移地址為0074H則匯編后最后一個字單元的內(nèi)容是()。[A]0081H[B]008BH[C]007EH[D]007DH1、B2、C3、D4、B5、D6、A7、C8、D9、C10、A二、指出下列指令的出錯原因,并改正。(每小題2分,共12分)SARAX,BL移位次數(shù)若大于1,應該使用CL寄存器,改正:SARAX,1或SARAX,CLINCBX,1該指令為單操作數(shù)指令,改正為:INCBXADD[BX],[SI]兩個操作數(shù)不能同為存儲器操作數(shù),且兩個操作數(shù)的數(shù)據(jù)類型不確定,改正為:MOVAX,[BX]ADDAX,[SI]或:MOVAL,[BX]ADDAL,[BP+SI];MOVCS,DX代碼段寄存器CS不能作目的操作數(shù),改正為MOVDS,AXIMUL4乘法指令源操作數(shù)不能是立即數(shù),改正為MOVCL,4MULCL;MOV[BX],8000H答:目的操作數(shù)的類型不確定,改正為:MOVWORDPTR[BX],8000H三、程序填空題(注意:每空只能填一條指令,并注釋說明所填指令的作用,每空3分,共18分)1、下面程序查找字符串string中是否有字母“A”,有則AL=0,否則AL=-1,請將程序填寫完整。MOVCX,20MOVSI,0(1)__MOVAL,’A’_;將’A’字符事先存入寄存器中,便于比較NEXT:CMPAL,STRING[SI](2)_JEYESA_;逐個比較字符串中的字母是否為’A’,是則跳到YESA去執(zhí)行

INCSILOOPNEXTNOA:MOVAL,-1(3)_JMPDONE_;_使程序不再執(zhí)行YESA分支YESA:MOVAL,0DONE:………;2、以BUF為首址的字節(jié)單元中,存放了COUNT個無符號數(shù),下面程序段是找出其中最大數(shù)并送入MAX單元中,請將程序填寫完整。BUFDB5,6,7,58H,62,45H,127,……COUNTEQU$-BUFMAXDB?┇MOVBX,OFFSETBUF(1)_MOVCX,COUNT-1;設置數(shù)據(jù)兩兩比較的次數(shù)MOVAL,[BX]LOP1:INCBX(2)_CMPAL,[BX];AL與其它數(shù)據(jù)比較,看它是否仍然是最大數(shù)

JAENEXTMOVAL,[BX]NEXT:DECCX(3)__JNZLOP1;_判斷是否已經(jīng)到了循環(huán)次數(shù),到了則AL即為最大數(shù),否則繼續(xù)循環(huán)MOVMAX,AL四、程序分析題(每題4分,共20分)已知DX:AX中存放32位數(shù)89ABCDEFH,試分析下面的程序段,回答問題:MOVCL,04SHLDX,CLMOVBL,AHSHLAX,CLSHRBL,CLORDL,BL該程序段的功能是什么?答:將DX:AX邏輯左移4個二進制位(乘以16)(2)該程序段執(zhí)行完后,(AX)=__0DEF0H_(DX)=__9ABCH___。2、下述程序段ORG3040HYY1DB30H,40HYY2DW3040H.....MOVBX,OFFSETYY1MOVAX,[BX]MOVCL,BYTEPTRYY2+1SUBCH,CHADDCX,TYPEYY2運行后,AX=__4030H__;CX=__0032H__;3、下面程序段的功能是什么?從鍵盤輸入字符“4”,執(zhí)行程序段之后有什么結果?STRINGDB‘ABCDEFGHIJ’……MOVAH,01H;從鍵盤輸入字符1~9INT21HANDAL,0FHDECALXORAH,AHMOVBX,OFFSETSTRINGADDBX,AXMOVDL,[BX];顯示輸出MOVAH,02HINT21H功能是:從鍵盤讀入1~9之間的一個數(shù)字,然后顯示對應A~J中的一個字符。例如:從鍵盤輸入字符“4”,程序段將顯示字符“D”。4、程序段如下:BLKDB46,84,34,-5,20,122,73.....MOVCX,7LEASI,BLKNEXT:MOVAL,[SI]INCSITESTAL,81HLOOPZNEXTMOVBL,[SI]該程序段運行后,AL=__46___;BL=___84__;5、設X、Y、Z、W均為16位帶符號數(shù),分別裝在X、Y、Z、V存儲單元中,閱讀如下程序段,得出它的運算公式,并說明運算結果存于何處。運算公式:[V-(X運算公式:[V-(X×Y+Z-540)]÷X結果商存于何處?余數(shù)存于何處?商存于AX中,余數(shù)存在DX中IMULYMOVCX,AXMOVBX,DXMOVAX,ZCWDADDCX,AXADCBX,DXSBBBX,0MOVAX,VCWDSUBAX,CXSBBDX,BXIDIVX五程序設計題(共30分)1、編寫程序段,用DOS的1號功能調(diào)用通過鍵盤輸入一字符,并判斷輸入的字符。如字符是“Y”,則轉向YES程序段;如字符是“N”,則轉向NO程序段;如是其他字符,則轉向DOS功能調(diào)用,重新輸入字符。(YES和NO分別是兩程序段入口處的標號)(本小題8分)KEY_IN:MOVAH,1 INT21H CMPAL,’Y’ JEYES CMPAL,’N’ JENO JMPKEY_IN)2、編寫一個完整的源程序完成如下功能:比較兩個字符串STRING1和STRING2所含字符是否完全相同,若相同則顯示“MATCH”,若不同則顯示“NOMATCH”。(本小題共10分)答:DATASEGMENTSTRING1DB‘MOVETHECURSORBACKWARD.’STRING2DB‘MOVETHECURSORBACKWARD.’MESS1DB‘MATCH!’,13,10,’$’MESS1DB‘NOMATCH!’,13,10,’$’DATAENDSPROGNAMSEGMENTMAINPROCFARASSUMECS:PROGNAM,DS:DATA,ES:DATASTART:PUSHDSSUBAX,AXPUSHAXMOVAX,DATAMOVDS,AXMOVES,AXLEASI,STRING1LEADI,STRING2CLDMOVCX,25REPZCMPSBJZMATCH)LEADX,MESS2JMPSHORTDISPMATCH:LEADX,MESS1DISP:MOVAH,09INT21HRETMAINENDPPRONAMENDSENDSTART3、請編寫一個完整的匯編語言源程序,要求如下:[1]數(shù)據(jù)段定義一個月份變量,存放數(shù)據(jù)1~12之間的月份;它對應12個月份的英文縮寫,JAN、FEB、MAR、APR、MAY、JUN、JUL、AUG、SEP、OCT、NOV、DEC。[2]主程序?qū)⒃路輦魉徒o子程序。[3]子程序提供對應月份的英文縮寫所在的偏移地址。[4]主程序顯示這個月份的英文縮寫。(12分)STACKSEGMENTSTACK DB1024DUP(0) STACKENDS DATASEGMENT MNUMDB4 MONTHDB‘JAN’,‘FEB’,‘MAR’,‘APR’,‘MAY’DB‘JUN’,‘JUL’,‘AUG’,‘SEP’,‘OCT’DB‘NOV’,‘DEC’ DATAENDS CODESEGMENT‘CODE’ASSUMECS:CODE,DS:DATA,SS:STACK START:MOVAX,DATA MOVDS,

溫馨提示

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

評論

0/150

提交評論