《匯編語言程序設(shè)計(jì)》期末復(fù)習(xí)題及答案_第1頁
《匯編語言程序設(shè)計(jì)》期末復(fù)習(xí)題及答案_第2頁
《匯編語言程序設(shè)計(jì)》期末復(fù)習(xí)題及答案_第3頁
《匯編語言程序設(shè)計(jì)》期末復(fù)習(xí)題及答案_第4頁
《匯編語言程序設(shè)計(jì)》期末復(fù)習(xí)題及答案_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

《匯編語言程序設(shè)計(jì)》期末復(fù)習(xí)題及答案《匯編語言程序設(shè)計(jì)》期末復(fù)習(xí)題及答案一、選擇(30題).下列是8位帶符號二進(jìn)制數(shù)的補(bǔ)碼,其中最大的是(B)。B、00000001.在一段匯編語言程序中多次調(diào)用另一段程序,用宏指令比用子程序?qū)崿F(xiàn)(C)C、占內(nèi)存空間大,但速度快.數(shù)據(jù)定義為:EEDB3,4CCDW3456H,6789H執(zhí)行指令“MOVCX,WORDPTREE+1”后,(CX)=(B)5604H.有如下指令序列:MOVAL,95HMOVCL,2SARAL,CL上述指令序列執(zhí)行后,AL的內(nèi)容是(D)D、0E5H.設(shè)A=186i0,B=2738,C=0BB16,把這三個(gè)數(shù)看成無符號數(shù),則它們之間的關(guān)系是(D)D、A<B=C.用一條指令實(shí)現(xiàn)寄存器BX和SI的內(nèi)容相加,并將結(jié)果送入AX中,這條指令是(D)D、LEAAX,[BX][SI].要從端口1234H中讀入8位數(shù)據(jù),其指令應(yīng)是(C)MOVDX,1234HINAL,DX.循環(huán)控制指令LOOPNZ/LOOPNE繼續(xù)執(zhí)行循環(huán)的條件是(B)B、CXW0且ZF=O.8088/8086存儲器分段,每個(gè)段不超過(D)D、64K個(gè)字節(jié).表示過程定義結(jié)束的偽指令是(A)A、ENDP.用來存放下一條將要執(zhí)行的指令代碼段地址的段寄存器是(D)D、CS.假定(SS)=1000H,(SP)=01OOH,(AX)二5609H,執(zhí)行指令PUSHAX后,存放數(shù)據(jù)56H的物理地址是(D)100FFH13.執(zhí)行“SUBAX,[BP][DI]”指令,取源操作數(shù)時(shí),使用的物理地址表達(dá)式是(A)16*SS+BP+DI.設(shè)AX中有一帶符號數(shù)8520H,執(zhí)行“SARAX,r指令后,AX中的值是(C)C、0C290H.設(shè)(BX)=1234%(DS)=2000H,(21234H)二5678H,則指令“LEASI,[BX]”執(zhí)行后的結(jié)果是:(B)SI=1234H.測試BL中的數(shù)是否為負(fù)數(shù),若為負(fù)數(shù)則轉(zhuǎn)移至AA1處,橫線處的指令應(yīng)為(A)A、JNE.設(shè)DF=O,(SI)=20H,(CX)=10,執(zhí)行“REPLODSW”指令后,SI中的內(nèi)容是(C)C、34H.在程序執(zhí)行過程中,IP寄存器中始終保存的是(B)B、下一條指令的首地址.設(shè)SP初值為2000H,執(zhí)行指令"POPAX”后,SP的值是(A)A、2002H.若AX=3500H,CX=56B8H,當(dāng)ANDAX,CX指令執(zhí)行后,AX=(A)A、1400H.匯編源程序時(shí),出現(xiàn)語法錯(cuò)誤的語句是(A)A、MOVDS,1200H.將數(shù)據(jù)1234H存放在存儲單元中的偽指令是(C)DATA1DB34H,12H23.下面指令執(zhí)行后,可能改變AL寄存器內(nèi)容的指令是(D)ANDAL,BL.操作數(shù)地址存放在寄存器的尋址方式稱為(B)B、寄存器間接尋址.用戶為了解決自己的問題,用匯編語言所編寫的程序,稱為(B)B、匯編語言程序.用DOS功能調(diào)用時(shí),子功能調(diào)用的編號應(yīng)放在(C)C、AH.提供串指令中目的操作數(shù)地址的是(C)C、ES:[DI]28.在寄存器間接尋址方式下,能夠提供有效地址的寄存器有(B)B、BX,BP,SI,DI.已知某操作數(shù)的物理地址是2117AH,則它的段地址和偏移地址可能是(A)A、2025:0F2A.中斷向量表中的每個(gè)中斷向量所占內(nèi)存空間為:(B)B、4個(gè)字節(jié)二、填空(30題).在用直接尋址方式尋址操作數(shù)時(shí),系統(tǒng)對段地址的默認(rèn)值在段寄存器DS中。參見P40.與指令"NEGAX”功能等效的兩條指令依次是NOTAX和INCAX。參見P85、94、84.語句“VARDB3DUP(3,3DUP(3))”經(jīng)過匯編后應(yīng)分配 12個(gè)字節(jié)單元。參見P58.指令“MOVAX,SEGVAR”的執(zhí)行,是把變量VAR的段地址 送到AX中。參見P62.設(shè)(DS)=1000H,(ES)=2000H,(SS)=3000H,(BP)=4000H。計(jì)算下列各指令中源操作數(shù)的物理地址:MOVAX,[1000H]物理地址11000HMOVAX,ES:[BP]物理地址24000H參見P29.變量和標(biāo)號均具有三種屬性,即:段屬性、偏移屬性、類型屬性。參見P56、59.在做乘法運(yùn)算時(shí),如果是做字運(yùn)算,乘積放在DX和AX 兩個(gè)寄存器中,做除法運(yùn)算時(shí),若做字節(jié)運(yùn)算,余數(shù)放在AH中,商放在AL中。 一參見P86、87.用以訪問存儲器操作的地址表達(dá)式中,只要出現(xiàn)BP寄存器,系統(tǒng)就默認(rèn)以段寄存器SS的內(nèi)容作為存儲器操作數(shù)的段地址。參見P40?44.在數(shù)據(jù)段或代碼段的最開始,常用偽指令“ORGn”來定義本段的偏移地址初值,該初值的范圍是0000H~FFFFH 。參見P66、28.指令“CWD”能實(shí)現(xiàn)對某寄存器中內(nèi)容進(jìn)行擴(kuò)展,該寄存器是:AX。參見P89.8088/8086CPU能尋址的最大存儲空間為1MB,因此CPU的地址總線是20條。參見P28.在應(yīng)用串處理指令MOVSB時(shí),源串首地址存放在寄存器SI中,目的串首地址存放在寄存器DI中,并且目的串必須在附加段中,執(zhí)行串處理指令時(shí),用方向標(biāo)志位DF控制地址自動(dòng)增減,數(shù)據(jù)串的長度存放在寄存器 CX中。參見P125、126.程序狀態(tài)字PSW中的ZF位,當(dāng)結(jié)果為0時(shí),ZF=1 ,結(jié)果為1時(shí),ZF=0。參見P33 一.十六進(jìn)制數(shù)0D6H,當(dāng)把它看作無符號數(shù)時(shí),它表示的十進(jìn)制正數(shù)為214,當(dāng)把它看作帶符號數(shù)時(shí),它表示的十進(jìn)制負(fù)數(shù)為-42 。參見P22、23.IBMPC機(jī)中用來存放段地址的段寄存器有四個(gè):CS、DS、SS、ES。參見131、-12三、判斷題(15題)SHLAL,2 (錯(cuò))參見P952改為CLINC2 (錯(cuò))參見P84、83 不能用立即數(shù)ADDBX,1 (對)參見P83MOV[SI][DI],BX(對~~)參見P44SUBBX,CL (錯(cuò))參見P84BX與CL數(shù)據(jù)寬度不一致OUT34H,AL (對)參見P170INAL,0AH (對)參見P169MOVCX,[SP] (錯(cuò))參見P42SP不能做間址寄存器MULAL (對)參見P86、87SUBBX,BP (對)參見P84MOVDS,SEGVARY(錯(cuò))參見P62、46SEGVARY是立即數(shù),而DS不能接受立即數(shù)MOVVARY[SI],ES:BL(錯(cuò))參見P40 對寄存器不能使用段跨越前綴—13.CMPBLOCK,[100H](錯(cuò))參見P85不能對兩個(gè)內(nèi)存單元直接進(jìn)行比較.宏調(diào)用時(shí)實(shí)元和啞元的個(gè)數(shù)可以不一致。(對)參見P161.REPSTOSB (對)參見P127 ―四、寫程序段(9題).計(jì)算8*9,并將乘積送SI。(參見P87,例5.10,考查對乘法指令的掌握情況)moval,8movbl,9mulblmovsi,ax.計(jì)算35/6,商存于BL中,余數(shù)存于CL中。(參見P88,例5.13,考查對乘法指令的掌握情況)movax,35movbl,6divblmovcl,ah.輸入一個(gè)字母,然后輸出它的后繼字母(不考慮輸入字母是Z的情況)。(參見P102第6題及P186,考查對1號、2號功能調(diào)用的掌握)movah,01hint21hincalmovdl,almovah,02hint21h.從端口35口讀入一個(gè)字節(jié)數(shù)據(jù),將該數(shù)的第3位置1后(其余位不變),再寫回端口35H。(說明:最低位為第0位)(參見P178,第2道問答題,考查對I/O指令的掌握)inal,35horal,08hout35h,al.定義數(shù)據(jù)段NUM,數(shù)據(jù)段中的數(shù)據(jù)按下列要求依次存儲:(1)變量X,類型為字節(jié),初值為17;(2)數(shù)組變量M,類型為字,所占空間為100H個(gè)單元;(3)變量MSG,存儲字符串“LUCKY”。(參見P79,問答題的第2小題及P181,考查對段定義偽操作的掌握)NUMsegmentXdb17Mdw100hdup(?)MSGdb'LUCKY’NUMends.寄存器BX中存放著一個(gè)帶符號數(shù),求出其絕對值,結(jié)果還放在BX中。(參見P107,例6.3,考查對CMP、町6指令的掌握)cmpbx,0jgL1negbxL1:….對存放在(DX,AX)中的雙字?jǐn)?shù)據(jù)作求補(bǔ)運(yùn)算。(參見P83,例5.2及P85,例5.7,考查對雙精度數(shù)的操作)notdxnotaxaddax,1adcdx,0.計(jì)算5!,結(jié)果存于寄存器SI中。(參見P107,例6.4,考查對循環(huán)指令的掌握)movcx,5moval,1movbl,1L1:mulblincblloopL1movsi,ax.定義一個(gè)名字為ADDXYZ的宏,實(shí)現(xiàn)WRX+Y+Z。(注:所有數(shù)據(jù)均為字類型)(參見P166,編程題第4題及P201,考查對宏定義的掌握)ADDXYZMACROX,Y,Z,Wmovax,xaddax,yaddax,zmovw,axendm

