匯編語言程序設(shè)計習(xí)題集3635_第1頁
匯編語言程序設(shè)計習(xí)題集3635_第2頁
匯編語言程序設(shè)計習(xí)題集3635_第3頁
匯編語言程序設(shè)計習(xí)題集3635_第4頁
匯編語言程序設(shè)計習(xí)題集3635_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第四章匯編語言程序設(shè)計習(xí)題集一、單項選擇題1.用高級語言編寫的程序()。A.只能在基本種計算機上運行B.無需經(jīng)過編譯或解釋,即可被計算機直接執(zhí)行C.具有通用性和可移植性D.幾乎不占用內(nèi)存空間2.一般地,我們將計算機指令的集合稱為()。A.機器語言B.匯編語言C.模擬語言D.仿真語言3.我們通常所說的“裸機”指的是()。A.只裝備有操作系統(tǒng)的計算機B.不帶輸入輸出設(shè)備的計算機C.未裝備任何軟件的計算機D.計算機主機暴露在外4.計算機的軟件系統(tǒng)一般分為()兩大部分。A.系統(tǒng)軟件和應(yīng)用軟件C.程序和數(shù)據(jù)B.操作系統(tǒng)和計算機語言D.DOS和Windows5.計算機系統(tǒng)軟件中的匯編程序是一種()。A.匯編語言程序B.編輯程序C.翻譯程序D.將高級語言轉(zhuǎn)換成匯編程序的程序6.假設(shè)V1和V2是用DW定義的變,量下列指令中正確的是:()A.MOVV1,20HC.MOVAL,V1B.MOVV1,V2D.MOV2000H,V27.PC機所A.ASCII碼8.8086CPU中斷號為8的中斷矢量存放在()。使用的B.掃描碼標(biāo)準(zhǔn)鍵盤向主機發(fā)送的代碼是()C.BCD碼D.格雷碼A.0FFFFH:0008HC.0000H:0020HB.0000H:0008HD.0020H:0000H9.已知變量VAR為字型,則TYPEVAR=()。A.1B.2C.3D.410.匯編語言源程序經(jīng)MASM匯編后可直接生成的文件是()。A..LSTB..CRFC..EXED..OBJE..ASMF..MAP11.段定義語句以(B)語句結(jié)束。A.ENDB.ENDSC.ENDPD.ENDM12.若主程序段中數(shù)據(jù)段名為DATA,對數(shù)據(jù)段的初始化操作應(yīng)為()。A.MOVAX,DATAB.MOVAX,DATAMOVES,AXMOVDS,AXC.PUSHDSD.MOVDS,DATA13..EXE文件產(chǎn)生在()之后。A.匯編B.編輯C.用軟件轉(zhuǎn)換D.連接14.定義雙字變的量定義符是()。A.DWB.DQC.DDD.DT15.假設(shè)VAR為變,量指令MOVBX,OFFSETVAR的尋址方式是()。A.直接尋址B.間接尋址C.立即尋址D.存儲器尋址16.執(zhí)行下列指令:STR1DW‘AB’STR2DB16DUP(?)CONTEQU$-STR1MOVCX,CONTMOVAX,STR1

