匯編語(yǔ)言期末復(fù)習(xí)題大全(免費(fèi))_第1頁(yè)
匯編語(yǔ)言期末復(fù)習(xí)題大全(免費(fèi))_第2頁(yè)
匯編語(yǔ)言期末復(fù)習(xí)題大全(免費(fèi))_第3頁(yè)
匯編語(yǔ)言期末復(fù)習(xí)題大全(免費(fèi))_第4頁(yè)
匯編語(yǔ)言期末復(fù)習(xí)題大全(免費(fèi))_第5頁(yè)
已閱讀5頁(yè),還剩101頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

匯編語(yǔ)言期末復(fù)習(xí)題大全(免費(fèi))匯編語(yǔ)言期末復(fù)習(xí)題大全(免費(fèi))匯編語(yǔ)言期末復(fù)習(xí)題大全(免費(fèi))V:1.0精細(xì)整理,僅供參考匯編語(yǔ)言期末復(fù)習(xí)題大全(免費(fèi))日期:20xx年X月匯編語(yǔ)言期末復(fù)習(xí)題DX:?jiǎn)雾?xiàng)選擇題DU:多項(xiàng)選擇題TK:填空題MC:名詞解釋vJD:簡(jiǎn)答題CXFX:程序分析題CXTK:程序填空題BC:編程題第1章:基礎(chǔ)知識(shí)1、在匯編語(yǔ)言程序的開(kāi)發(fā)過(guò)程中使用宏功能的順序是(

C

)。DXA、宏定義,宏調(diào)用 B、宏定義,宏展開(kāi)C、宏定義,宏調(diào)用,宏展開(kāi) D、宏定義,宏展開(kāi),宏調(diào)用2、匯編語(yǔ)言源程序中,每個(gè)語(yǔ)句由四項(xiàng)組成,如語(yǔ)句要完成一定功能,那么該語(yǔ)句中不可省略的項(xiàng)是(

B

)。DXA、名字項(xiàng) B、操作項(xiàng) C、操作數(shù)項(xiàng) D、注釋項(xiàng)3、可屏蔽中斷就是它的請(qǐng)求是否被CPU響應(yīng)要受(IF)的控制。DX4、使用LINK連接命令,執(zhí)行后可生成文件的擴(kuò)展名為(EXE)。DX5、在寄存器間接尋址中,如果指令中指定的寄存器為BP,則操作數(shù)在堆棧段中,段地址在SS寄存器中。TK6、注釋項(xiàng)用于說(shuō)明程序段或是一條和幾條指令的功能,一般用;(或分號(hào))表示注釋的開(kāi)始。TK7、DOS系統(tǒng)功能調(diào)用方式為:(1)置入口參數(shù);(2)中斷程序編號(hào)送AH寄存器后執(zhí)行INT21H。TK8、通常主程序和子程序間參數(shù)傳送的方法有三種:用寄存器傳遞、用存儲(chǔ)單元傳遞、用堆棧傳遞(順序可調(diào)換)。TK9、中斷是CPU暫停當(dāng)前程序的執(zhí)行,轉(zhuǎn)而執(zhí)行處理緊急事務(wù)的程序,并在該事務(wù)處理完后能自動(dòng)恢復(fù)執(zhí)行原先程序的過(guò)程。在此,稱引起緊急事務(wù)的事件為中斷源。TK10、在字符串操作指令中,DS∶SI指向源串,ES∶DI指向目的串。TK11、計(jì)算機(jī)系統(tǒng)通過(guò)接口與外圍設(shè)備通信。TK12、鍵盤I/O、顯示I/O和打印I/O分別對(duì)應(yīng)16H、10H和17H號(hào)中斷。TK13、字符顯示模式緩沖區(qū)中的一個(gè)字對(duì)應(yīng)于屏幕上的一個(gè)字符。每個(gè)字的第一個(gè)字節(jié)為顯示字符的ASCII碼,第二個(gè)字節(jié)為顯示字符的屬性。TK14、簡(jiǎn)述上機(jī)運(yùn)行匯編語(yǔ)言程序的過(guò)程。JD答:首先打開(kāi)未來(lái)匯編,新建一個(gè)空的匯編文件,后綴為.asm,然后輸入?yún)R編程序代碼,保存,再編譯成機(jī)器指令,然后連接成可執(zhí)行文件,即exe文件,最后再運(yùn)行。15、簡(jiǎn)述程序中指令和偽指令的區(qū)別。JD答:能被計(jì)算機(jī)識(shí)別并執(zhí)行的二進(jìn)制代碼,它規(guī)定了計(jì)算機(jī)能完成的某一操作。偽指令是對(duì)匯編起某種控制作用的特殊命令,其格式與通常的操作指令一樣,并可加在匯編程序的任何地方,但它們并不產(chǎn)生機(jī)器指令。16、十六進(jìn)制數(shù)88H,可表示成下面幾種形式,請(qǐng)找出錯(cuò)誤的表示(④)。DX①無(wú)符號(hào)十進(jìn)制數(shù)136②帶符號(hào)十進(jìn)制數(shù)-120③壓縮型BCD碼十進(jìn)制數(shù)88④8位二進(jìn)制數(shù)-8的補(bǔ)碼表示17、指令指針寄存器是(IP)。DX18、匯編語(yǔ)言語(yǔ)句格式中對(duì)名字項(xiàng)的規(guī)定如下,請(qǐng)找出其中錯(cuò)誤的說(shuō)法(B)DXA.名字的第一個(gè)字符可以是大寫英文字母及小寫英文字母B.名字的第一個(gè)字符可以是字母、數(shù)字及、@、_C.名字的有效長(zhǎng)度≤31個(gè)字符D.在名字中不允許出現(xiàn)$19、CS寄存器屬于(段寄存器)。DX20、已知物理地址(371F0H)=12H,(371F1H)=34H,(371F2H)=56H,如從地址371F0H中取出一個(gè)字的內(nèi)容是(3412H)。DX21、一個(gè)有16個(gè)字的數(shù)據(jù)區(qū),它的起始地址是70A0H∶DDF6H,則這個(gè)數(shù)據(jù)區(qū)最末一個(gè)字單元的物理地址是(7E814H)。DX22、簡(jiǎn)述上機(jī)運(yùn)行匯編語(yǔ)言程序的過(guò)程。JD答:首先打開(kāi)未來(lái)匯編,新建一個(gè)空的匯編文件,后綴為.asm,然后輸入?yún)R編程序代碼,保存,再編譯成機(jī)器指令,然后連接成可執(zhí)行文件,即exe文件,最后再運(yùn)行。第2章:8086/8088的尋址方式和指令系統(tǒng)1、下列指令屬于基址加變址尋址方式的是(MOVDX,DS:[BP][SI])。DX2、當(dāng)程序順序執(zhí)行時(shí),每取一條指令語(yǔ)句,IP指針增加的值是(D)。DXA.1B.2C.3D.由指令長(zhǎng)度決定的3、下列屬于合法的指令是(D)DXA.MOVDS,ESB.MOV[SI],[DI]C.MOVAX,BLD.MOV[DI],BL4、若AX=349DH,CX=000FH。則執(zhí)行指令A(yù)NDAX,CX后,AX的值是(000DH)。DX5、設(shè)DS=8225H,DI=3942H,指令NEGBYTEPTR[DI]操作數(shù)的物理地址是(

85B92H

)DX6、下列寄存器組中在段內(nèi)尋址時(shí)可以提供偏移地址的寄存器組是(

B

)DXA、AX,BX,CX,DX B、BX,BP,SI,DIC、SP,IP,BP,DX D、CS,DS,ES,SS7、對(duì)寄存器AX的內(nèi)容乘以4的正確指令序列是(

SHLAX,1

SHL,AX,1

)。DX8、執(zhí)行INC指令除對(duì)SF、ZF有影響外,還要影響的標(biāo)志位是(

OF,AF,PF

)。DX9、設(shè)DH=10H,執(zhí)行NEGDH指令后,正確的結(jié)果是(

DH=0F0H

CF=1

)。DX10、下列傳送指令中有語(yǔ)法錯(cuò)誤的是(

A

)。DXA、MOVCS,AX B、MOVDS,AXC、MOVSS,AXD、MOVES,AX11、下面指令執(zhí)行后,改變AL寄存器內(nèi)容的指令是(

D

)。DXA、TEST

