上海大學(xué)匯編分析及編程題復(fù)習(xí)_第1頁
上海大學(xué)匯編分析及編程題復(fù)習(xí)_第2頁
上海大學(xué)匯編分析及編程題復(fù)習(xí)_第3頁
上海大學(xué)匯編分析及編程題復(fù)習(xí)_第4頁
上海大學(xué)匯編分析及編程題復(fù)習(xí)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

編程復(fù)習(xí)程序分析1、閱讀如下程序段,回答所提出的問題。

MOV BX,1110000011110001B XOR AX,AX MOV CX,16NEXT: ROL BX, 1 JC SKIP INC AXSKIP: LOOP NEXT指出程序段完成的功能?程序段執(zhí)行完后,寄存器AX的值是多少?

統(tǒng)計(jì)BX中數(shù)的二進(jìn)制表示中0的個(gè)數(shù),并存放在AX中。(AX)=8程序分析2、閱讀如下程序段,回答所提出的問題。

X DW 3,-5,8,7,-2,0,0,0,0,0 Y DW 20,80,10,50,40,30,60,10,20,70 ZDW 10DUP(0)

...... MOV SI,0 SUB DX,DXAGAIN:MOV AX,X[SI] ADD DX,AX CMP AX,0 JZ EXIT JL NEXT ADD AX,X[SI]NEXT:ADD AX,Y[SI] MOV Z[SI],AX ADD SI,2 JMP AGAINEXIT:

問執(zhí)行后(1)DX和SI的內(nèi)容是多少?(2)(Z+2)、(Z+4)、(Z+16)的內(nèi)容是什么?267526643800注、十進(jìn)制數(shù)DX:11SI:10程序分析3.在ARY中存放了COUNT個(gè)無符號(hào)數(shù),下面程序段找出最小奇數(shù)并送入EMIN單元中,請(qǐng)?jiān)诿總€(gè)橫線處填一條指令補(bǔ)充完整。ARY DB11,10,21,5,34H,57,97H,127,77H,…COUNTEQU$-ARYEMIN DB?…… LEA BX,ARY MOV CX,COUNT MOV AL,ARYLOP1:CMP[BX],AL

JE NEXT MOV AL,[BX]NEXT:

LOOP LOP1 MOV EMIN,ALJAENEXT(或JANEXT)

TEST BYTEPTR[BX],01H

INCBX或ADDBX,1程序分析4、已知(CS)=2300H,(IP)=32B4H,且在數(shù)據(jù)段中有定義:

ARYDB0AH,28H,00H,3FH

分別給出下列指令執(zhí)行后的CS和IP的內(nèi)容:

A、LEABX,ARYJMPWORDPTR[BX]B、MOVBX,OFFSETARYCALLWORDPTR[BX]C、MOVBX,OFFSETARYJMPDWORDPTR[BX](CS)=2300H(IP)=280AH(CS)=2300H(IP)=280AH(CS)=3F00H(IP)=280AH程序分析5、

MOVAL,0MOVBL,0MOVCX,10L1:INCBLINCBLADDAL,BLLOOPLI程序的功能是

,畫出程序的流程圖。

程序的功能是求2468101214161820的和

程序分析6、MOVAX,4BD5HMOVBL,0MOVDL,0MOVCX,16L1:SHLAX,1JCL2INCBLJMPL3L2:INCDLL3:LOOPL1程序的功能是___________,程序執(zhí)行后BL=_________,DL=_________,AX=_________。

程序的功能是分別統(tǒng)計(jì)4BD5H中的0、1的個(gè)數(shù),0的個(gè)數(shù)放BL,1的個(gè)數(shù)放DL,程序執(zhí)行后BL=7,DL=9,AX=0。編程題1按如下要求,編寫一個(gè)完整的字符串輸入、處理和輸出程序,其中3、4、5要求各采用一個(gè)子程序?qū)崿F(xiàn)。1.編寫數(shù)據(jù)段,定義80個(gè)字節(jié)的字符串存儲(chǔ)區(qū)String1,String2,String3,并定義其它所需的變量和數(shù)據(jù)。2.編寫完整的代碼段和主程序,調(diào)用如下子程序,實(shí)現(xiàn)字符串輸入、處理和輸出。3.編寫輸入子程序,從鍵盤輸入最多80字符的字符串并存放到String1中。4.編寫字符串處理子程序,實(shí)現(xiàn)如下功能:1)將String1中的數(shù)字用‘*’代替,然后存放在String2中;2)將String1中的小寫字母轉(zhuǎn)換成大寫字母,結(jié)果存放在String3中;本子程序的參數(shù)定義要求如下:bx----String1的首地址;si----String2的首地址;di----String3的首地址;cx---字符串的長度。5.編寫輸出子程序,按String2,String3的順序輸出處理后的字符串。編程題參考代碼;1)DATASEGMENTSTRING1DB80,?,81DUP(?)STRING2DB81DUP(?)STRING3DB81DUP(?)DATA ENDS;2)CODE SEGMENT ASSUMECS:CODE,DS:DATAMAIN PROC FARSTART:PUSH DS SUB AX,AX PUSH AX MOV AX, DATA MOV DS,AX CALL INPUT LEA BX,STRING1+2 LEA SI,STRING2 LEA DI,STRING3 MOV CL,STRINg1+1 MOV CH,0 CALL STR_REP CALL OUTPUT RETMAIN ENDP