HLT后寄存器CL的值是()。A.12HB.0EHC.0FHD.10H()17.與MOVBX,OFFSETVAR指令完全等效的指令是。A.MOVBX,VARC.LESBX,VARB.LDSBX,VARD.LEABX,VAR18.在段定義時,如果定位類型用戶未選擇,就表示是隱含類型,其隱含類型是()。A.WORDB.PAGEC.BYTED.PARA19.BUFDW10HDUP(3DUP(2,10H),3,5)()上述語句匯編后,為變量BUF分配的存儲單元字節(jié)數(shù)是。A.80HB.100HC.124D.192()20.在匯編語言程序的開發(fā)過程中使用宏功能的順序是。A.宏定義,宏調(diào)用B.宏定義,宏展開C.宏定義,宏調(diào)用,宏展開D.宏定義,宏展開,宏調(diào)用21.匯編語言源程序中,每個語句由四項組成,如語句要完成一定功能,那么該語句中不()可省略的項是。A.名字項B.操作項C.操作數(shù)項D.注釋項22.編寫分支程序,在進行條件判斷前,可用指令構(gòu)成條件,其中不能形成條件的指令有()。A.CMPB.SUBC.ANDD.MOV()23.為使CX=-1時,轉(zhuǎn)至MINUS而編制了一指令序列,其中錯誤的序列是。A.INCCXJZMINUSB.SUBCX,OFFFFHJZMINUSC.ANDCX,OFFFFHJZMINUSD.XORCX,OFFFFHJZMINUS24.假設(shè)V1和V2是用DW定義的變量,下列指令中正確的是().A.MOVV1,20HC.MOVAL,V1B.MOVV1,V2D.MOV2000H,V2二.多項選擇題(每題有多個正確答案,選出所有正確答案,多選.少選均不得分)1.變量定義的偽指令助記符有:()。A.DBB.DWC.DDD.DFE.DQF.DT2.主程序與子程序之間傳遞參數(shù)可通過()進行。A.堆棧B.存儲器單元C.通用寄存器D.指令隊列E.其他3.交換寄存器SI.DI的內(nèi)容,正確的程序段是()。

A.PUSHSIPUSHDIB.PUSHSIPUSHDIPOPSIPOPDIPOPDIPOPSIC.MOVAX,SIMOVSI,AXMOVDI,AXD.MOVAX,SIMOVBX,DIXCHGBX,AX4.過程(子程序)調(diào)用的形式有()。A.段內(nèi)直接B.段內(nèi)間接C.段間直接D.段間間接三.填空題23.當(dāng)要求段的首地址只能被16整除時,需選擇的定位方式為___。2.程序段VAR1DB?VAR2DW20DUP(58H,2DUP(?))1.VAR3DB‘ABCD’...MOVAX,TYPEVAR1MOVBX,TYPEVAR2MOVCX,LENGTHVAR2MOVDX,SIZEVAR2MOVSI,LENGTHVAR3AX=,BX=,CX=,DX=,SI=。3.段定義偽指令語句用語句表示開始,以語句表示結(jié)束。4.ARRAYDW10DUP(5DUP(4DUP(20H,40H,60H)))語句執(zhí)行后共占字節(jié)存儲單元。5.匯編語句中,一個過程有NEAR和FAR兩種屬性。NEAR屬性表示主程序和子程序,F(xiàn)AR屬性表示主程序和子程序。6.DOS系統(tǒng)功能號應(yīng)放在ah寄存器中。7.子程序又稱過程,它可以由語句定義,由ret語句結(jié)束,屬性可以是或。8.與指令MOVBX,OFFSETBUF功能相同的指令是。9.設(shè)有偽指令A(yù)DB01H,23H,則執(zhí)行指令BDW2DUP(0)MOVAL,TYPEA后,(MOVBL,SIZEB后,(BL)=。10.根據(jù)下面的指令和偽指令序列,AX寄存器的內(nèi)容。AL)=;TABDB1,2,3,4,5,6ENTRYEQU3MOVBX,OFFSETTABADDMOVBX,ENTRYAX,WORDPTR[BX]11.將下列文件類型填入空格:(1).obj(2).exe(3).crf(4).asm(5).lst(6).map編輯程序輸出的文件有;連接程序輸出的文件有。12.數(shù)據(jù)段中有以下定義:ARRAY1EQU16HARRAY2DW16H請指出下面兩條指令的尋址方式:MOVAX,ARRAY1;尋址方式:MOVAX,ARRAY2;尋址地址:四、判斷)(正確的在括號畫“√”,錯誤的畫“×”1.匯編語言程序語言必須由四部分組成。()2.匯編語言源程序中所使用的變量,必須在代碼段中先定義,后引用。()3.在匯編語言中,一般偽指令語句放在代碼段中()4.字表達式。()5.6.7.偽指令是指示性語句,不產(chǎn)生機器目標(biāo)代碼。邏輯操作符AND、OR、XOR或NOT,只能用于數(shù)符號定義語句不占內(nèi)存單元,變量定義語句占內(nèi)存單元。()匯編語言源程序中至少有一個代碼段。()()8.偽指令BVAR:DB‘ABCD’,200DUP(?)是合法偽指令。()9.偽指令DAT1DB7,8,9,10與DAT1DW07H,08H,09H,0AH所預(yù)置的數(shù)據(jù)是一()10.8086CPU的中斷向量表共占有1024個字(節(jié)00000H-003FFH),所以共有256個中樣的。斷。()五.程序分析題1.執(zhí)行下面的程序段后,CX的內(nèi)容是()DAT1DB12H,34H,56HN=$-DAT1MOVCX,N2.執(zhí)行下面的程序段后,AX的內(nèi)容是(),BX的內(nèi)容是().M1DB12H,34HSI,OFFSETM1AX,0AL,[SI]BX,WORDPTR[SI]MOVMOVMOVMOV3.源程序如下:STRDB‘ABCDEF0123456789’MOVBX,OFFSETSTRMOVAL,65HPUSHAXANDAL,0FHXLATMOVDL,ALPOPAXADDAL,08HDAAMOVDH,ALCMPDH,32H執(zhí)行上面程序段后,(DL)=(),(DH)=()。4.源程序如下:MOVAX,SEGTABLE;TABLE為表頭MOVES,AXMOVDI,OFFSETTABLEMOVAL,‘0’MOVCX,100CLDREPNESCASB問:1)該段程序完成什么功能?()2)該段程序執(zhí)行完畢之后,ZF和CX有幾種可能的數(shù)值?各代表什么含義?()5.源程序如下:DATASEGMENTS9DB0,1,2,3,4,5,6,7,8,9DATAENDS┇LEASI,S9LEA,DI,S9+1MOVCX,5LOP:MOVAL,[SI]XCHGAL,[DI]MOV[SI],ALADDSI,2ADDDI,2LOOPLOP(上述程序段運行后,S9開始的10個字節(jié)存儲單元內(nèi)容是什么?)6.源程序如下:MOVAL,38HMOVBL,49HCALLSUBO