AL,02H B、OR

AL,ALC、CMP

AL,BL D、AND

AL,BL12、執(zhí)行除法指令后,影響的標(biāo)志位是(

AF,CF,OF,PF,SF,ZF都不確定

)。DX13、執(zhí)行下面指令序列后,結(jié)果是(

AX=0FF82H

)。DXMOV

AL,82HCBW14、與MOV

BX,OFFSETVAR指令完全等效的指令是(

D

)。DXA、MOV

BX,VAR B、LDS

BX,VARC、LES

BX,VAR D、LEA

BX,VAR15、在段定義時(shí),如果定位類型用戶未選擇,就表示是隱含類型,其隱含類型是(

PARA)。DX16、MOV

SP,3210HPUSH

AX執(zhí)行上述指令序列后,SP寄存器的值是(

320EH

)。DX17、BUF

DW

10HDUP(3DUP(2,10H),3,5)上述語(yǔ)句匯編后,為變量BUF分配的存儲(chǔ)單元字節(jié)數(shù)是(

100H

)。DX18、MOVAH,7896HADDAL,AH上述指令執(zhí)行后,標(biāo)志位CF和OF的值是(CF=1,OF=0)。DX19、完成將帶符號(hào)數(shù)AX的內(nèi)容除以2的正確指令是(SHRAX,1)。DX20、在匯編語(yǔ)言程序中,對(duì)END語(yǔ)句的敘述正確的是(C)。DXA.END語(yǔ)句是一可執(zhí)行語(yǔ)句B.END語(yǔ)句表示程序執(zhí)行到此結(jié)束C.END語(yǔ)句表示源程序到此結(jié)束D.END語(yǔ)句在匯編后要產(chǎn)生機(jī)器碼21、已知BX=2000H,SI=1234H,則指令MOVAX,[BX+SI+2]的源操作在(數(shù)據(jù)段中偏移量為3236H的字節(jié))中。DX22、下面指令序列執(zhí)行后完成的運(yùn)算,正確的算術(shù)表達(dá)式應(yīng)是(y=x2-1)。DXMOVAL,BYTEPTRXSHLAL,1DECALMOVBYTEPTRY,AL23、已知(AX)=1234H,執(zhí)行下述三條指令后,(AX)=(0000H)。DXMOVBX,AXNEGBXADDAX,BXA.1234HB.0EDCCHC.6DCCHD.24、將DX的內(nèi)容除以2,正確的指令是(C)。DXA.DIV2B.DIVDX,2C.SARDX,1D.SHLDX,125、有如下指令序列:DXORG40HDA1DW0AB12H,8574H……MOVAX,DA1MOVBX,OFFSETDA1上述指令執(zhí)行后,寄存器AX和BX的值分別為(AB12H,40H)。26、下列數(shù)值表達(dá)式和地址表達(dá)式中,錯(cuò)誤的是(D)。DXA.MOVAL,8*14+4B.MOVSI,OFFSETBUF+13C.MOVCX,NUM2-NUM1D.MOVCX,NUM2+NUM127、數(shù)據(jù)段定義如下:DXX1DB10H,50,1X2DW10H,20,3X3DDCOUNTEQUX3-X1變量COUNT的值是(9)。28、為使CX=-1時(shí),轉(zhuǎn)至MINUS而編制了一指令序列,其中錯(cuò)誤的序列是(

C

)。DXA、INCCX

JZMINUS B、SUBCX,OFFFFH

JZMINUSC、ANDCX,OFFFFH

JZMINUS D、XORCX,OFFFFH

JZMINUS29、AL和VAR字節(jié)單元中分別存放一個(gè)帶符號(hào)數(shù),執(zhí)行CMPAL,VAR時(shí),如AL>VAR,那么溢出位和符號(hào)位的關(guān)系是(

OF=SF

)。DX30、下面是關(guān)于匯編語(yǔ)言程序中使用RET的描述,不正確的是(C)。DXA.每一個(gè)子程序中允許有多條RET指令。B.每一個(gè)子程序結(jié)束之前一定要有一條RET指令。C.每一個(gè)子程序中只允許有一條RET指令。D.以過(guò)程形式表示的代碼段,一定有RET指令存在。31、在串操作指令前使用重復(fù)前綴指令REPE,終止串的重復(fù)操作條件是(CX=0或ZF=0)。DX32、用MOV指令將十進(jìn)制64以組合型BCD碼格式送入AX,正確使用的指令是(MOVAX,0604H)。DX33、重復(fù)前綴指令REP的重復(fù)次數(shù)由CX決定。TK34、DR1DB10H,30HDR2DW10HDUP(0,2DUP(2))……MOVBL,LENGTHDR1MOVCL,LENGTHDR2請(qǐng)問(wèn)指令執(zhí)行后,BL和CL的值分別為1和10H。TK35、設(shè)(SP)=100H,(AX)=0FFFFHSTCPUSHAXADCAX,0PUSHAXPOPBX上述程序段運(yùn)行后,(BX)=0,(SP)=0FEH。CXFX36、假設(shè)數(shù)據(jù)段定義如下:DA1DW’C’,’D’DA2DB18DUP()DA3DW$-DA2……MOVBX,DA3MOVAX,DA1上述指令執(zhí)行后,BX寄存器中的內(nèi)容是12H(或18),AH寄存器中的內(nèi)容是00H,AL寄存器中的內(nèi)容是43H。CXFX37、現(xiàn)有如下數(shù)據(jù)段DATASEGMENTARRAY1DB1,26,‘3456ARRAY2DW7,89H,10VALEQUARRAY2-ARRAY1DATAENDS請(qǐng)問(wèn):該數(shù)據(jù)段已占有12(或0CH)字節(jié)的存儲(chǔ)空間。CXFX38、當(dāng)執(zhí)行指令A(yù)DDAX,BX后,若AX的內(nèi)容為2BA0H,設(shè)置的奇偶標(biāo)志位PF=1,下面的敘述正確的是(④)。DX①表示結(jié)果中含1的個(gè)數(shù)為偶數(shù)②表示結(jié)果中含1的個(gè)數(shù)為奇數(shù)③表示該數(shù)為偶數(shù)④表示結(jié)果中低八位含1的個(gè)數(shù)為偶數(shù)39、AND,OR,XOR,NOT為四條邏輯運(yùn)算指令,下面的解釋正確的是(C)DXA.指令XORAX,AX執(zhí)行后,AX內(nèi)容不變,但設(shè)置了標(biāo)志位B.指令ORDX,1000H執(zhí)行后,將DX最高位置1,其余各位置0C.指令A(yù)NDAX,OFH執(zhí)行后,分離出AL低四位D.NOTAX,執(zhí)行后,將AX清040、完成對(duì)CL寄存器的內(nèi)容乘以4的正確操作是(C)DXA.ROLCL,1B.MUL4

