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

下載本文檔

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

文檔簡(jiǎn)介

本文格式為Word版,下載可任意編輯——《匯編語言程序設(shè)計(jì)》期末復(fù)習(xí)題及答案《匯編語言程序設(shè)計(jì)》期末復(fù)習(xí)題及答案

一、選擇(30題)

1.以下是8位帶符號(hào)二進(jìn)制數(shù)的補(bǔ)碼,其中最大的是(B)。B、00000001

2.在一段匯編語言程序中屢屢調(diào)用另一段程序,用宏指令比用子程序?qū)崿F(xiàn)(C)

C、占內(nèi)存空間大,但速度快3.?dāng)?shù)據(jù)定義為:EEDB3,4

CCDW3456H,6789H

執(zhí)行指令“MOVCX,WORDPTREE+1〞后,(CX)=(B)B、5604H

4.有如下指令序列:

MOVAL,95HMOVCL,2SARAL,CL

上述指令序列執(zhí)行后,AL的內(nèi)容是(D)D、0E5H

5.設(shè)A=18610,B=2738,C=0BB16,把這三個(gè)數(shù)看成無符號(hào)數(shù),則它們之間的關(guān)系是(DD、Aint21hincalmovdl,almovah,02hint21h

4.從端口35H讀入一個(gè)字節(jié)數(shù)據(jù),將該數(shù)的第3位置1后(其余位不變),再寫回端口35H。(說明:最低位為第0位)

(參見P178,第2道問答題,考察對(duì)I/O指令的把握)inal,35h

oral,08hout35h,al

5.定義數(shù)據(jù)段NUM,數(shù)據(jù)段中的數(shù)據(jù)按以下要求依次存儲(chǔ):(1)變量X,類型為字節(jié),初值為17;

(2)數(shù)組變量M,類型為字,所占空間為100H個(gè)單元;(3)變量MSG,存儲(chǔ)字符串\。

(參見P79,問答題的第2小題及P181,考察對(duì)段定義偽操作的把握)NUMsegmentXdb17

Mdw100hdup(?)MSGdb‘LUCKY’NUMends

6.寄放器BX中存放著一個(gè)帶符號(hào)數(shù),求出其絕對(duì)值,結(jié)果還放在BX中。(參見P107,例6.3,考察對(duì)CMP、NEG指令的把握)

cmpbx,0jgL1negbxL1:…

7.對(duì)存放在(DX,AX)中的雙字?jǐn)?shù)據(jù)作求補(bǔ)運(yùn)算。

(參見P83,例5.2及P85,例5.7,考察對(duì)雙精度數(shù)的操作)

notdxnotaxaddax,1adcdx,0

8.計(jì)算5!,結(jié)果存于寄放器SI中。

(參見P107,例6.4,考察對(duì)循環(huán)指令的把握)

movcx,5

moval,1movbl,1

L1:mulblincblloopL1movsi,ax

9.定義一個(gè)名字為ADDXYZ的宏,實(shí)現(xiàn)W?X+Y+Z。(注:所有數(shù)據(jù)均為字類型)(參見P166,編程題第4題及P201,考察對(duì)宏定義的把握)

ADDXYZMACROX,Y,Z,W

movax,xaddax,yaddax,zmovw,ax

endm

五、寫程序(9題)

1.從鍵盤輸入一個(gè)字符串(長(zhǎng)度不超過30),統(tǒng)計(jì)字符串中非數(shù)字的個(gè)數(shù),并將統(tǒng)計(jì)的

結(jié)果存入字單元COUNT中,用EXE格式實(shí)現(xiàn)。

(參見P152~P154,考察字符數(shù)組、比較指令、循環(huán)等)datasegment

strdb30,?,30dup(?)countdb0dataendscodesegment

assumecs:code,ds:datamainprocfarstart:

pushdsmovax,0pushax

movax,datamovds,axleadx,strmovah,0ahint21h

movcl,str+1

2.統(tǒng)計(jì)一個(gè)16位二進(jìn)制數(shù)中1的個(gè)數(shù),并將結(jié)果輸出,用COM格式實(shí)現(xiàn)。(參見P119,考察COM格式文件、移位指令、跳轉(zhuǎn)指令)

movch,0movsi,2L3:

cmpstr[si],30hjaeL1inccountjmpL2L1:

cmpstr[si],39hjbeL2inccountL2:

incsiloopL3retmainendpcodeendsendstart

codesegmentorg100h

assumecs:codemainprocnearstart:

movbx,0a39hmovsi,0movcx,16next:shrbx,1jncl1incsil1:

loopnext

movdx,siadddx,30hcmpdl,3ahjbl2adddl,7l2:

movah,02hint21h

movax,4c00hint21hmainendpcodeendsendstart

3.從鍵盤輸入兩個(gè)一位十進(jìn)制數(shù),求它們的和,并將結(jié)果以十進(jìn)制形式輸出。(只考慮和小于10的狀況)

(參見P156第6題及P200,考察1號(hào)功能調(diào)用、2號(hào)功能調(diào)用、字符的輸出)codesegmentassumecs:codemainprocfarstart:pushdsmovax,0pushaxmovah,01int21hmovbl,almovah,01int21h

4.從鍵盤輸入一個(gè)十進(jìn)制個(gè)位數(shù),在屏幕上顯示相應(yīng)數(shù)量的該數(shù)。例如,輸入3,屏幕上將顯示“333〞。

(參見P123第6題及P193,考察1號(hào)功能調(diào)用、字符如何變成數(shù)值、LOOP指令)codesegmentassumecs:codemainprocfarpushdsmovax,0

pushaxmovah,01h

int21hmovbl,alsubal,30hmovbh,alsubbx,3030haddbl,bhmovdl,bladddl,30hmovah,02int21hret

mainendpcodeendsendstart

cbw

movcx,axL1:

movah,02hmovdl,blint21h

5.求100以內(nèi)所有奇數(shù)的和,存于字變量X中。(參見P143,例8.6,考察循環(huán)指令)datasegmentxdw?dataendscodesegment

assumecs:code,ds:datamainprocfarstart:pushdsmovax,0pushaxmovax,datamovds,ax

loopL1retmainendpcodeendsendmain

movax,0movbx,1movcx,50L1:addax,bxaddbx,2loopL1movx,axretmainendpcodeendsendstart

6.將BX中的數(shù)以二進(jìn)制形式在屏幕上顯示出來。

(參見P123第2題及P189,考察移位指令、跳轉(zhuǎn)指令、數(shù)值的輸出、2號(hào)功能調(diào)用)codesegmentL2:movah,02hassumecs:codeint21hmainprocfarloopL1start:movax,4c00hmovbx,1234hint21hmovcx,16mainendpL1:movdl,30hcodeendsshlbx,1endstartjncL2incdl

7.字節(jié)數(shù)組X中存放著0~F共16個(gè)十六進(jìn)制數(shù),請(qǐng)將這些數(shù)以十六進(jìn)制形式顯示在屏

幕上。

(參見P115,例6.9,考察對(duì)數(shù)組的使用、數(shù)值的輸出、2號(hào)功能調(diào)用、循環(huán)指令)datasegment

x

db

0,1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fhdataendscodesegment

assumecs:code,ds:datamainprocfarstart:

movax,datamovds,axmovcx,16movsi,0

L1:movdl,x[si]adddl,30hcmpdl,39hjbeL2adddl,7L2:movah,02h

int21hincsiloopL1

movax,4c00hint21hmainendpcodeendsendstart

8.從包含10個(gè)無符號(hào)數(shù)的字節(jié)數(shù)組array中選出最小的一個(gè)數(shù)存于變量MIN中,并將該

數(shù)以十進(jìn)制形式顯示出來。

(參見P123,第3題及P190~191,考察對(duì)數(shù)組的使用、循環(huán)指令、比較指令、除法指令、數(shù)值的輸出)

datasegment

arraydb45,67,75,82,90,29,80,26,63,59mindb?dataends

stacksegmentstackdw10dup(?)stackendscodesegment

assumecs:code,ds:data,ss:stackmainprocfarstart:

movax,datamovds,axmovcx,10moval,255movsi,0movdi,0

L1:cmpal,array[si]jbeL2

mov

al,array[si]L2:incsiloopL1movmin,almovah,0movcx,3L3:movbl,10divblmovdl,ahpushdxincdimovah,0cmpax,0jzL4loopL3L4:movcx,diL5:popdxadddl,30h

movah,02hint21hloopL5

movax,4c00hint21h

mainendpcodeendsendstart

9.設(shè)在起始地址為STRING的存儲(chǔ)空間存放了一個(gè)字符串,統(tǒng)計(jì)字符串中字符“A〞的個(gè)

數(shù),并將結(jié)果存放到RESULT字節(jié)單元中。

(參見P134第5題及P196,考察串處理指令、比較指令)datasegment

stringdb'assembly'lendw$-stringresultdb0dataendscodesegment

assumecs:code,ds:datamainprocfarstart:

movax,datamovds,axmovcx,len

leasi,stringL1:lodsb

cmpal,'a'jnzL2incresultL2:loopL1

movax,4c00hint21hmainendpcod

溫馨提示

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

評(píng)論

0/150

提交評(píng)論