編程題參考代碼;3)INPUTPROCNEAR LEADX,STRING1 MOVAH, 0AH INT 21H RETINPUTENDP;4)STR_REPPROCNEARNEXT:MOVAL,[BX] CMPAL,30H JLL1 CMPAL,39H JGL1 MOVAL,‘*’L1: MOV[SI],AL MOVAL,[BX] CMPAL,‘a(chǎn)’ JLL2 CMPAL,‘z’ JGL2 SUBAL,20HL2: MOV[DI],AL INCDI INCSI LOOP NEXT RETSTR_REPENDP編程題參考代碼;5)OUTPUTPROCNEAR MOVBL,STRING1+1 MOVBH,0 MOVSTRING2[BX],’$’ MOVSTRING3[BX],’$’ LEASTRING2 MOVAH, 09H INT21H LEASTRING3 MOVAH, 09H INT21H RETOUTPUT ENDPCODE ENDS ENDSTART編程題2用移位指令將X乘以30,結(jié)果存入Y單元。

DatasegmentXDB?Ydw?DataendsCodesegmentAssumecs:code,ds:dataStart: Movax,data Movds,ax MovAL,X MOVAH,0 MovCL,1 MOVDX,AX SHLDX,CL MOVCL,5 SHLAX,CL SUBAX,DX MOVY,AX Movah,4ch Int21hCodeendsENDSTART編程題3從鍵盤輸入一個(gè)字符串,再將它按相反次序輸出在下一行。DatasegmentStrDB50,?,50dup(?)DataendsCodesegmentAssumecs:code,ds:dataStart: Movax,data Movds,ax MOVAH,10 LEADX,STR INT21H MOVCL,STR+1 MOVCH,0 MOVBX,CXNEXT:MOVDL,STR[BX+1] MOVAH,2 INT21H DECBX LOOPNEXT Movah,4ch Int21hCodeendsENDSTART編程題4從鍵盤輸入兩個(gè)一位數(shù),求它們的和,將結(jié)果輸出,分別用子程序完成。

CodesegmentAssumecs:codeMAINPROCFARPUSHDSMOVAX,0PUSHAXMOVAH,1INT21HMOVDL,ALINT21HMOVBL,ALCALLADDITIONCALLSHOWRETMAINENDPADDITIONPROCNEAR;參數(shù)是DL、BL,返回DLSUBBL,30HSUBDL,30HADDDL,BLRETADDITIONENDPSHOWPROCNEAR;參數(shù)是DL MOVAL,DL CBW MOVBL,10 DIVBL;分離個(gè)位與十位數(shù)

MOVBH,AH CMPAL,0 JENEXT MOVDL,AL;十位數(shù)

ADDDL,30H MOVAH,2 INT21HNEXT:MOVDL,BH;個(gè)位數(shù)

ADDDL,30H MOVAH,2 INT21H RETSHOWENDPCodeendsENDmain數(shù)據(jù)定義按照給定的條件為程序定義一個(gè)數(shù)據(jù)段,并畫出存儲(chǔ)單元的示意圖:1、STR是字符串THISISADATA_SEGMENT。2、DAT1是字節(jié)變量,初值為23,4BH,126,0D3H。3、DAT2是16進(jìn)制數(shù)字變量,初值為100,255,2DUP(3,5)4、LEN是以上存儲(chǔ)單元的字節(jié)數(shù)。答:DATASEGMENT STRDB‘THISISADATA_SEGMENT’ DAT1DB23,4BH,126,0D3H DAT2DW100,255,2DUP(3,5) LENEQU$-STR DATAENDS

存儲(chǔ)區(qū)內(nèi)容數(shù)據(jù)數(shù)值舉例數(shù)據(jù)數(shù)值舉例數(shù)據(jù)數(shù)值舉例數(shù)據(jù)數(shù)值舉例54‘T’4117230048544B4B0349417E12600535F‘_’D30D30520‘

‘53‘S’641000049‘I’45005347FF20‘

‘4D0041‘A’450320‘

‘4E0044‘D’5405寫程序段1、將AL中的兩位BCD碼分離,分別存放DL和DH中。答:MOVDH,ALMOVDL,ALANDDL,0FHMOVCL,4SHRDH,CLANDDH,0FH

2、將DL中的4位二進(jìn)制數(shù)轉(zhuǎn)換成16進(jìn)制數(shù)的ASCII碼。答:ADDDL,30HCMPDL,3aHJBNEXTADDDL,7NEXT:寫程序段3、將AL中的8位二進(jìn)制數(shù)高4位和低4位交換。答: MOVCL,4 RORAL,CL4、將AL和BL中的非壓縮BCD碼合并成一個(gè)壓縮的BCD碼,存在AL中。答: ANDAL,0FH MOVCL,4 SHLAL,CL ANDBL,0FH ORAL,BL5、將AL中的8位有符號(hào)數(shù)轉(zhuǎn)換成它的絕對(duì)值。6、用串掃描指令在一個(gè)字符串中查找字符'*'。答:設(shè)字符串變量為str,長度在CX中。

MOVAL,’*’ LEADI,STR REPNESCASB JNEEXIT DECDI;DI指向的為“*”EXIT:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論