ROLCL,1C.SHLCL,1D.MOVCL,2SHLCL,1

SHLCL,CL41、下面各傳送指令中,正確的是(C)DXA.MOV[DI],[SI]B.MOV[DX+DI],ALC.MOVWORDPTR[BX],0100HD.MOVAL,BX42、要實(shí)現(xiàn)使BETA的值為56,應(yīng)采用語(yǔ)句為(BETAEQU56)DX43、REPZCMPSW指令,重復(fù)執(zhí)行的終止條件是(CX=0或ZF=0)DX44、下面程序段執(zhí)行后,AL中的內(nèi)容是(21H)DXMOVAX,8833HADDAL,AHDAA45、完成將累加器AL清零,并使進(jìn)位標(biāo)志CF清零,下面錯(cuò)誤的指令是(①)。DX①M(fèi)OVAL,00H②ANDAL,00H③XORAL,AL④SUBAL,AL46、下列指令執(zhí)行后總是使CF=0,OF=0的是(AND)。DX47、完成同指令XCHGAX,BX相同功能的指令或指令序列是(④)。DX①M(fèi)OVAX,BX②MOVBX,AX③PUSHAXPOPBX④MOVCX,AXMOVAX,BXMOVBX,CX48、設(shè)AH=0,AL=06H,BL=09H,執(zhí)行指令A(yù)DDAL,BLAAA之后,其結(jié)果應(yīng)是(AH=01,AL=05)。DX49、設(shè)AL=0B4H,BL=11H,指令“MULBL”和指令“IMULBL”分別執(zhí)行后OF,CF的值為(OF=1,CF=1)。DX50、在串操作指令前使用重復(fù)前綴指令REPE,終止串的重復(fù)操作條件是(CX=0或ZF=0)。DX51、下面指令中,合理而有意義的指令是(④)。DX①REPLODSB②REPSCASB③REPCMPSB④REPMOVSB52、在下列串操作指令中,同時(shí)使用源串和目的串地址指針的指令是(D)DXA.STOSWB.LODSWC.SCASWD.CMPSW53、AL=0AH,下列指令執(zhí)行后能使AL=05H的是(C)DXA.NOTALB.ANDAL,0FHC.XORAL,0FHD.ORAL,0FH54、DA1

DW‘AB’,‘CD’,‘EF’,‘GH’

MOVAX,DA1+3

指令執(zhí)行后AX中的內(nèi)容是(‘FC’)。DX55、在匯編語(yǔ)言程序中,對(duì)END語(yǔ)句的敘述正確的是(③)。DX①END語(yǔ)句是一可執(zhí)行語(yǔ)句②END語(yǔ)句表示程序執(zhí)行到此結(jié)束③END語(yǔ)句表示源程序到此結(jié)束④END語(yǔ)句在匯編后要產(chǎn)生機(jī)器碼56、下面的數(shù)據(jù)傳送指令中,錯(cuò)誤的操作是(④)。DX①M(fèi)OVSS:[BX+DI],1000H②MOVDX,1000H③MOVWORDPTR[BX],1000H④MOVDS,2000H57、下面指令執(zhí)行后,變量DAB中的內(nèi)容是(0F5H)。DXDAWDW2A05HDABDB0FAH:MOVAL,BYTEPRTDAWSUBDAB,AL58、執(zhí)行下列指令后,正確的結(jié)果是(②)。DXMOVAL,100MOVBL,-2①AL=100HBL=02H②AL=64HBL=0FEH③AL=64HBL=82H④AL=100HBL=0FEH59、設(shè)數(shù)據(jù)段中已有:DA1DB12H,34HDA2DW56H,78H下面有語(yǔ)法錯(cuò)誤的語(yǔ)句是(②)。DX①ADR1DWDA1②MOVDA1+1,AX③MOVBYTEPTRDA2+1,AL④MOVWORDPTRDA1+1,AX60、DATASEGMENTTA1DW0102H,0304H,0506HTA2DB02H,03H,04H:MOVBX,DS:[0006H]ANDBX,0FFHANDBH,[BX]上述指令序列運(yùn)行后,BX的內(nèi)容是(0402H)。DX61、若DS=0F3EH,SI=2000H,COUNT=0A8H,指令MOVAX,(SI+COUNT)中,源操作數(shù)的有效地址EA為_(kāi)__20A8H_____,其物理地址為_(kāi)__11488H_____。TK62、如JMP指令采用段間間接尋址,那么由4個(gè)相鄰字節(jié)單元中存放有轉(zhuǎn)移地址,其中前兩個(gè)字節(jié)存放的是____IP____,而后兩個(gè)字節(jié)存放的是____CS____。TK63、在串操作程序中,通常在重復(fù)前綴指令REPZ或REPNZ后,選用的串操作指令是___STOS____或___CMP__才有實(shí)際意義。TK64、已知:BX=1357H,DI=2000H,DS=2000H,CS=4000H,分別指出下面各指令中存儲(chǔ)器操作數(shù)的物理地址。JD(1)MOVAL,[BX]21357H(2)MOVCS:[BX+DI],AH43357H65、0P1DB1,2

0P2DW3412H,5678H┇

MOVAX,OP1+1;字單元(OP1+1)AX

MOVBL,OP2+1;字節(jié)單元(OP2+1)BL

上述二條傳送語(yǔ)句有語(yǔ)法錯(cuò)誤,請(qǐng)根據(jù)注釋字段的說(shuō)明,將其改正。JDMOVAX,WORDPTR(OP1+1)

MOVBL,BYTEPTR(OP2+1)66、下列語(yǔ)句在存儲(chǔ)器中分別為變量分配多少字節(jié)?JD

(1)AD2DW10DUP(),1022

(2)AD3DD100DUP()40067、簡(jiǎn)述下面兩條指令分別是什么語(yǔ)法錯(cuò)誤?JD

MOV[BX],[SI]

MOVAX,DLMOV指令不能在兩個(gè)存儲(chǔ)器操作數(shù)之間進(jìn)行;