五、寫程序(9題)1.從鍵盤輸入一個(gè)字符串(長度不超過30),統(tǒng)計(jì)字符串中非數(shù)字的個(gè)數(shù),并將統(tǒng)計(jì)的結(jié)果存入字單元COUNT中,用EXE格式實(shí)現(xiàn)。(參見P152?P154,考查字符數(shù)組、比較指令、循環(huán)等)datasegment指令、循環(huán)等)datasegmentstrdb30,?,30dup(?)

countdb0dataendscodesegmentassumecs:code,ds:datamainprocfarstart:pushdsmovax,datamovds,axleadx,strmovah,0ahint21hmovcl,str+1movch,0movsi,2L3:cmpmovax,0 str[si],30hpushax jaeL1inccount

jmpL2L1:cmpstr[si],39hjbeL2inccountL2:incsiloopL3retmainendpcodeendsendstart.統(tǒng)計(jì)一個(gè)incsiloopL3retmainendpcodeendsendstart結(jié)果輸出,用COM格式實(shí)現(xiàn)。(參見P119,考查COM格式文件、移位指令、跳轉(zhuǎn)指令)codesegmentorg100hassumecs:codemainprocnearstart:movbx,0a39hmovsi,0next:shrbx,1jncl1incsil1:loopnextmovdx,siadddx,30hcmpdl,3ahjbl2next:shrbx,1jncl1incsil1:loopnextmovdx,siadddx,30hcmpdl,3ahjbl2adddl,712:movah,02hint21hmovax,4c00hint21hmainendpcodeendsendstart.adddl,712:movah,02hint21hmovax,4c00hint21hmainendpcodeendsendstart(只考慮和小于10的情況)(參見P156第6題及P200,考查1號功能調(diào)用、2號功能調(diào)用、字符的輸出)codesegmentassumecodesegmentcs:codemainprocfarstart:pushdsmovbl,almovah,01int21hmovbh,alsubbx,3030haddbl,bhmovdl,bladddl,30hmovah,02int21hmovax,0pushaxmovah,01int21h