INCALDECCL┇SUBOPROCADDAL,BLMOVCL,ALDAARETSUBOENDP上述程序段運行后,AL=(7.源程序如下:DA3EQUWORDPTRDA4DA4DB0ABH,89H┇),CL=()SHRDA3,1MOVDX,DA3SHLDA4,1MOVCX,DA3上述程序段運行后,CX=(),DX=()8.下面程序是將10個8位無符號數(shù)按遞減次序排序,請將程序填寫完整。DATASEGMENTARRAYDB05H,78H,F(xiàn)FH,7BH,00HDB8CH,20H,A0H,F(xiàn)0H,60HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATAMAINPROCFARSTART:PUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXAB1:MOVSI,OFFSETARRAYMOVBL,0MOVCX,10

()AGAIN:MOVAL,[SI]INCSICMPAL,[SI]()CD1MOVAH,[SI]MOV[SI],ALDECSIMOV[SI],AHINCSIMOVBX,1CD1:LOOPAGAINDECBL()AB1RETMAINENDPCODEENDSENDSTART9.下面的程序段是統(tǒng)計AX中16位二進制數(shù)1的個數(shù),并將結(jié)果放在CX中,填空使程序完成預(yù)定的功能。XORL1:ANDJZCX,CXAX,AXSTOPSHLAX,1()INCL2:JMPSTOP:HLTCXL110.下面的程序段是求8個無符號數(shù)累加和,最后結(jié)果用雙字表示,存在YAH和YAL單元,填空使程序完成預(yù)定的功能。DATATABLEYAHSEGMENTDW34,789,67,78,345,89,78,60DWDW00YALDATACODEENDSSEGMENTASSUMECS:CODE,DS:DATASTART:MOVMOVAX,DATADS,AXMOVDX,0XORAX,AX;清AXMOVMOVBX,OFFSETTABLECX,8CLCLP:ADD((AX,[BX]))DON:INCINCBXBXLOOPLPMOVYAL,AX;存和MOVMOVINTYAH,DXAH,4CH21HCODEENDSENDSTART11.兩個非組合BCD數(shù)(BY0,BY1)進行十進制減法,并將差求絕對值后保存在SD單元。MOVCMPJNCAL,BY0AL,BY1L1MOVMOVMOVAH,BY1BY1,ALAL,AHL1:SUBAL,BY1()MOVSD,AL12.附加段有一塊長50個字的數(shù)據(jù)區(qū),首址為DEST,現(xiàn)將數(shù)據(jù)區(qū)初始化為0FFFFH。LEADI,DESTMOVCX,50*2CLDMOVAL,0FFH()13.下面是某數(shù)據(jù)段定義,在表中標(biāo)出各字節(jié)單元的值,并回答問題。DATAPASEGMENTDB1PBDW5PPEQU2PCDBPPDUP(0)DATAENDS偏移值+0+1+2+3+401H05H00H00H00HTYPESIZESIZEPA=()PA=()PC=()TYPESIZEPB=()PB=()14.源程序如下:MOVCL,4MOVAX,[2000H]SHLAL,CLSHRAX,CLMOV[2000H],AX試問:若程序執(zhí)行前,數(shù)據(jù)段內(nèi)(2000H)=09H,(2001H)=03H,則執(zhí)行后有(2000H)=_____,(2001H)=______。本程序段的功能_________________________。15.閱讀程序,并完成以下要求(10分)MOVCL,04HMOVDX,1234HMOVAX,5678HSHLDX,CLMOVBL,AHSHLSHRORAX,CLBL,CLDL,BLA)(DX)=,(AX)=B)由上面的結(jié)果可以看出該程序的功能是:16.源程序如下:(6分)MOVCX,9MOVAL,01HMOVSI,1000HNEXT:MOV[SI],ALINCSISHLAL,1LOOPNEXT試問:執(zhí)行本程序后有:AL=_____;SI=______;CX=______;本程序的功能是______________________________。17.設(shè)某數(shù)據(jù)段:DATASEGMENTORG20HNUM1=8NUM2=NUM1+10HDA1DB'COMPUTER'DB0AH,0DHCOUNTEQU$-DA1DA2DW'CO','MP','UT','ER'DATAENDS試回答:(1)DA1的偏移地址是:_________________(2)COUNT的值是(3)DA2+5字節(jié)單元的內(nèi)容是18.從BUF開始的11個單元中存放著11個整數(shù),找出這R中。__________________________________________________11個數(shù)中正數(shù)并且是偶數(shù)的個數(shù)存入DATASEGMENTBUFDB–2,5,-3,6,100,0,-20,-9,8,-110,21N=RDW?DATAENDSCODESEGMENTBEGIN:MOVAX,DATALEABX,BUFMOVCX,NLOPA:CMP[BX],BYTEPTR0TEST[BX],BYTEPTR1INCAXNEXT:INCBXDECCXMOVR,AXMOVAH,4CHINT21HCODEENDSEND19.對于下面兩個數(shù)據(jù)段,偏移地址為10H和11H的兩個字節(jié)中的數(shù)據(jù)是一樣的嗎?為什么?DTSEGSEGMENT||DTSEGSEGMENTORG10HORG10HDATA1DB72H|DATA1DW7204HDB04HDTSEGENDS|DTSEGENDS|()。20.內(nèi)存單元初始化內(nèi)容為:(2000H:2A00H)--(2000H:2A02H)分別為0FH、0EH、0DH,(2000H:2A10H)--(2000H:2A12H)分別為09H、08、07H。執(zhí)行下列程序后,請?zhí)顚懘鎯卧膬?nèi)容:MOVAX,2000HMOVDS,AXMOVES,AXMOVSI,2A10HMOVDI,2A00HCLDMOVCX,3L:MOVAL,[DI]MOVSBDECSIMOV[SI],ALINCSILOOPLHLT(1)2000H:2A00H=。(2)2000H:2A11H=。(3)2000H:2A12H=。六.簡答題1.有變量定義的偽指令如下:NUMSDW18DUP(4DUP(5),23)VARDB'HOWAREYOU!',0DH,0AH試問:NUMS、VAR變量各分配了多少存儲字節(jié)?1、在指令系統(tǒng)中,段內(nèi)、段間返回均為RET指令。試回答:(1)執(zhí)行段內(nèi)返回RET指令時,執(zhí)行的操作是?(2)執(zhí)行段間返回RET指令時,執(zhí)行的操作是?ARYDW10DUP(?)3.┇MOVAL,TYPEARY.;MOVBL,LENGTHARY;MOVCL,SIZEARY;上述MOV指令序列執(zhí)行后的結(jié)果是什么?4.已知某數(shù)據(jù)段定義如下:DSEGSEGMENTORG00HDAT1DW4,26ORG06HDAT2DW5678H‘AB’DBDSEGENDS要求:用內(nèi)存分配示意圖,說明該數(shù)據(jù)段的存儲器分配情況。5.讀程序,并回答問題DATASEGMENTTABLEDB0,1,4,9,16,25,36,49,64,81,100XADDB3YADDB?DATAENDSSTACKSEGMENTSTACK'STACK'STADB16DUP('STACK')STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKMAINPROCFARSTART:PUSHDSMOVPUSHAX,0AXMOVMOVAX,DATADS,AXMOVMOVBX,OFFSETTABLEAH,0MOVAL,XADADDBX,AXMOVAL,[BX]MOVADDMOVYAD,ALAL,30HDL,ALMOVAH,02HINT21HRETMAINENDPCODEENDSENDSTART(1).在存儲器中分別為table、xad、yad、sta分配多少字節(jié)單元?(2).程序運行后,xad、yad,單元中的值為多少?屏幕上顯示的字符是什么?。6.下面的程序是將表中元素按值的大小升序排序。要求填空(1)和(2)使程序按預(yù)定目標(biāo)運行;(3).程序運行后,顯示結(jié)果為什么?CODESEGMENTASSUMECS:CODESTAR:JMPSSTTASCIIDB'GFBACXYD6291','$'COUNT=$-ASCII-2SSTT:MOVAX,CSMOVMOVMOVXORDS,AXDL,COUNTDH,1;設(shè)交換標(biāo)志=1BX,BXL0:ORDH,DH