操作數(shù)類型不匹配。68、在指令系統(tǒng)中,段內(nèi)、段間返回均為RET指令。試回答:JD(1)執(zhí)行段內(nèi)返回RET指令時(shí),執(zhí)行的操作是:棧頂內(nèi)容→IP,SP+2→SP(2)執(zhí)行段間返回RET指令時(shí),執(zhí)行的操作是:①棧頂內(nèi)容→IP,SP+2→SP②棧頂內(nèi)容→CS,SP+2→SP69、ARYDW10DUP()┇MOVAL,TYPEARYMOVBL,LENGTHARYMOVCL,SIZEARY上述MOV指令序列執(zhí)行后的結(jié)果是什么?JDAL=2BL=10CL=2070、設(shè)某數(shù)據(jù)段:JDDATASEGMENTORG20HNUM1=8NUM2=NUM1+10HDA1DB'COMPUTER'DB0AH,0DHCOUNTEQU$-DA1DA2DW'CO','MP','UT','ER'DATAENDS試回答:(1)DA1的偏移地址是:20H(2)COUNT的值是0AH(3)DA2+5字節(jié)單元的內(nèi)容是‘U’的ASCII碼_71、已知AX=0FF60H,CF=1MOVDX,96XORDH,0FFHSBBAX,DX執(zhí)行上述指令序列后,AX=_________0__________,CF=______0__________。CXFX72、設(shè)寄存器AL,BL,CL中內(nèi)容均為76H,XORAL,0FHANDBL,0FHORCL,0FH執(zhí)行上述指令序列后,AL=______79H___,BL=__06H___CL=_7FH___。CXFX73、已知AX=0A33AH,DX=0F0FANDAH,DLXORAL,DHNEGAHNOTAL執(zhí)行上述指令序列后,AH=____60H____,AL=_____35H_。CXFX74、假定(DX)=10111001B,(CL)=0.3,(CF)=1,試確定下列各條指令單獨(dú)執(zhí)行后,DX中的值。JD(1)SHRDX,1(2)RCRDL,1(3)RCLDX,CL答:(1)005CH(2)00DCH(3)05CCH75、寫出完成下述功能的程序段:JD(1)傳送25H到AL寄存器(2)將AL的內(nèi)容乘以2(3)傳送15H到BL寄存器(4)AL的內(nèi)容乘以BL的內(nèi)容并請(qǐng)寫出最后(AX)=?答:(1)MOVAL,25H(2)SHLAL,1(3)MOVBL,15H(4)MULBL最后,(AX)=612H=155476、寫一程序段,求雙字長(zhǎng)數(shù)DX∶bX的相反數(shù)。JD答:NEGDXNEGAXSBBDX,077、在某子程序的開(kāi)始處要保護(hù)AX,BX,CX,DX四個(gè)寄存器信息,在子程序結(jié)束時(shí)要恢復(fù)這四個(gè)寄存器信息。例如:JDPUSHAX\PUSHBX\保護(hù)現(xiàn)場(chǎng)PUSHCX/PUSHDX/:}恢復(fù)現(xiàn)場(chǎng)試寫出恢復(fù)現(xiàn)場(chǎng)時(shí)的指令序列。答:POPDXPOPCXPOPBXPOPAX78、完成下列操作,選用什么指令:JD(1)將AX的內(nèi)容,減去0520H,和上次運(yùn)算的借位;(2)將變量名TABL的段地址送AX;答:(1)SBBAX,0520H(2分)(2)MOVAX,SEGTABL(2分)79、D1DB20HDUP(

D2DWD1請(qǐng)寫出用一條指令實(shí)現(xiàn)取D1的偏移地址=>SI中的三種方法。JD答:①LEASI,D1②MOVSI,OFFSETD1③MOVSI,D280、ADW1234HBDW5678H:PUSHAPUSHBPOPAPOPB試回答:CXFX①上述程序段執(zhí)行后(A)=__________,(B)=_____②設(shè)執(zhí)行前SP=200H,執(zhí)行后SP=____________答:①(A)=5678H(2分)(B)=1234H(2分)②SP=2000H(2分)81、現(xiàn)有下列程序段:CXFXMOVAX,6540HMOVDX,3210HMOVCL,04SHLDX,CLMOVBL,AHSHLAX,CLSHRBL,CLORDL,BL試問(wèn)上述程序段運(yùn)行后,(AX)=_5400H_(BL)=_06H_(DX)=_2106H_82、分析下面程序段,CXFXMOVAL,200SARAL,1MOVBL,ALMOVCL,2SARAL,CLADDAL,BL試問(wèn)程序段執(zhí)行后(BL)=__0E4H_(AL)=__0DDH___83、DA3EQUWORDPTRDA4DA4DB0ABH,89H┇SHRDA3,1MOVDX,DA3SHLDA4,1MOVCX,DA3上述程序段運(yùn)行后,CX=___44AAH___,DX=__44D5H___。CXFX84、設(shè)(SP)=100H,(AX)=0FFFFHSTCPUSHAXADCAX,0PUSHAXPOPBX上述程序段運(yùn)行后,(BX)=0,(SP)=0FEH。CXFX85、STRINGDB‘ABCDEFGHIJ':MOVAH,01;從鍵盤輸入字符1~9INT21HANDAL,0FHDECALXORAH,AHMOVBX,OFFSETSTRINGADDBX,AXMOVBL,[BX]MOVAH,02H;顯示輸出INT21H:試回答:(1)上述程序段的功能是什么CXFX根據(jù)從鍵盤輸入的字符‘1’~‘9’,確定在顯示器上顯示STRING中第幾個(gè)字符。(2)如從鍵盤輸入字符‘4',程序段有什么結(jié)果

顯示器顯示字符‘D’86、已知:BX=4567H

NEGBX

INCBX

NEGBX

DECBX程序段執(zhí)行后,BX=____4565H___,CF=___1_____。CXFX87、已知數(shù)據(jù)段中定義

DAT1DB

12H,34H,56H,78H

MOVCX,0

MOVAX,WORDPTRDAT1

MOVCL,DAT1+3

當(dāng)程序段執(zhí)行完后AX=___3412H____,CX=__0078H_____。CXFX88、DA1

DB83H,72H,61H,94H,5AH

MOVCX,WORDPTRDA1

ANDCX,0FH

MOVAL,DA1+3

SHLAL,CL上述指令序列執(zhí)行后,AL=__0A0H____,CL=__03H____。CXFX89、現(xiàn)有如下程序段:CXFXDATASEGMENTDA3EQU1234HORG0020HDA4EQU$-DA2DA1DW12H,23HDA5DB31H,32HDA2DB11H,21HDATAENDS請(qǐng)回答:(1)該程序段已占有的存儲(chǔ)字節(jié)數(shù)是多少(2)符號(hào)名DA4的值是多少符號(hào)名DA5的值是多少答:(1)該程序段已占有的存儲(chǔ)字節(jié)數(shù)是8個(gè)字節(jié)。(2)符號(hào)名DA4的值為2,符號(hào)名DA5的值是0026H。90、執(zhí)行下列程序段后,回答問(wèn)題。CXFXORG1221HMOVBX,OFFSETNUMNUMDW12HMOVCL,BYTEPTRNUM+1…MOVCH,TYPENUMMOVAX,NUMHLT請(qǐng)問(wèn):(AX)=______,(BX)=______,(CX)=______。答:(AX)=0012H(BX)=1221H(CX)=0200H91、執(zhí)行下列指令后AX、BX寄存器的內(nèi)容CXFXMOVSI,10HMOVAX,1234HMOV[SI+12H],AXLEABX,[SI]MOV[SI+14H],BX答:AX為1234H,BX為22HLESBX,DWORDPTR[SI+12H]92、試編制一程序段,用串操作指令實(shí)現(xiàn)以DA_BY為首址的20H個(gè)字節(jié)單元中存放相同字符‘Y’(設(shè)DA_BY存儲(chǔ)區(qū)已有ES指向)。BCLEADI,DA_BY

MOVCX,32

MOVAL,‘Y’

CLD

REPSTOSB93、在BUF1和BUF2兩個(gè)數(shù)據(jù)區(qū)中,各定義有10個(gè)帶符號(hào)字?jǐn)?shù)據(jù),試編制一完整的源程序,求它們對(duì)應(yīng)項(xiàng)的絕對(duì)值之和,并將和數(shù)存入以SUM為首址的數(shù)據(jù)區(qū)中。BCDATASEGMENTBUF1DW-56,24,54,-1,89,-8……BUF2DW45,-23,124,345,-265,……SUMDW10DUP(0)DATAENDS94、編制程序段實(shí)現(xiàn):將AX寄存器中的16位二進(jìn)制數(shù)分成四組,每組4位,然后把這4組數(shù)分別放在AL、BL、CL、和DL中。BCMOVBH,ALMOVCH,AHMOVAL,AHANDAL,0F0HMOVBL,AHANDBL,0FHMOVCL,BHANDCL,0F0HMOVDL,BHANDDL,0FH95、在NUMW單元存放有一個(gè)0-65535范圍內(nèi)的整數(shù),將該數(shù)除以500,商和余數(shù)分別存入QU1和REM單元,請(qǐng)?jiān)诳招刑幐魈钌弦粭l指令完善該程序。CXTK