movbl,almovah,01int21hmovbh,alsubbx,3030haddbl,bhmovdl,bladddl,30hmovah,02int21hret codeendsmainendp endstart4.從鍵盤輸入一個(gè)十進(jìn)制個(gè)位數(shù),在屏幕上顯示相應(yīng)數(shù)量的該數(shù)。例如,輸入3,屏幕上將顯示“3示”。(參見4.從鍵盤輸入一個(gè)十進(jìn)制個(gè)位數(shù),在屏幕上顯示相應(yīng)數(shù)量的該數(shù)。例如,輸入3,屏幕上將顯示“3示”。(參見P123第6題及P193,考查1號功能調(diào)用、字符如何變成數(shù)值、LOOP指令)cbwcodesegmentassumecs:codemainprocfarpushdsmovax,0pushaxmovah,01hint21hmovbl,alsubal,30hmovcx,axL1:movah,02hmovdl,blint21hloopL1retmainendpcodeendsendmain.求100以內(nèi)所有奇數(shù)的和,存于字變量X中。(參見P143,例8.6,考查循環(huán)指令)

datasegmentxdw?dataendsdatasegmentxdw?dataendscodesegmentassumecs:code,ds:datamainprocfarstart:pushdsmovax,0pushaxmovax,datamovds,axmovax,0movbx,1movcx,50L1:addax,bxaddbx,2loopL1movx,axretmainendpcodeendsendstart.將BX中的數(shù)以二進(jìn)制形式在屏幕上顯示出來。(參見P123第2題及P189,考查移位指令、跳轉(zhuǎn)指令、數(shù)值的輸出、2號功能調(diào)用)codesegmentassumecs:codemainprocfarcodesegmentassumecs:codemainprocfarstart:movbx,1234hmovcx,16L1:movdl,30hshlbx,1jncL2incdlL2:movah,02hint21hloopL1movax,4c00hint21hmainendpcodeendsendstart.字節(jié)數(shù)組X中存放著0?ax,4c00hint21hmainendpcodeendsendstart制數(shù),請將這些數(shù)以十六進(jìn)制形式顯示在屏幕上。(參見P115,例6.9,考查對數(shù)組的使用、數(shù)值的輸出、2號功能調(diào)用、循環(huán)指令)datasegmentxdbdatasegmentxdbh,0ch,0dh,0eh,0fhdataendscodesegmentassumecs:code,ds:datamainprocfarstart:movds,axmovcx,16movsi,0L1: movmovds,axmovcx,16movsi,0L1: movdl,x[si]adddl,30hcmpdl,39hjbeL2adddl,7L2:movah,02hint21hincsiloopL1movax,4c00hint21hmainendpcodeendsendstart8.從包含10個(gè)無符號數(shù)的字節(jié)數(shù)組array中選出最小的一個(gè)數(shù)存于變量MIN中,并將該數(shù)以十進(jìn)制形式顯示出來。(參見P123,第3題及P190?191,考查對數(shù)組的使用、循環(huán)指令、比較指令、除法指令、數(shù)值的輸出)datasegmentarraydb45,67,75,82,90,29,80,26,63,59mindb?dataendsstacksegmentstackdw10dup⑶stacke

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論