JZMOVMOVSUBL3DH,0CX,COUNTCX,BXMOVL1:MOVINCSI,OFFSETASCIIAL,[SI]SICMPAL,[SI]JBEL2;小于等于轉(zhuǎn)XCHGAL,[SI](1)MOV[DI-1],ALMOVDH,1L2:LOOP(2)L1INCDECBXDLJNZL0L3:MOVMOVDX,OFFSETASCIIAH,9INTMOVINT21H21HAH,4CH;返回DOSCODEENDPENDSTAR7.閱讀下面的程序.MODELSMALL.386,回答問題.STACK.DATASTRINGDB'AssembleLanguageispowerful'N=$-STRINGNEWSTRDBNDUP(0).CODE.STARTUPMOVCX,NLEASI,STRINGLEADI,NEWSTR.REPEATMOVAL,[SI].IF(AL>='a')&&(AL<='z')SUBAL,32.ENDIFMOV[DI],ALINCSIINCDI.UNTILCXZ.EXITEND【問題】寫出程序功能,程序執(zhí)行后,從NEWSTR開始的N個字節(jié)中的內(nèi)容是什么?

七.編程題1.將AL中的數(shù),高4位保持不變,低4位置零。2.從1000H單元開始,連續(xù)存放100個字符串,要查出第一個$符號,編程序?qū)⒌谝粋€$字符地址送BX中。3.從地址2100H單元開始,連續(xù)存放8個字節(jié)的無符號數(shù),現(xiàn)在用BX作地址指針,編程序求和,并將結(jié)果存在210AH單元中。4.將連續(xù)存放在2000H單元開始的兩個16位無符號數(shù)相乘,結(jié)果存放在兩個數(shù)之后。5.檢查AX中的第2位(bite2),為零時,把DH置0;為1時,把DH置1。6.假設(shè)某班80個學(xué)生某門課的成績存放在數(shù)據(jù)區(qū)BUF開始的字節(jié)單元中,請編程統(tǒng)計小于60分的人數(shù),6080分的人數(shù),大于80分的人數(shù),并將統(tǒng)計結(jié)果分別存于S1、S2、S

溫馨提示

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

評論

0/150

提交評論