MOVAX,NUMW

____MOVBX,500_________

XORDX,DX

DIVBX

MOVQUI,AX____MOVREM,DX_________96、已知數(shù)據(jù)段中定義DAT1DB

12H,34H,56H,78H

MOVCX,0

MOVAX,WORDPTRDAT1MOVCL,DAT1+3當(dāng)程序段執(zhí)行完后AX=___3412H_____,CX=___0078H_____。CXFX97、DA1

DB83H,72H,61H,94H,5AH

MOVCX,WORDPTRDA1

ANDCX,0FH

MOVAL,DA1+3

SHLAL,CL

上述指令序列執(zhí)行后,AL=___0A0H____,CL=___03H____。CXFX98、DA3EQUWORDPTRDA4DA4DB0ABH,89H┇SHRDA3,1MOVDX,DA3SHLDA4,1MOVCX,DA3上述程序段運(yùn)行后,CX=____44AAH_____,DX=_____44D5H_______。CXFX99、編制完整程序?qū)崿F(xiàn)下列算式:W=X+Y+36-Z。設(shè)X、Y、Z、W均為雙字長(zhǎng)數(shù)據(jù),各自的低十六位數(shù)和高十六位數(shù)分別存放在X、X+2、Y、Y+2、Z、Z+2的存儲(chǔ)單元中,結(jié)果的低十六位字和高十六位字分別存放在W和W+2兩個(gè)單元中。BCDATASEGMENTXDD…YDD…ZDD…WDD…DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,XADDAX,YMOVBX,X+2ADCBX,Y+2ADDAX,36ADCBX,0SUBAX,ZSBBBX,Z+2MOVW,AXMOVW+2,BXCODEENDSENDSTART第3章:8086匯編語(yǔ)言程序格式1、指令JMPFARPTRDONE屬于(段間轉(zhuǎn)移直接尋址)。DX2、下列敘述正確的是(C)。DXA.對(duì)兩個(gè)無(wú)符號(hào)數(shù)進(jìn)行比較采用CMP指令,對(duì)兩個(gè)有符號(hào)數(shù)比較用CMPS指令B.對(duì)兩個(gè)無(wú)符號(hào)數(shù)進(jìn)行比較采用CMPS指令,對(duì)兩個(gè)有符號(hào)數(shù)比較用CMP指令C.對(duì)無(wú)符號(hào)數(shù)條件轉(zhuǎn)移采用JAE/JNB指令,對(duì)有符號(hào)數(shù)條件轉(zhuǎn)移用JGE/JNL指令D.對(duì)無(wú)符號(hào)數(shù)條件轉(zhuǎn)移采用JGE/JNL指令,對(duì)有符號(hào)數(shù)條件轉(zhuǎn)移用JAE/JNB指令3、一個(gè)有128個(gè)字的數(shù)據(jù)區(qū),它的起始地址為12ABH:00ABH,請(qǐng)給出這個(gè)數(shù)據(jù)區(qū)最末一個(gè)字單元的物理地址是(12C59H)。DX4、某存儲(chǔ)單元的物理地址是12345H,可以作為它的段地址有(D)DXA.2345HB.12345HC.12340HD.1234H5、在執(zhí)行DAA指令,當(dāng)高四位BCD碼校正時(shí)產(chǎn)生進(jìn)位,如要把此進(jìn)位值送入AH中,對(duì)這進(jìn)位值的操作應(yīng)是(進(jìn)位值在CF中,校正后根據(jù)CF內(nèi)容再加在AH中)DX6、執(zhí)行后使BX=0的同時(shí)也使CF=0,OF=0的指令是(XORBX,BX)DX7、在執(zhí)行下列指令時(shí),需要使用段寄存器DS的指令是(D)DXA.STOSWB.ADDAL,CLC.NEGBXD.INCDA[BX]8、無(wú)論BH中原有的數(shù)是奇數(shù)或偶數(shù),若要使BH中的數(shù)一定為奇數(shù),應(yīng)執(zhí)行的指令是(ORBH,01H)DX9、比較兩個(gè)帶符號(hào)的數(shù)A、B,當(dāng)A=B時(shí)程序轉(zhuǎn)移,測(cè)試的條件為(ZF=1)DX10、使用DOS系統(tǒng)功能調(diào)用時(shí),使用的軟中斷指令是(B)DXA.INT21B.INT10HC.INT16HD.INT21H11、十六進(jìn)制數(shù)0FFF8H表示的十進(jìn)制正數(shù)為_(kāi)___+65528____,表示的十進(jìn)制負(fù)數(shù)為_(kāi)___-32760____。TK12、CPU的標(biāo)志寄存器中標(biāo)志位,可以分為兩大類,其中一類稱為_(kāi)__狀態(tài)_____標(biāo)志位,另一類稱為_(kāi)___控制____標(biāo)志位。TK13、當(dāng)標(biāo)志位___CF___=1時(shí)表示無(wú)符號(hào)數(shù)運(yùn)算產(chǎn)生溢出,而當(dāng)標(biāo)志位__OF____=1是表示帶符號(hào)數(shù)運(yùn)算產(chǎn)生溢出。TK14、在程序執(zhí)行過(guò)程中,IP寄存器中始終保存的是(下一條指令的首地址)。DX15、PSW寄存器中共有___6___位條件狀態(tài)位,有___3___位控制狀態(tài)位。()。DX16、串指令中的目的操作數(shù)地址是由___ES:[DI]___提供。17、8086CPU在基址加變址的尋址方式中,變址寄存器可以為(SI或DI)。DX18、什么叫尋址方式常用的尋址方式有哪些JD答:尋址方式是指尋找指令中操作數(shù)所在地址的方法。常用的尋址方式有:立即尋址、直接尋址、寄存器尋址、寄存器間接尋址、變址尋址、基址加變址、隱含尋址等。第4章:順序程序設(shè)計(jì)1、編寫分支程序,在進(jìn)行條件判斷前,可用指令構(gòu)成條件,其中不能形成條件的指令有(

D

)。A、CMP B、SUB C、AND D、MOV第5章:分支程序設(shè)計(jì)1、檢查二個(gè)無(wú)符號(hào)數(shù)的關(guān)系,若要實(shí)現(xiàn)AL≥BL時(shí)分支去LOP1處,那么在“CMPAL,BL”指令后應(yīng)跟的分支指令是(JCLOP1)DX2、下面指令序列測(cè)試BH中的數(shù)是否為奇數(shù),若為奇數(shù)則轉(zhuǎn)移至K1處,橫線處的指令應(yīng)為()。DXTESTBH,01H__JNE_______K13、測(cè)試BL寄存器內(nèi)容是否與數(shù)據(jù)4FH相等,若相等則轉(zhuǎn)NEXT處執(zhí)行,可實(shí)現(xiàn)的方法是(②)。DX①TESTBL,4FHJZNEXT②XORBL,4FHJZNEXT③ANDBL,4FHJZNEXT④ORBL,4FHJZNEXT4、當(dāng)一個(gè)帶符號(hào)數(shù)大于0FBH時(shí)程序轉(zhuǎn)移,需選用的條件轉(zhuǎn)移指令是(JNLE)。DX5、

