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

下載本文檔

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

文檔簡介

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

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

統(tǒng)計BX中數(shù)的二進制表示中0的個數(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注、十進制數(shù)DX:11SI:10程序分析3.在ARY中存放了COUNT個無符號數(shù),下面程序段找出最小奇數(shù)并送入EMIN單元中,請在每個橫線處填一條指令補充完整。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)計4BD5H中的0、1的個數(shù),0的個數(shù)放BL,1的個數(shù)放DL,程序執(zhí)行后BL=7,DL=9,AX=0。編程題1按如下要求,編寫一個完整的字符串輸入、處理和輸出程序,其中3、4、5要求各采用一個子程序?qū)崿F(xiàn)。1.編寫數(shù)據(jù)段,定義80個字節(jié)的字符串存儲區(qū)String1,String2,String3,并定義其它所需的變量和數(shù)據(jù)。2.編寫完整的代碼段和主程序,調(diào)用如下子程序,實現(xiàn)字符串輸入、處理和輸出。3.編寫輸入子程序,從鍵盤輸入最多80字符的字符串并存放到String1中。4.編寫字符串處理子程序,實現(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從鍵盤輸入一個字符串,再將它按相反次序輸出在下一行。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從鍵盤輸入兩個一位數(shù),求它們的和,將結(jié)果輸出,分別用子程序完成。

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

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

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

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

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

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

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論