![新編匯編語(yǔ)言程序設(shè)計(jì)四五章習(xí)題參考解答_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/27/3d29a6d1-7efc-4882-a0fa-04730e9b4366/3d29a6d1-7efc-4882-a0fa-04730e9b43661.gif)
![新編匯編語(yǔ)言程序設(shè)計(jì)四五章習(xí)題參考解答_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/27/3d29a6d1-7efc-4882-a0fa-04730e9b4366/3d29a6d1-7efc-4882-a0fa-04730e9b43662.gif)
![新編匯編語(yǔ)言程序設(shè)計(jì)四五章習(xí)題參考解答_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/27/3d29a6d1-7efc-4882-a0fa-04730e9b4366/3d29a6d1-7efc-4882-a0fa-04730e9b43663.gif)
![新編匯編語(yǔ)言程序設(shè)計(jì)四五章習(xí)題參考解答_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/27/3d29a6d1-7efc-4882-a0fa-04730e9b4366/3d29a6d1-7efc-4882-a0fa-04730e9b43664.gif)
![新編匯編語(yǔ)言程序設(shè)計(jì)四五章習(xí)題參考解答_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/27/3d29a6d1-7efc-4882-a0fa-04730e9b4366/3d29a6d1-7efc-4882-a0fa-04730e9b43665.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、習(xí)題四4.5已知(AX)=836BH, X分別取下列值,執(zhí)行“CMP AX.X”后,標(biāo)志位ZF、CF、OF、SF各是什么? (l)X=3000H (2)X=8000H (3)X=7FFFFH (4)X=0FFFFH (5)X=0答:上述指令執(zhí)行后,標(biāo)志位ZF、CF、OF、SF的狀態(tài)分別是:(1) ZCOS=0010 (2) ZCOS=0000 (3) ZCOS=0010 (4) ZCOS=0101(5) ZCOS=0001 4.7測(cè)試名為X的一個(gè)字節(jié),如果X的第1, 3位均為1,轉(zhuǎn)移到L1,如果只有一位為1,轉(zhuǎn)移到L2,如果兩位全為0, 轉(zhuǎn)移到L3。寫(xiě)出對(duì)應(yīng)的指令序列。答: MOV AL.XA
2、NDAL,0000 1010BJZL3CMPALOOOO 10I0BJELIJMPL2X-3X<-24.12計(jì)算分段函數(shù):Y = <5X+6 -2<X<32X >3X的值從鍵盤(pán)輸入,Y的值送顯示器輸出,答: INCLUDE YLIB.HDATA SEGEMNTMESSI DB ODH OAH. 'Input value ofX please : $MESS2 DB 0DH0AH.'Y=:$'DATA ENDSCODE SEGMENTASSUMECS: CODE, DS: DATASTART:MOVAX. DATAMOVDS, AXLEADX
3、. MESSICALLREADINT:輸入X的值CMPAX. -2JGEL2LI:SUBAX. 3:AX-X-3JMPDONEL2:CMPAX, 3JGL3MOVBX. AXADDAX. AX;AX2XADDAX. AX;AX-4XADDAX. BX;AX-5XADDAX. 6:AX-5XYJMPDONEL3:MOVAX. 2:AX-2DONE:LEA DX. MESS2CALL WRITEINT ;輸出 Y 的值CALL CRLFMOV AX, 4C00HINT 21HCODE ENDSEND START4.14編寫(xiě)程序,求10元素字?jǐn)?shù)組LIST中絕對(duì)值最小的數(shù),存入MIN單元。答: DAT
4、A SEGEMNTLIST DW -56, +12, 88,-126 -5,16, 32, -99. 72, -18MIN DW ?MINABS DW ?DATA ENDSCODE SEGMENTASSUMECS: CODE, DS: DATASTART:MOVAX. DATAMOVDS, AXMOVAX. LISTMOVMIN. AX將數(shù)組第一個(gè)元素假設(shè)為絕對(duì)值最小的數(shù)MOVMINABS, 32767最小的絕對(duì)值假設(shè)為32767LEASI, LISTMOVCX. 10AGAIN:MOVAX. SICMPAX.OJGESKIP1NEGAX求絕對(duì)值SKIP1:CMPAX. MINABS絕對(duì)值與假
5、設(shè)的最小絕對(duì)值比較JGESKIP2假設(shè)的絕對(duì)值較小,跳過(guò)MOVMINABS. AX保存新的最小絕對(duì)值MOVAX. SI取出新的絕對(duì)值最小的數(shù)MOVMIN. AX保留新的絕對(duì)值最小的數(shù)SKIP2:ADDSL2LOOPAGAINMOVAX. 4C00HINT21HCODEENDSENDSTART說(shuō)明:一定要預(yù)設(shè)最小的絕對(duì)值和絕對(duì)值最小的數(shù),而且這個(gè)絕對(duì)值最小的數(shù)必須來(lái)自LIST數(shù)組04.16 一個(gè)有符號(hào)字?jǐn)?shù)組以0為結(jié)束標(biāo)志,求這個(gè)數(shù)組的:最大值、最小值、平均值。答:DATASEGEMNTLISTDW-56, +12, 88, -126, -5, 16. 32,-99, 72,-18,0MINDW9
6、MAXDW?AVGDW9 DATAENDSCODE SEGMENTASSUME CS: CODE, DS: DATASTART:MOVAX. DATAMOVDS, AXMOVMIN,32767:將32767假設(shè)為最小的數(shù)MOVMAX, -32768:將-32768假設(shè)為最大的數(shù)MOVAVGO:AVG用作累加器,清零LEASL LISTMOVCX.OAGAIN:MOVAX. SICMPAX.OJZDONE:找到零元素,轉(zhuǎn)DONE結(jié)束處理INCCX:紀(jì)錄非零元素個(gè)數(shù)ADDAVG, AX:累加CMPAX. MINJGESKIP1MOVMIN. AX:比預(yù)設(shè)最小值還小,保留SKIP1:CMPAX. M
7、AXJLESKIP2MOVMAX. AX:比預(yù)設(shè)最大值還大,保留SKIP2:ADDSL2JMPAGAINDONE:JCXZNULL:元素個(gè)數(shù)為零,轉(zhuǎn)NULL處理MOVAX. AVGCWDIDIVCXMOVAVG, AX:計(jì)算平均值JMPEXITNULL:MOVMIN, 0:元素個(gè)數(shù)為0,將“最大值”、“最小值”MOVMAX. 0:“平均值”清零MOVAVGOEXIT:MOVAX. 4C00HINT21HCODEENDSENDSTART4.21編寫(xiě)程序,把一個(gè)30個(gè)元素的有符號(hào)字?jǐn)?shù)組ARRAY按照各元素的正負(fù)分別送入數(shù)組P和M,正數(shù)和零元素送P數(shù)組,負(fù)數(shù)送M數(shù)組。答: DATA SEGEMNTA
8、RRAYDWPDWMDWDATA ENDSCODE SEGMENT30 DUP(?)30 DUP(?)30 DUP(?);匯編之前置入數(shù)據(jù)ASSUMECS: CODE, DS: DATA8 / 15START:MOV AX. DATAMOVDS, AXLEABX, ARRAY: ARRAY 數(shù)組指針MOVSI.O: P數(shù)組指針MOVDI.0: M數(shù)組指針MOVCX, 30ONE: MOVAX. |BX;從ARRAY數(shù)組取出一個(gè)數(shù)據(jù)ANDAX. ALJGEPLUS:正數(shù)、零轉(zhuǎn)PLUSMINUS: MOVMDI,AX:負(fù)數(shù)存入M數(shù)組ADDDL2JMPNEXTPLUS: MOVP|SI, AX:正數(shù)
9、、零存入P數(shù)組ADDSL2NEXT: ADDBX,2LOOPONEMOVAX. 4C00HINT21HCODE ENDSENDSTART4.30編寫(xiě)程序,輸入N,計(jì)算:S=1 *2+2*3+.+(N-1)*N答:INCLUDE YLIB.HCODE SEGMENTMESSIDBODH. 0AH, 'Input N please: $'MESS2DBODH. 0AH/S=S,START:PUSHcsPOPDSLEADX. MESSICALLREADDEC:輸入NMOVCX. AXXORBX. BX;BX用作累加器ONE:MOVAX. CXMOVSL AXDECSIMULSI:計(jì)算
10、ADDBX. AX:累加LOOPONELEADX. MESS2MOVAX. BXCALLWRITEDEC;輸出結(jié)果CALLCRLFMOVAX. 4C00HINT21HCODEENDSENDSTARTASSUMECS: CODE4.31編寫(xiě)程序,輸入N,輸出如下矩陣(設(shè)N=5)111112 2 2 2 13 3 3 2 14 4 3 2 15 4 3 2 1答:設(shè)I為行(卜5), J為列(15),則(I,J)位置上的數(shù)據(jù)為:I>(6-J)?I:6-J ,INCLUDE YLIB.HCODE SEGMENTASSUMECS: CODESTART:CALLCRLFMOVSI. 1:SI為行號(hào)R
11、OW: MOVCX. 5:CX為6-列號(hào)COL: CMPSL CX:判斷當(dāng)前位置JBUPDOWN: MOVAX. CX:下半三角,取6-列號(hào)JMPOUTPUTUP:MOVAX. SI:上半三角,取行號(hào)OUTPUT:MOVDX.-lCALLWRITEDEC:輸出一個(gè)數(shù)據(jù)LOOPCOLCALLCRLF:結(jié)束本行INCSI;修改行號(hào)CMPSL5JBEROW:未滿(mǎn)5行,繼續(xù)MOVAX. 4C00HINT21HCODE ENDSENDSTART習(xí)題五5.4閱讀下面的程序,指出該程序計(jì)劃完成的功能,同時(shí)指出程序中尚存在的錯(cuò)誤, CODE SEGMENTASSUME: CS: CODESTART: MOV
12、LOOPO: CALLLOOPMOVINT PRINTSPACEMOVCX, 20PRINTSPACELOOPOAH. 4CH21HPROC NEARCX, 40;該行上面添加:PUSHexPSLOOP:MOVALJ 'MOVAH. 02HINT21HLOOPPSLOOPMOVAL, OAHMOVAH. 02HINT21HMOVAL. ODHMOVAH. 02HINT21HRETPRINTSPACE ENDP CODE ENDS END START;該行卜面添加:POP ex功能:輸出20行空行,每行有40個(gè)空格。5.6閱讀下面的子程序,敘述它完成的功能,它的入口參數(shù)和出口參數(shù)各是什么
13、?CLSCREENMOVMOVMOVMOVMOVINTRETCLSCREENPROCAX. 0600HCX,0 DH,X DL, YBH. 07H 10HENDP解:屏幕窗口上卷,左上角為(0, 0),右下角為(y,x),卷入行屬性為黑底白字。5.7 編寫(xiě)程序,鍵入一個(gè)以$為結(jié)束符的數(shù)字串,統(tǒng)計(jì)其中'O'“9”各個(gè)數(shù)字出現(xiàn)的次數(shù),分別存放到S0S9這1。個(gè) 單元中去。解:.MODEL SMALL.DATASO DB 0SI DB ?S2 DB 0S3DB 0S4DB 0S5DB 0S6DB 0S7DB 0S8DB 0S9DB 0KEYINDB 100 DUP(O).CODEST
14、ART:MOVAX, DATAMOVDS. AXMOVCX,0LEABX. KEYINNEXT:MOVAH.01HINT21HCMPAL. $JZCOUNTINCCXMOV|BX.ALINCBXJMPNEXTCOUNT: LEABX. KEYINCOUNT1:LEADL SOMOVAL BXSUBAL. 30HMOVAH,0ADDDL AXINCBYTE PTRDIINCBXLOOPCOUNT 1MOVAX. 4C00HINT21HENDSTART5.8 下而程序求某數(shù)據(jù)區(qū)中無(wú)符號(hào)數(shù)據(jù)最大值,觀察程序執(zhí)行中堆棧變化,畫(huà)出以下5個(gè)堆棧狀態(tài)圖。(DCALL MAX指令執(zhí)行之前(2)CALL MAX
15、指令執(zhí)行之后。(3)保護(hù)現(xiàn)場(chǎng)之前(4)恢復(fù)現(xiàn)場(chǎng)之后(5)執(zhí)行指令POP SMAX之后程序清單如下:DATABUF COUNTSMAXDATACODE ASSUMESEGMENTDWEQU DW98, 34, 897, 345, 678, 21345, 67, 2 ($-BUF)/29ENDSSEGMENTCS: CODE, DS: DATASPCOUNTBUF的偏移地址SP返回偏移地址 COUNT -BUF的偏移地址START:MOVAX. DATAMOVDS, AXLEAAX. BUF;入口參數(shù)進(jìn)棧PUSHAXMOVAX. COUNTPUSHAXCALLMAXPOPSMAX;最大值出棧,送S
16、MAXMOVAH. 4CHINT21HMAXPROCPUSHBPMOVBP, SPMOVSI. BP+6;BUF的偏移地址送SIMOVCX. BP+4;COUNT送 CXMOVBX, SI;取第一個(gè)數(shù)據(jù)至BXDECexMAXI:ADDSL2CMPBX. SIJAENEXTMOVAX. SI;取第二個(gè)數(shù)至AXNEXT:LOOPMAXIMOVBP+6L BX;最大值進(jìn)棧POPBPRET2;返回后SP指向最大值MAXENDPCODEENDSENDSTARTCALL MAX執(zhí)行之前CALL MAX執(zhí)行之后SP返回偏移地址COUNTBUF的偏移地址保護(hù)現(xiàn)場(chǎng)之前SPBP返回偏移地址COUNT 最大值恢復(fù)現(xiàn)
17、場(chǎng)之后BP返回偏移地址COUNTSP最大值執(zhí)行RET 2之后5.9 編寫(xiě)求絕對(duì)值的子程序,利用它計(jì)算三個(gè)變量的絕對(duì)值之和。解:.MODEL SMALL.DATAVALUEDW-5, 5,-10SUMDW0.CODESTART:MOVAX. DATAMOVDS. AXLEABX. VALUEMOVCX, 3MOVSUM. 0ONE:CALLABSADDSUM. AXADDBX,2LOOPONEMOVAX. 4C00HINT21H;子程序ABS;功能:求一個(gè)字整數(shù)的絕對(duì)值;入口:字整數(shù)的偏移地址在BX中;出口:該字整數(shù)的絕對(duì)值在AX中ABSPROCMOVSUM, 0AGAIN:MOVAX. BXA
18、NDAX, AXJGESKIPNEGAXSKIP:RETABSENDPENDSTART5.10 子程序計(jì)算從2開(kāi)始的N(N<50)個(gè)偶數(shù)之和(2+4+6+),主程序從鍵盤(pán)輸入整數(shù)N,調(diào)用子程序求出N個(gè)偶數(shù)9 / 15之和,并顯示結(jié)果。用以下3種方法編寫(xiě)完整程序。(1)子程序和主程序在同一代碼段。(2)在同一模塊(源程序文件),但不在同一代碼段。(3)各自獨(dú)立成模塊,即在不同的源程序文件中。解:(l)INCLUDE YLIB.H.MODEL SMALL.DATASUM DW 0PROMPT 1 DB ODH. OAH. INPUT THE NUMBER N$PROMPT? DB ODH.
19、OAH. THE SUM IS $.CODESTART:MOVAX. DATAMOVDS, AXLEADX. PROMPT 1CALLREADDECCMPAX.OJZEXITMOVCX. AXCALLSUMMLEADX. PROMPT2CALLWRITEDECCALLCRLFEXIT:MOVAX. 4C00HINT21HSUMMPROCMOVAX.ONEXT:MOVBX. CXADDBX. BXADDAX. BXLOOPNEXTRETSUMMENDPENDSTART(2)INCLUDE YLIB.H DATA SEGMENTDWODB ODH. OAH. INPUT THE NUMBER*DB
20、 ODH. OAH. 'THE SUM IS:DS: DATA, CS: CODEISUMPROMPT 1PROMPT?DATA ENDSCODEI SEGMENT ASSUME18 / 15START: MOVMOV LEA CALLAX. DATADS. AXDX. PROMPT 1READDECCMPAX.OJZEXITMOVCX, AXCALLFAR PTR SUMMLEADX, PROMPT2CALLWRITEDECCALLCRLFEXIT:MOVAX. 4C00HINT21HCODEIENDSC0DE2 SEGMENTASSUME CS: C0DE2. DS: DATASU
21、MMPROCFARMOVAX.ONEXT:MOVBX, CXADDBX, BXADDAX. BXLOOPNEXTRETSUMMENDPCODE2ENDSENDSTART(3);EXEC51O3A.ASMPUBLICCODE2ASSUMESUMMSUMMSEGMENTCS: CODE2PROC FARMOV AX, 0NEXT:MOVBX, CXADDBX. BXADDAX. BXLOOPNEXTRETSUMMCODE2ENDPENDS END;EXEC51O3B.ASMINCLUDE EXTRN DATA SUM PROMPT 1 PROMPT? DATA CODEIYLIB.HSUMMSEG
22、MENTDW 0DB ODH, OAH. INPUT THE NUMBER*DB ODH, OAH, THE SUM IS$ENDSSEGMENTASSUMEDS: DATA, CS: CODEISTART:MOVAX, DATAMOVDS. AXLEADX, PROMPT 1CALLREADDECCMPAX,0JZEXITMOVCX, AXCALLFAR PTR SUMMLEADX. PROMPT2CALLWRITEDECCALLCRLFEXIT:MOVAX. 4C00HINT21HCODEIENDSENDSTART5.19 編寫(xiě)排序子程序SORT,以DS、SI和CX作為入口參數(shù),把DS:S
23、I為起始地址的一個(gè)帶符號(hào)的字?jǐn)?shù)組進(jìn)行由小到 大排序,參數(shù)CX中存放的是數(shù)組中元素個(gè)數(shù)。解:DATAREASEGMENTARRAYDW 1,9,6, 8,5,4CNTDW6ADDRDW ?DATAREAENDSCODE SEGMENTASSUME CS: CODE. DS: DATAREASTART:MOVAX. DATAREAMOVDS. AXLEASI. ARRAYMOVCX. CNTCALLSORTMOVAX. 4C00HINT21HSORTPROCPUSHCXPUSHAXPUSHBXPUSHSIINIT:MOVBX. 1DECCXJZSORTEDPUSHSIPUSHCXNEXT:MOVAX. SICMPSI+2,AXJGEXCHGCONTSI+2,AXMOVSI, AXXORBX. BXCONT: ADDSL2LOOPNEXTPOPSIPOPCXCMPBX.OJEINITSORTED:POPSIPOPBXPOPAXPOPCXRETSORT ENDPCODE ENDSENDSTART;置交換標(biāo)志5.20 編寫(xiě)一個(gè)子程序,以AX為入口參數(shù),把AX中的各個(gè)二進(jìn)制位顛倒次序后還放回AX中。例如,入口參數(shù)AX=11001
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小區(qū)兩間門(mén)面租賃合同
- 單位向私人借款合同書(shū)
- 國(guó)際空運(yùn)運(yùn)輸代理合同
- 風(fēng)險(xiǎn)管理與應(yīng)對(duì)策略制定作業(yè)指導(dǎo)書(shū)
- 2025年泰安考從業(yè)資格證貨運(yùn)試題
- 小學(xué)三年級(jí),五年級(jí)下冊(cè)數(shù)學(xué)口算題比賽試卷
- 小學(xué)二年級(jí)數(shù)學(xué)萬(wàn)以?xún)?nèi)口算題
- 2025年北京交通運(yùn)輸從業(yè)資格證怎樣考試
- 2025年西藏貨運(yùn)從業(yè)資格證模擬考試系統(tǒng)
- 2025年烏蘭察布下載貨運(yùn)從業(yè)資格證模擬考試題
- 實(shí)驗(yàn)動(dòng)物與動(dòng)物福利
- 南京地區(qū)幼兒園室內(nèi)空氣污染物與兒童健康的相關(guān)性研究
- 2024年湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案解析
- (正式版)SHT 3115-2024 石油化工管式爐輕質(zhì)澆注料襯里工程技術(shù)規(guī)范
- (正式版)JBT 9630.1-2024 汽輪機(jī)鑄鋼件無(wú)損檢測(cè) 第1部分:磁粉檢測(cè)
- 平安產(chǎn)險(xiǎn)陜西省地方財(cái)政生豬價(jià)格保險(xiǎn)條款
- 地震應(yīng)急救援培訓(xùn)課件
- 《南京瞻園賞析》課件2
- 《有責(zé)任有擔(dān)當(dāng)青春才會(huì)閃光》教學(xué)課件-2023-2024學(xué)年高一下學(xué)期愛(ài)國(guó)主義教育主題班會(huì)
- 初中物理光學(xué)難題難度含解析答案
- 幼兒中班故事《豬太太生寶寶》課件
評(píng)論
0/150
提交評(píng)論