MOVBL,64H

MOVCL,03H

XORAX,AX

AGAIN:ADDAL,BL

ADCAH,0

DECCL

JNZAGAIN

問(wèn):(1)該程序段完成的功能是:將AX內(nèi)容乘3送BX中CXFX(2)AX=___012CH_____。6、MOVDL,AL

NOTDL

TESTDL,04H

JENEXT

NEXT:…

若上述程序段執(zhí)行時(shí)產(chǎn)生分支,說(shuō)明AL中的數(shù)第幾位一定為1程序段執(zhí)行后CF是多少CXFX第2位;CF=07、設(shè)AX,BX中的數(shù)一個(gè)為正數(shù),一個(gè)為負(fù)數(shù),下面程序段完成將正數(shù)送到PLW單元中存放,請(qǐng)將程序中所缺指令語(yǔ)句補(bǔ)上。CXTKTESTAX,8000H__JEK1或JZK1_________M(jìn)OVPLW,BXJMPDONEK1:__M(jìn)OVPLW,A___________DONE:8、下面程序段是判斷寄存器AH和AL中第3位是相同,如相同,AH置0,否則AH置全1。試把空白處填上適當(dāng)指令。CXTK___XORAH,AL____ANDAH,08H____JEZERO_____MOVAH,OFFHJMPNEXTZERO:MOVAH,0NEXT:……9、以BUF為首址的字節(jié)單元中,存放了COUNT個(gè)無(wú)符號(hào)數(shù),下面程序段是找出其中最大數(shù)并送入MAX單元中。CXTKBUFDB5,6,7,58H,62,45H,127,……COUNTEQU$-BUFMAXDB?┇MONBX,OFFSETBUFMOVCX,COUNT-1MOVAL,[BX]LOP1:INCBX____CMPAL,[BX]_________JAENEXTMOVAL,[BX]NEXT:DECCX_____JNZLOP1___________MOVMAX,AL10、編程序段計(jì)算SUM=∑ai=a1+a2+...+a20,已知a1......a20依次存放在以BUF為首址,i=1的數(shù)據(jù)區(qū),每個(gè)數(shù)據(jù)占兩個(gè)字節(jié),和數(shù)SUM也為兩個(gè)字節(jié)。(要求用循環(huán)結(jié)構(gòu)編寫,循環(huán)控制采用計(jì)數(shù)控制)。(此題勿需書(shū)寫源程序格式,只需把試題要求的有關(guān)指令序列書(shū)寫出來(lái)。)CXMOVAX,0MOVBX,OFFSETBUFMOVCX,20LOP:ADDAX,[BX]INCBXINCBXLOOPLOPMOVSUM,AX11、試編寫一個(gè)匯編語(yǔ)言程序,要求對(duì)鍵盤輸入的小寫字母用大寫字母顯示出來(lái)。CX答:BEGIN:MOVAH,1INT21HCMPAL,’a’JBSTOPCMPAL,’z’JASTOPSUBAL,20HMOVDL,ALMOVAH,2INT21HJMPBEGINSTOP:RET12、ANDAL,ALJZBRCH1RCRAL,1JZBRCH2RCLAL,1INCALJZBRCH3:上述程序運(yùn)行后,試回答:CXFX(1)當(dāng)(AL)=__0________時(shí),程序轉(zhuǎn)向BRCH1(2)當(dāng)(AL)=__1________時(shí),程序轉(zhuǎn)向BRCH2(3)當(dāng)(AL)=__-1________時(shí),程序轉(zhuǎn)向BRCH313、下面程序的功能是什么CXFXMOVCH,4LAB:MOVCL,4ROLBX,CLMOVDL,BLANDDL,0FHADDDL,30HCMPDL,3AHJLPRINTADDDL,7PRINT:MOVAH,02INT21HDECCHJNZLAB顯示輸出BX寄存器里的內(nèi)容14、閱讀如下程序:CXFXADRRDBXXH,XXH,……,XXHCMPADRR[BX],0NUMEQU$-ADRRLOOPZDONRETTDBJNZNEXT…MOVBL,OFFHMOVCX,NUMNEXT:MOVRETT,BLMOVBX,-1HLTDON:INCBX請(qǐng)問(wèn):(1)該程序完成的功能是什么(2)程序執(zhí)行后指出RETT字節(jié)單元中的內(nèi)容是什么?答:(1)在以ADRR為起始地址的數(shù)組中,查找第一個(gè)非0數(shù)據(jù)。(2)若找到則將第一個(gè)非0數(shù)據(jù)在數(shù)組中的偏移量送入RETT單元中;若無(wú)非0數(shù)據(jù),則將OFFH送入RETT單元中。15、現(xiàn)有一子程序:CXFXSUB1PROCPLUS:TESTBL,80HTESTAL,80HJEEXITOJEPLUSXCHANGE:XCHGAL,BLTESTBL,80HEXITO:RETJNEEXITOSUB1ENDPJMPXCHANGE試回答:(1)子程序的功能是什么?(2)若調(diào)用子程序前AL=9AH,BL=77H,則返回主程序時(shí),AL=______,BL=______。答:(1)子程序的功能是判別AL和BL中的數(shù)是否為異號(hào)數(shù),當(dāng)為異號(hào)時(shí)交換,否則不變。(2)AL=77H,BL=9AH16、閱讀程序段:CXFXBLOCKDB20H,1FH,08H,81H,OFFH…LOP1:CMPAL,[SI+1]RESULTDBJNGNEXT…MOVAL,[SI+1]START:LEASI,BLOCKNEXT:INCSIMOVCX,[SI]LOOPLOP1INCSIMOVRESULT,ALMOVAL,[SI]HLT請(qǐng)問(wèn):(1)該程序完成的功能是什么(2)該程序循環(huán)的次數(shù)是多少

答:(1)該程序完成的功能是從20H(32)個(gè)有符號(hào)數(shù)中找出最小的數(shù)送入RESULT單元中。(2)該程序的循環(huán)次數(shù)是1FH(31)。17、閱讀如下程序段,回答所提出的問(wèn)題,假定X1,X2,XN為無(wú)符號(hào)數(shù)。CXFXORG100HBLOKDWX1,X2,…,XNCOUNTEQU($-BLOLOK)/2RESULTDWCOUNT,LEABX,BLOK-2MOVCX,RESULTXORAX,AXGOON:ADDBX,2CMPAX,[BX]JAENEXTMOVAX,[BX]NEXT:LOOPGOONMOVRESULT+2,AX程序段執(zhí)行完,回答下述問(wèn)題RESULT+2字存儲(chǔ)單元的內(nèi)容=______BX=______程序循環(huán)次數(shù)=______答:RESULT+2字存儲(chǔ)單元的內(nèi)容是MAX(X1,X2,…XN)BX=100H+2×(COUNT-1)程序循環(huán)次數(shù)=COUNT18、下面程序的功能是什么CXFXMOVAX,XCMPAX,YJGELABXCHGAX,YLAB:MOVX,AX答:選擇X,Y中的較大值存入X中19、某程序欲用單個(gè)字符顯示的2號(hào)功能調(diào)用去顯示STRING中的字符串‘COMPUTER’(不顯示字符‘$’!).試在空白處填上適當(dāng)?shù)囊粭l指令。CXTK

