版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、微機原理與匯編語言程序設計報告 所在學院: 計算機工程學院 專 業(yè): 計算機科學與技術(網(wǎng)絡工程) 班 級: 11計3Z 姓 名: 黃申祥 學 號: 11141313 2013年6月1日1、 程序功能:1 從鍵盤輸入N個帶符號數(shù)(N值也從鍵盤輸入,N=65535),帶符號數(shù)為16位二進制數(shù)范圍;2 找出這N個數(shù)中的最大值和最小值,并且顯示出來;3 計算這N個數(shù)的平均值,并且顯示出來。2、 程序設計總體思路程序按功能所屬主要分為7個模塊,7個模塊分別為一個主程序;SHOW歡迎子程序;NUM取數(shù)據(jù)個數(shù)子程序;READ數(shù)據(jù)輸入子程序;WRITE數(shù)據(jù)顯示子程序;MAXMIN求數(shù)據(jù)最大最小值子程序;ME
2、AN求數(shù)據(jù)平均值子程序。另外,為了更好地輸入輸出顯示,還設計了DPCRLF光標回車換行子程序、NDPCRLF多個空格輸出顯示子程序。整個程序通過主程序中相關指令調(diào)用各個子程序,實現(xiàn)各個功能,這種模塊化的設計方法不僅簡化了主程序,還可以重復利用已有子程序,提高編程效率。3、 程序分析程序運行之初,首先展現(xiàn)在屏幕上的是程序歡迎界面。主程序通過調(diào)用SHOW歡迎子程序以實現(xiàn)此功能。歡迎界面之后,程序提示輸入數(shù)據(jù)個數(shù)N,通過調(diào)用NUM取數(shù)據(jù)個數(shù)子程序由此得到執(zhí)行READ數(shù)據(jù)輸入子程序的次數(shù),通過多重循環(huán)執(zhí)行此子程序以取得N個數(shù)據(jù)。當數(shù)據(jù)輸入完成、順利保存后,通過調(diào)用BIOS功能實現(xiàn)對屏幕原有字句進行清除
3、,調(diào)用WRITE數(shù)據(jù)顯示子程序?qū)⒂脩糁拜斎氲臄?shù)據(jù)顯示在屏幕上,數(shù)據(jù)的輸入顯示格式通過調(diào)用NDPCRLF多個空格輸出顯示子程序?qū)崿F(xiàn)。進行最大最小值判斷,通過調(diào)用MAXMIN求數(shù)據(jù)最大最小值子程序,利用循環(huán)取得各個數(shù)據(jù)與假設的最大最小值進行比較,滿足一定條件后將其替換。計算平均值,通過調(diào)用MEAN求數(shù)據(jù)平均值子程序,利用循環(huán)累加各個數(shù)據(jù)并除以N,求得最終結(jié)果。4、 程序流程圖1 主程序流程圖2 SHOW歡迎子程序流程圖3 NUM取數(shù)據(jù)個數(shù)子程序流程圖4 READ數(shù)據(jù)輸入子程序流程圖5 WRITE數(shù)據(jù)顯示子程序流程圖6 MAXMIN求數(shù)據(jù)最大最小值子程序流程圖7 MEAN求數(shù)據(jù)平均值子程序流程圖5
4、、 源程序列表文件內(nèi)容Microsoft (R) Macro Assembler Version 6.11 06/02/13 01:24:33tempfile.asm Page 1 - 1 0000DSEGSEGMENT;數(shù)據(jù)段 0000 77 65 6C 63 6F 6DMESS0DBwelcome to this program! -HUANG SHENXIANG 65 20 74 6F 20 74 68 69 73 20 70 72 6F 67 72 61 6D 21 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
5、20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
6、20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2D 2D 2D 2D 48 55 41 4E 47 20 53 48 45 4E 58 49 41 4E 47 00C8 3D 3D 3D 3D 3D 3DMESS1DB =Welcome to this program!=,$ 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 57 65 6C 63 6F 6D 65 20 74 6F 20 74 68 69 7
7、3 20 70 72 6F 67 72 61 6D 21 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 24 0101 50 6C 65 61 73 65MESS2DB Please input N(N=65535):,$ 20 69 6E 70 75 74 20 4E 28 4E 3C 3D 36 35 35 33 35 29 3A 24 011B 50 6C 65 61 73 65MESS3DB Please input numbers:,$ 20 69 6E 70 75 74 20 6E 75 6D 62 65 72 73 3A 24 0
8、131 0A 0D 0A 0D 59 6FMESS4DB 0AH,0DH,0AH,0DH,Your input are:,$ 75 72 20 69 6E 70 75 74 20 61 72 65 3A 24 0145 0A 0D 54 68 65 20MESS5DB 0AH,0DH,The MAX is:,$ 4D 41 58 20 69 73 3A 24 0153 0A 0D 54 68 65 20MESS6DB 0AH,0DH,The MIN is:,$ 4D 49 4E 20 69 73 3A 24 0161 0A 0D 54 68 65 20MESS7DB 0AH,0DH,The A
9、VERAGE is:,$ 41 56 45 52 41 47 45 20 69 73 3A 24 0173 00DISPMODDB ? 0174 0000COUNTDW ? 0176 03E8 ARRAYDW 1000 DUP(0) 0000 0946 0000WTEMPDW ? 0948 0000MAXAYDW ? 094A 0000MINAYDW ? 094CDSEGENDS 0000SSEGSEGMENT STACK;堆棧段 0000 0080 DB80HDUP(0) 00 0080SSEGENDS 0000CSEGSEGMENT;代碼段ASSUME DS:DSEG,SS:SSEG,CS
10、:CSEG 0000 B8 - RSTART:MOVAX,DSEG 0003 8E D8MOVDS,AX 0005 FCCLD ;CLD使DF復位,即DF=0,STD使DF置位,即DF=1 0006 E8 01B2CALLSHOW ;調(diào)用顯示歡迎界面 0009 BA 00C8 RMOVDX,OFFSET MESS1;顯示歡迎橫幅于第二頁 000C B4 09MOVAH,09H 000E CD 21INT21H 0010 E8 018CCALLDPCRLF 0013 E8 0189CALLDPCRLF 0016 BA 0101 RMOVDX,OFFSET MESS2;輸入元素個數(shù) 0019 B4
11、 09MOVAH,09H 001B CD 21INT21H 001D E8 009CCALL NUM;調(diào)用INPUT子程序 0020 8B 0E 0174 RMOV CX,COUNT;將輸入的元素個數(shù)值N傳遞給CX計數(shù)寄存器 0024 BB 0176 RMOV BX,OFFSET ARRAY 0027 BA 011B RMOVDX,OFFSET MESS3;輸入N個元素 002A B4 09MOVAH,9H 002C CD 21INT21H 002E E8 016ECALLDPCRLF 0031 E8 0094AGAIN1:CALLREAD;調(diào)用READ子程序,輸入元素 0034 89 07M
12、OVBX,AX;將出口參數(shù)存放到數(shù)據(jù)緩沖區(qū) 0036 43INCBX 0037 43INCBX 0038 E8 0164CALLDPCRLF;調(diào)用DPCRLF子程序,光標回車換行以便輸入下一元素 003B E2 F4LOOPAGAIN1 003D B0 03MOVAL,3H 003F CD 10INT10H 0041 8B 0E 0174 RMOVCX,COUNT 0045 BB 0176 RMOVBX,OFFSET ARRAY 0048 BA 00C8 RMOVDX,OFFSET MESS1;顯示歡迎橫幅于第二頁 004B B4 09MOVAH,09H 004D CD 21INT21H 00
13、4F BA 0131 RMOVDX,OFFSET MESS4 0052 B4 09MOVAH,09H 0054 CD 21INT21H 0056 E8 0146CALLDPCRLF 0059 8B 07AGAIN2: MOV AX,BX 005B A3 0946 RMOV WTEMP,AX;將入口參數(shù)存放到共享變量 005E E8 00A8CALL WRITE ;調(diào)用WRITE子程序,顯示一個元素 0061 83 C3 02ADD BX,2 0064 E8 0149CALL NDPCRLF ;調(diào)用NDPCRLE子程序,光標回車換行以便顯示下一個數(shù)據(jù) 0067 E2 F0LOOP AGAIN2
14、;執(zhí)行COUNT次循環(huán) 0069 B4 02MOVAH,2 006B B2 0DMOV DL,0DH 006D CD 21INT 21H 006F B2 0AMOVDL,0AH 0071 CD 21INT21H 0073 8B 0E 0174 RMOVCX,COUNT 0077 B8 0176 RMOVAX,OFFSET ARRAY 007A E8 00CFCALLMAXMIN ;調(diào)用MAXMIN子程序 007D BA 0145 RMOV DX,OFFSET MESS5 0080 B4 09MOV AH,09H 0082 CD 21INT 21H 0084 A1 0948 RMOV AX,MA
15、XAY 0087 A3 0946 RMOV WTEMP,AX 008A E8 007CCALLWRITE ;調(diào)用WRITE子程序輸出MAXAY 008D BA 0153 RMOVDX,OFFSET MESS6 0090 B4 09MOVAH,09H 0092 CD 21INT21H 0094 A1 094A RMOVAX,MINAY 0097 A3 0946 RMOVWTEMP,AX 009A E8 006CCALLWRITE ;調(diào)用WRITE子程序輸出MINAY 009D BA 0161 RMOV DX,OFFSET MESS7 00A0 B4 09MOV AH,09H 00A2 CD 21
16、INT 21H 00A4 A1 0174 RMOV AX,COUNT 00A7 50PUSH AX 00A8 B8 0176 RMOV AX,OFFSET ARRAY 00AB 50PUSH AX 00AC E8 00C3CALL MEAN 00AF 83 C4 04ADD SP,4 00B2 A3 0946 RMOV WTEMP,AX 00B5 E8 0051CALL WRITE ;調(diào)用WRITE子程序輸出平均值 00B8 B4 4CMOVAH,4CH 00BA CD 21INT 21H 00BCNUMPROC 00BC 50PUSHAX 00BD E8 0008CALLREAD 00C0
17、A3 0174 RMOVCOUNT,AX 00C3 E8 00D9CALLDPCRLF 00C6 58POPAX 00C7 C3RET 00C8NUMENDP 00C8READPROC;輸入有符號十進制數(shù)的通用子程序:READ 00C8 53PUSHBX;出口參數(shù):AX=補碼表示的二進制數(shù)值 00C9 51PUSHCX;負數(shù)用“-”引導,數(shù)據(jù)范圍是+32767-32768 00CA 52PUSHDX 00CB 33 DBXORBX,BX;BX保存結(jié)果 00CD 33 C9XORCX,CX;CX為正負標志,0為正,-1為負 00CF B4 01MOVAH,1;輸入一個字符 00D1 CD 21I
18、NT21H 00D3 3C 2BCMPAL,+;是“+”,繼續(xù)輸入字符 00D5 74 07JZREAD1 00D7 3C 2DCMPAL,-;是“-”,設置-1標志 00D9 75 07JNZREAD2 00DB B9 FFFFMOVCX,-1 00DE B4 01READ1:MOVAH,1;繼續(xù)輸入字符 00E0 CD 21INT21H 00E2 3C 30READ2:CMPAL,0;不是09之間的字符,則輸入數(shù)據(jù)結(jié)束 00E4 72 16JBREAD3 00E6 3C 39CMPAL,9 00E8 77 12JAREAD3 00EA 2C 30SUBAL,30H;是09之間的字符,則轉(zhuǎn)換
19、為二進制數(shù);利用移位指令,實現(xiàn)數(shù)值乘10:BXBX 017D 8B 4E 06MOV CX,BP+6;從堆棧中取得數(shù)據(jù)個數(shù)-CX 0180 33 F6XOR SI,SI;SI保存求和的低16位值 0182 8B FEMOV DI,SI;DI保存求和的高16位值 0184 8B 07MEAN1:MOV AX,BX;取出一個數(shù)據(jù)-AX 0186 99CWD;符號擴展-DX 0187 03 F0ADD SI,AX;求和低16位 0189 13 FAADC DI,DX;求和高16位 018B 43INC BX;指向下一個數(shù)據(jù) 018C 43INC BX 018D E2 F5LOOP MEAN1;循環(huán)
20、018F 8B C6MOV AX,SI;累加和在DX.AX 0191 8B D7MOV DX,DI 0193 8B 4E 06MOV CX,BP+6;數(shù)據(jù)個數(shù)在CX 0196 F7 F9IDIV CX;有符號數(shù)除法,求的平均值在AX中(余數(shù)在DX中) 0198 5FPOP DI;恢復寄存器 0199 5EPOP SI 019A 5APOP DX 019B 59POP CX 019C 5BPOP BX 019D 5DPOP BP 019E C3RET 019FMEANENDP 019FDPCRLFPROC;使光標回車換行的子程序 019F 50PUSH AX 01A0 52PUSH DX 01A
21、1 B4 02MOV AH,2 01A3 B2 0DMOV DL,0DH 01A5 CD 21INT 21H 01A7 B4 02MOV AH,2 01A9 B2 0AMOV DL,0AH 01AB CD 21INT 21H 01AD 5APOP DX 01AE 58POP AX 01AF C3RET 01B0DPCRLFENDP 01B0NDPCRLF PROC ;使顯示器顯示多個空格的子程序 01B0 50PUSHAX 01B1 52PUSHDX 01B2 B4 02MOVAH,2 01B4 B2 09MOV DL,9H 01B6 CD 21INT 21H 01B8 5APOP DX 01
22、B9 58POP AX 01BA C3RET 01BBNDPCRLF ENDP 01BBSHOWPROC 01BB B4 0FMOVAH,0FH;讀取顯示模式 01BD CD 10INT10H;調(diào)用INT 10H中斷 01BF A2 0173 RMOVDISPMOD,AL 01C2 B4 00MOVAH,0 01C4 B0 03MOVAL,3 ;調(diào)用INT 10H中斷3號功能顯示文字 01C6 CD 10INT10H 01C8 8C D8MOVAX,DS 01CA 8E C0MOVES,AX 01CC BD 0000 RMOVBP,OFFSET MESS0 01CF BA 0C1EMOVDX,
23、0C1EH ;控制顯示的位置最大的行是24,最大列是八十 01D2 B9 00C8MOVCX,200 ;控制顯示的字符的個數(shù) 01D5 B7 00MOVBH,0 01D7 B3 0CMOVBL,0CH ;以BL實現(xiàn)控制字體顏色與背景顏色功能,前四位是背景色;后四位是字體顏色 01D9 B4 13MOVAH,13H 01DB B0 01MOVAL,1H 01DD CD 10INT10H 01DF B4 00MOVAH,0 01E1 CD 16INT16H 01E3 B4 00MOVAH,0 01E5 A0 0173 RMOVAL,DISPMOD 01E8 CD 10INT10H 01EA C3R
24、ET 01EBSHOWENDP 01EBCSEGENDS END START Microsoft (R) Macro Assembler Version 6.11 06/02/13 01:24:33tempfile.asm Symbols 2 - 1Segments and Groups: N a m e Size Length Align Combine ClassCSEG . . . . . . . . . . . . . .16 Bit 01EB Para Private DSEG . . . . . . . . . . . . . .16 Bit 094C Para Private S
25、SEG . . . . . . . . . . . . . .16 Bit 0080 Para Stack Procedures, parameters and locals: N a m e Type Value AttrDPCRLF . . . . . . . . . . . . .P Near 019F CSEGLength= 0011 PublicMAXMIN . . . . . . . . . . . . .P Near 014C CSEGLength= 0026 Public MAXCK . . . . . . . . . . . .L Near 0155 CSEG MINCK .
26、 . . . . . . . . . . .L Near 0160 CSEG NEXT . . . . . . . . . . . . .L Near 0166 CSEGMEAN . . . . . . . . . . . . . .P Near 0172 CSEGLength= 002D Public MEAN1 . . . . . . . . . . . .L Near 0184 CSEGNDPCRLF . . . . . . . . . . . .P Near 01B0 CSEGLength= 000B PublicNUM . . . . . . . . . . . . . .P Nea
27、r 00BC CSEGLength= 000C PublicREAD . . . . . . . . . . . . . .P Near 00C8 CSEGLength= 0041 Public READ1 . . . . . . . . . . . .L Near 00DE CSEG READ2 . . . . . . . . . . . .L Near 00E2 CSEG READ3 . . . . . . . . . . . .L Near 00FC CSEG READ4 . . . . . . . . . . . .L Near 0103 CSEGSHOW . . . . . . .
28、. . . . . . .P Near 01BB CSEGLength= 0030 PublicWRITE . . . . . . . . . . . . .P Near 0109 CSEGLength= 0043 Public WRITE1 . . . . . . . . . . . .L Near 011B CSEG WRITE2 . . . . . . . . . . . .L Near 0129 CSEG WRITE3 . . . . . . . . . . . .L Near 012D CSEG WRITE4 . . . . . . . . . . . .L Near 013C CS
29、EG WRITE5 . . . . . . . . . . . .L Near 0148 CSEGSymbols: N a m e Type Value AttrAGAIN1 . . . . . . . . . . . . .L Near 0031 CSEGAGAIN2 . . . . . . . . . . . . .L Near 0059 CSEGARRAY . . . . . . . . . . . . .Word 0176 DSEGCOUNT . . . . . . . . . . . . .Word 0174 DSEGDISPMOD . . . . . . . . . . . .Byte 0173 DSEGMAXAY . . . . . . . . . . . . .Word 0948 DSEGMESS0 . . . . .
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版醫(yī)藥企業(yè)藥品市場營銷推廣合同范本3篇
- 醫(yī)院通信光纜敷設合同
- 智能教育清運施工合同
- 沿海公路擴建項目合同
- 包裝加工工程安裝施工承包合同
- 電力工程委托策劃合同模板
- 家具制造招投標注意事項
- 2025版能源行業(yè)勞動合同安全生產(chǎn)與應急管理合同3篇
- 2024年物流園區(qū)停車場運營管理承包合同范本3篇
- 2024年牙科醫(yī)療器械公司與制造商關于義齒加工的合同
- 跨國公司財務管理課后習題答案
- 公園對地價和環(huán)境的影響
- 人教版(2019)高一物理必修第三冊 13.5能量量子化 課件(共18張PPT)
- 新會計準則財務報表模板(帶公式)
- 溝槽管件尺寸對照表
- 建模案例—飛行管理問題
- 美術教案雄偉的塔教學反思
- (完整版)復變函數(shù)與積分變換公式
- 境外匯款申請書(模板)
- JTG-G10-2016)公路工程施工監(jiān)理規(guī)范
- 學習解讀《生豬屠宰管理條例》專題講授PPT課件
評論
0/150
提交評論