STRINGDB‘COMPUTER’,‘$’

MOVBX,0FFSETSTRING

LOP:MOVDL,[BX]

MOVAH,02H

INT21H

_____INCBX_______________

_____CMP[BX],24H________JNELOP20下面程序段是判斷寄存器AH和AL中第3位是相同,如相同,AH置0,否則AH置全1。試把空白處填上適當(dāng)指令.CXTK____XORAH,AL_______________ANDAH,08H_____JEZERO______________MOVAH,OFFHJMPNEXTZERO:MOVAH,0NEXT:……21、在表TABLE處存放著N個(gè)無(wú)符號(hào)字節(jié)數(shù),求表中前10個(gè)字節(jié)數(shù)的總和并保存在AX寄存器中。如果總和值超過(guò)AX寄存器的容量,則置AX寄存器內(nèi)容不變。請(qǐng)?jiān)诔绦蛑械目崭裉幪钊脒m當(dāng)指令使其完整。CXTKLEABX,TABLE(2)MOVCX,10JCEND0MOVSUM,AXDON:INCBXMEXT:(1)(3)ADCAH,0ENDO:HLTJNCDON答:(1)ADDAL,[BX](2)MOVAX,SUM(3)LOOPNEXT22、試編寫一個(gè)匯編語(yǔ)言程序,要求對(duì)鍵盤輸入的小寫字母用大寫字母顯示出來(lái)。BC答:BEGIN:MOVAH,1INT21HCMPAL,’a’JBSTOPCMPAL,’z’JASTOPSUBAL,20HMOVDL,ALMOVAH,2INT21HJMPBEGINSTOP:RET23、試編制一源程序,統(tǒng)計(jì)DA1字單元中含0的個(gè)數(shù),如統(tǒng)計(jì)的個(gè)數(shù)為奇數(shù),則將進(jìn)位位置1,否則進(jìn)位位清0。BC

DATA

SEGMENT

DA1

DW

XXXX

DATAENDS答:CODESEGMENT

ASSUMECS:CODE,DS:DATA

START:MOV

AX,DATA

MOV

DS,AX

LEA

SI,DA1

MOV

CX,16

XORBL,BL

AGAIN:MOV

AL,[SI]

HLAL,1

JCNEXT

INCBL

NEXT:INCSI

LOOPAGAIN

TESTBL,01H

JNE

L1

CLC

JMPDONE

L1:STC

DONE:MOVAH,4CH

INT21H

CODEENDS

ENDSTART24、編定程序段,用DOS的1號(hào)功能調(diào)用通過(guò)鍵盤輸入一字符,并判斷輸入的字符。如字符是"Y",則轉(zhuǎn)向YES程序段;如字符是"N",則轉(zhuǎn)向NO程序段;如是其他字符,則轉(zhuǎn)向DOS功能調(diào)用,重新輸入字符。(考生勿需寫出源程序格式,只需寫出與試題要求有關(guān)的指令序列)(YES和NO分別是兩程序段入口處的標(biāo)號(hào))BCKEY:MOVAH,1INT21HCMPAL,‘Y’JEYESCMPAL,‘N’JENOJMPKEY答案:DATASEGMENTBUF1DW-56,24,54,-1,89,-8,----BUF2DW45,-23,124,345,-265,----SUMDW10DUP(0)DATAENDSSTACK1SEGMENTPARASTACKDW20HDUP(0)STACK1ENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK1START:MOVAX,DATAMOVDS,AXMOVCX,10LEASI,BUF1LEADI,BUF2LEABX,SUMNEXT:MOVAX,[SI]MOVDX,[DI]TESTAX,8000HJETDXNEGAXTDX:TESTDX,8000HJEADDSNEGDXADDS:ADDAX,DXMOV[BX],AXADDSI,2ADDDI,2ADDBX,2LOOPNEXTMOVAH,4CHINT21HCODEENDSENDSTART25、LEASI,STRMOVAL,ODHXORCX,CXGOON:CMPAL,[SI]JZNEXTINCCXINCSIJMPGOONNEXT:MOVCOUNT,CX字節(jié)變量STR中存放著一個(gè)字符串‘a(chǎn)bcdefGHIJK’,以0DH為結(jié)束標(biāo)志,上述指令序列完成的功能是求字符串長(zhǎng)度,執(zhí)行以上指令后字變量COUNT=11。CXFX26、下列程序片段用來(lái)分別統(tǒng)計(jì)ARRAY數(shù)組中奇數(shù)和偶數(shù)的個(gè)數(shù)。請(qǐng)?jiān)诳瞻滋幪顚懞线m的指令。CXTKDATASEGMENTARRAYDW23ABH,1570H,567,1765H,46,5210HCOUNTEQU($-ARRAY)/2DA1DB

DA2DBDATAENDS……LEASI,ARRAYMOVCX,COUNTLOP1:MOVAX,[SI]TESTAX,0001HJZLOP2INCBLJMPLOP3LOP2:INCBHLOP3:ADDSI,2DECCXJNZLOP1MOVDA1,BLMOVDA2,BH-1x<027、編寫計(jì)算下面函數(shù)值的程序y=0x=01x>0其中,輸入數(shù)據(jù)x和輸出數(shù)據(jù)y均在數(shù)據(jù)段中定義,且皆為字節(jié)變量。BCDATASEGMENTXDB45HYDB

DATAENDS;CODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,XXXMOVAH,0CMPAL,0JGENEXT1MOVBL,-1JMPOVERNEXT1:CMPAL,0JENEXT2MOVBL,1JMPOVERNEXT2:MOVBL,0OVER:MOVZZZ,BLMOVAH,4CHINT21HCODEENDSENDSTART28、寫一個(gè)把字符串中的大寫字母改寫為小寫字母的子程序(近過(guò)程)。設(shè)字符串以0為結(jié)束標(biāo)志。BC;子程序名:STRLWR;功能:把字符串中的所有大寫字母改寫為小寫字母;入口參數(shù):DS∶BX=存放改寫所需字符串的緩沖區(qū)首地址;出口參數(shù):無(wú)STRLWRPROCPUSHAXPUSHSIMOVSI,BXAGAIN:MOVAL,[SI]ORAL,ALJZOKCMPAL,’A’JBNEXTCMPAL,’Z’JANEXTORAL,20H(或者ADDAL,30H)MOV[SI],ALNEXT:INCSIJMPAGAINOK:POPSIPOPAXRETSTRLWRENDP第6章:循環(huán)程序設(shè)計(jì)

1、循環(huán)控制指令LoopNZ/LoopNE控制循環(huán)繼續(xù)執(zhí)行的條件是(CX≠0且ZF=0)DX2、循環(huán)指令LOOPNZ終止循環(huán)的條件是(

CX=0,或ZF=1

)。DX3、檢查BUF的內(nèi)容是否為正偶數(shù),如是正偶數(shù),則0TAL。下面程序段正確的是(

C

)。DXA、MOVAL,BUFJSK1SHRAL,1JNCK1MOVAL,0K1:……B、MOVAL,BUFANDAL,11JNZK2MOVAL,0K2:……D、MOVAL,BUFJNPK4D、MOVAL,BUFJNPK4TESTAL,80HJNZK4MOVAL,0K4:……TESTAL,81HJNZK3MOVAL,0K3:……4、下列描述中,執(zhí)行循環(huán)的次數(shù)最多的情況是(A)。DXA.MOVCX,0B.MOVCX,1LOP:LOOPLOPLOP:LOOPLOPC.MOVCX,0FFFFHD.MOVCX,256LOP:LOOPLOPLOP:LOOPLOP5、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上述程序段運(yùn)行后,S9開(kāi)始的10個(gè)字節(jié)存儲(chǔ)單元內(nèi)容是什么?CXFXS9DB1,0,3,2,5,4,7,6,9,86、實(shí)現(xiàn)將DX:AX中存放的32位數(shù)擴(kuò)大四倍,正確的程序段是(③)。DX①SHLAX,2ROLDX,2②RCLAX,2SHLDX,2③MOVCX,2LOP:SHLAX,1RCLDX,1LOOPLOP④SHLAX,1SHLAX,1RCLDX,1RCLDX,17、在下列指令中,D指令的執(zhí)行會(huì)影響條件碼中的CF位。DXA.JMPNEXTB.JCNEXTC.INCBXD.SHLAX,18、下列指令執(zhí)行時(shí)出錯(cuò)的是(A)。DXA.ADDBUF1,BUF2B.JMPDWORDPTRDAT[BX]C.MOVAX,[BX+DI]NUMD.TESTAL,08H9、在下列指令的表示中,不正確的是(C)。DXA.MOVAL,[BX+SI]B.JMPSHORTDONIC.DEC[BX]D.MULCL10、在進(jìn)行二重循環(huán)程序設(shè)計(jì)時(shí),下列描述正確的是(A)。DXA.外循環(huán)初值應(yīng)置外循環(huán)之外;內(nèi)循環(huán)初值應(yīng)置內(nèi)循環(huán)之外,外循環(huán)之內(nèi)B.外循環(huán)初值應(yīng)置外循環(huán)之內(nèi);內(nèi)循環(huán)初值應(yīng)置內(nèi)循環(huán)之內(nèi)C.內(nèi)、外循環(huán)初值都應(yīng)置外循環(huán)之外D.內(nèi)、外循環(huán)初值都應(yīng)置內(nèi)循環(huán)之外,外循環(huán)之內(nèi)11、條件轉(zhuǎn)移指令JNE的測(cè)試條件為(ZF=0)。DX12、執(zhí)行如下程序:MOVAX,0MOVBX,1MOVCX,100A:ADDAX,BXINCBXLOOPAHLT執(zhí)行后(BX)=(101)。DX13、上題的程序執(zhí)行后(AX)=(5050)。DX14、對(duì)于下列程序段:AGAIN:MOVAL,[SI]MOVES:[DI],ALINCSIINCDILOOPAGAIN也可用__REPMOVSB__指令完成同樣的功能。DX15、DA1

DB‘ABCDEFGHI’

DA2

DB

9DUP(0)

LEASI,DA1

LEADI,DA2

MOVCX,9

CLD

LOP:LODSB

SUBAL,10H

STOSB

LOOPLOP

...

試問(wèn):①寫出程序執(zhí)行后DA2各字節(jié)中的數(shù)據(jù)。CXFX②保持程序功能情況下,程序中可否改寫為123456789;不能更改16、程序段如下:CXFXBLK1DB46,84,34,-5,20,122,73:MOVCX,7LEAS1,BLK1NEXT:MOVAL,[SI]INCSITESTAL,81HLOOPZNEXTMOVBL,[SI]:請(qǐng)回答程序段運(yùn)行后:(AL)=___5或0FBH__(BL)=___14H或20______17、下面程序的功能是什么CXFXSTRINGDB100DUP()

MOVAX,SEGSTRING

MOVDS,AX

LEASI,STRING

MOVCX,100LAB:MOVAL,[SI]

CMPAL,’a’

JB

LAB1

CMPAL,’z’

JA

LAB1

SUBAL,32

MOV[SI],ALAB1:INCSI

LOOPLAB將STRING里的小寫字母’a’-‘z’轉(zhuǎn)成相應(yīng)的大寫字母’A’-‘Z’18、現(xiàn)有下列數(shù)據(jù)段:CXTKDATASEGMENTSTR1DB‘ABCDEFGHIJKL'COUNTEQU-STR1BUFDBCOUNTDUP(0)DATAENDS下面程序段是實(shí)現(xiàn)把STR1中所有字符逆向傳送到BUF緩沖區(qū)(即STR1中第一個(gè)字符送到BUF的最后一個(gè)單元,STR1中最后一字符送到BUF的第一個(gè)單元)。試把程序中所空缺的指令填上。MOVSI,OFFSETBUF-1MOVDI,OFFSETBUFMOVCX,COUNT___CLD_或STD_____LOOP:MOVSB______SUBSI,2__或____ADDDI,2__LOOPLOP19、下述程序段完成計(jì)算2~20之間的偶數(shù)的和,并存于AX中。試把空白處填上適當(dāng)?shù)闹噶睢XTKXORAX,AXMOVBX,0MOVCX,10或MOVCX,0AHCONT:ADDAX,BXADDBX,2LOOPCONT20、BEG為起始地址的存儲(chǔ)區(qū)域中存放有100個(gè)字節(jié)數(shù)據(jù),現(xiàn)將其首、尾顛倒過(guò)來(lái),重新排放這100個(gè)字節(jié)數(shù)據(jù)。請(qǐng)?jiān)诔绦蛑械目崭裉幪钊脒m當(dāng)?shù)闹噶钍蛊渫暾XTKMOVCX,32HLEASI,BEGMOVDI,SI(1)DON:MOVAL,[SI](2)MOV[SI],AL(3)DECDILOOPDONHLT答:(1)ADDDI,99(2)XCHGAL,[DI](3)INCSI21、試編制一源程序,統(tǒng)計(jì)DA1字單元中含0的個(gè)數(shù),如統(tǒng)計(jì)的個(gè)數(shù)為奇數(shù),則將進(jìn)位位置1,否則進(jìn)位位清0。BC

DATA

SEGMENT

DA1

DW

XXXX

DATAENDS答:CODESEGMENT

ASSUMECS:CODE,DS:DATA

START:MOV

AX,DATA

MOV

DS,AX

LEA

SI,DA1

MOV

CX,16

XORBL,BL

AGAIN:MOV

AL,[SI]

HLAL,1

JCNEXT

INCBL

NEXT:INCSI

LOOPAGAIN

TESTBL,01H

JNE

L1

CLC

JMPDONE

L1:STC

DONE:MOVAH,4CH

INT21H

CODEENDS

ENDSTART22、下述程序段完成計(jì)算2~20之間的偶數(shù)的和,并存于AX中。試把空白處填上適當(dāng)?shù)闹噶?。CXTK

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論