



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、.實驗五:宏指令及子程序設(shè)計實驗院系名稱:學生姓名:專業(yè)名稱:班級:電子工程學院李倩( 33)電子信息工程電子 0808'.宏指令及子程序設(shè)計實驗5.5.1實驗?zāi)康?、熟悉宏指令、宏定義、宏調(diào)用以及宏展開的概念;掌握宏指令的定義與調(diào)用的方法。2、掌握子程序的定義、調(diào)用以及調(diào)用程序與子程序之間參數(shù)的傳遞方法。3、了解宏指令與子程序的異同以及各自的適用場合。5.5.2實驗預(yù)習要求1、復(fù)習宏指令的定義與調(diào)用方法。2、復(fù)習過子程序的定義與調(diào)用方法。3、根據(jù)“ 2.5.3 實驗內(nèi)容”中給出的流程圖和程序框架編寫源程序,以便上機調(diào)試。4、從“ 2.5.4 實驗習題”中任選一道題目,編寫源程序,以便
2、上機調(diào)試。5.5.3實驗內(nèi)容從鍵盤輸入10 個無符號十進制數(shù) (小于 256),將其轉(zhuǎn)換為二進制數(shù)并存放在NUM 字節(jié)型變量中,找出其中的最大數(shù),并將找出的最大數(shù)在屏幕上顯示出來。要求:在屏幕上顯示字符串提示信息的功能由宏指令DSTRING實現(xiàn);將鍵盤輸入的十進制數(shù)轉(zhuǎn)換成二進制數(shù)由子程序DTOB 實現(xiàn); 在 N 個無符號字節(jié)型二進制數(shù)中找出最大數(shù)的功能由子程序FMAX實現(xiàn);將一個無符號字節(jié)型二進制數(shù)轉(zhuǎn)換為十進制數(shù)并在屏幕上顯示的功能由子程序 BTOAD 實現(xiàn)。程序運行結(jié)果如右圖所示。1、編程指導(dǎo)( 1)顯示提示信息的宏指令DSTRING 的編寫宏指令通常用于在程序中需要反復(fù)使用但所需指令條數(shù)又
3、不是很多的情形;而對于需要經(jīng)常使用且需要較多指令才能完成的功能通常通過子程序調(diào)用來實現(xiàn)。這是因為, 從執(zhí)行速度上看,由于子程序調(diào)用涉及到保護斷點的操作,因此,子程序調(diào)用比宏調(diào)用執(zhí)行時間相對要稍長一些;但從生成的可執(zhí)行文件的大小方面考慮,子程序調(diào)用生成的文件要小一些。讀者在進行匯編語言程序設(shè)計時,應(yīng)綜合考慮兩者的利弊,以便進行合理選擇。下面給出實現(xiàn)提示信息顯示的宏指令的定義:DSTRINGMACROSTRINGPUSHDXPUSHAXMOVDX,OFFSET STRINGMOVAH,09HINT21HPOPAXPOPDXENDM請讀者注意,宏指令應(yīng)該先定義,后調(diào)用。因此,宏定義通常緊跟在代碼段中
4、段寄存器賦值指令之'.后給出。( 2)將鍵盤輸入的十進制數(shù)轉(zhuǎn)換為二進制數(shù)的子程序DTOB 的編寫子程序的定義方法請參閱教材“ 5.6.4 子程序設(shè)計”一節(jié)。將十進制數(shù)轉(zhuǎn)換為二進制數(shù)的程序代碼請參閱本書“ 2.4.3 實驗內(nèi)容”中“編程指導(dǎo)”部分。( 3)在 N 個無符號字節(jié)型二進制數(shù)中找出最大數(shù)的子程序FMAX的編寫請參閱教材“5.6.3 循環(huán)程序設(shè)計”一節(jié)例5.12。( 4)將一個無符號字節(jié)型二進制數(shù)轉(zhuǎn)換為十進制數(shù)并在屏幕上顯示的子程序BTOAD 的編寫程序代碼請參閱本書“2.4.3 實驗內(nèi)容”中“編程指導(dǎo)”部分。2、 源程序 :COUNT EQU 10DA TA SEGMENTMA
5、DB0NUM DB 10 DUP(?)IBUF DB 7,0,6 DUP(?)OBUF DB 6 DUP(?)INFOR1 DB "Please input 10 numbers:(<256)",10,13,'$'INFOR2 DB "THE MAX FOOUND IN THE 10NUMBERS IS "INFOR3 DB 10,13,'$'DA TA ENDSSTACK SEGMENT STACKDATA2 DW 40 DUP(?)TOP EQU LENGTH DATA2STACK ENDSCODE SEGMEN
6、TASSUME CS:CODE,DS:DA TA,SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AX,TOPMOV SP,AXDSTRING MACROSTIPUSH DXPUSH AXLEA DX,STIMOV AH,9INT 21HPOP AXPOP DXENDMDSTRING INFOR1MOV BX,OFFSET NUMMOV CX,COUNTLOOP1: CALL STOB'.DSTRING INFOR3MOV BX,ALINC BXLOOP LOOP1MOV AX,OFFSET NUMPUSH AXM
7、OV CX,COUNTPUSH CXCALL FMAXDSTRING INFOR2CALL BTOADMOV AH,4CHINT 21HSTOB PROCPUSH CXPUSH BXPUSH DXMOV DX,OFFSET IBUFMOV AH,10INT 21HMOV CL,IBUF1XOR CH,CHMOV DL,0MOV BL,1MOVSI ,OFFSET IBUF1INC SIADD SI,CXLOP5: MOV AL,SISUB AL,30HMUL BLADD DL,ALMOV AL,10MUL BLMOV BL,ALDEC SILOOP LOP5MOV AL,DLPOP DXPOP
8、 BXPOP CXRETSTOB ENDP;定義在 N 個無符號字節(jié)型二進制數(shù)中找出最大數(shù)的子程序FMAXFMAX PROC'.MOV BP,SPMOV SI,BP+4mov CX, BP+2DEC CXMOV AL,SILOP2: INC SIMOV AH,SICMP AH,ALJBE NEXTXCHG AH,ALNEXT : LOOP LOP2MOV MA,ALRETFMAX ENDPBTOAD PROCMOV AL,MAXOR AH,AHMOV BL,100MOV CX,3LOP3:DIV BLPUSH AXMOV DL,ALADD DL,30HMOV AH,2INT 21HMO
9、V AL,BLXOR AH,AHMOV BL,10DIV BLMOV BL,ALPOP AXMOV AL,AHXOR AH,AHLOOP LOP3RETBTOAD ENDPCODE ENDSEND START實驗結(jié)果:'.2.5.4實驗習題1、從鍵盤輸入 N 個十進制數(shù), 求它們的和 (累加和要求不大于 65535),并將累加結(jié)果在屏幕上顯示出來。要求給出必要的提示信息(用宏調(diào)用完成) ;累加功能由子程序調(diào)用實現(xiàn);二進制數(shù)形式的累加和轉(zhuǎn)換為十進制數(shù)并顯示由子程序調(diào)用實現(xiàn)。源程序:COUNT EQU 10DA TA SEGMENTNUM DW 10 DUP(?)IBUF DB 6,0,6
10、 DUP(?)SUM DW0INFOR1 DB "Please input 10 numbers:",10,13,'$'INFOR2 DB "THE SUM IS "INFOR3 DB 10,13,'$'DA TA ENDSSTACK SEGMENT STACKDATA2 DW 40 DUP(?)TOP EQU LENGTH DATA2STACK ENDSCODE SEGMENTassume CS:CODE,DS:DA TA,SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV AX,STACKMO
11、V SS,AXMOV AX,TOPMOV SP,AXDSTRING MACROSTI;顯示字符信息的宏指令PUSH DXPUSH AXPUSH BXPUSH CXLEA DX,STIMOV AH,9INT 21HPOP CX'.POP BXPOP AXPOP DXENDMDSTRING INFOR1MOV BX,OFFSET NUMMOV CX,COUNTLOOP1:CALL STOBDSTRING INFOR3MOV BX,AXINC BXINC BXLOOP LOOP1MOV AX,OFFSET NUMPUSH AX;通過堆棧向子程序傳遞參數(shù)MOV CX,COUNTPUSH CXC
12、ALL GETSUMDSTRING INFOR2DSTRING INFOR3CALL BTOADMOV AH,4CHINT 21HSTOB PROCPUSH CXPUSH BXPUSH DXMOV DX,OFFSET IBUFMOV AH,10INT 21HMOV CL,IBUF1XOR CH,CHMOV DX,0MOV BX,1MOVSI ,OFFSET IBUF1ADD SI,CXLOP5: MOV AL,SISUB AL,30HPUSH DXXOR AH,AHMUL BXPOP DXADD DX,AXPUSH DX'.MOV AX,10MUL BXMOV BX,AXDEC SIP
13、OP DXLOOP LOP5MOV AX,DXPOP DXPOP BXPOP CXRETSTOB ENDPGETSUM PROCPUSH SIPUSH BPPUSH CXPUSH DXMOV BP,SPMOV SI,BP+12mov CX, BP+10MOV DX,0LOP2:MOV AX,SIADD DX,AXADDSI,2LOOP LOP2MOV AX,DXMOV SUM,DXPOP DXPOP CXPOP BPPOP SIRETGETSUM ENDPBTOAD PROCPUSH DXPUSH CXPUSH BXPUSH AXXOR DX,DXMOV BX,10000MOV CX,5LOP3:DIV BXPUSH DXMOV DL,AL'.ADD DL,30HMOV AH,2INT 21HMOV AX,BXXOR DX,DXMOV BX,10DIV BXMOV BX,AXPOP AXXOR DX,DXLOOP LOP3POP AXPOP BXPOP CXPOP DXRET
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 加油加氣站合同范例
- 養(yǎng)殖投標合同范例
- 借款合同范例不收利息
- 書進貨合同范例
- 住房貸款合同范例
- 典當合同范例5
- 健身器材合同范例110網(wǎng)
- 上海燃氣合同范例
- 幾分包合同范例
- 代工加工招商合同范例
- 歷史-貴州省貴陽市2025年高三年級適應(yīng)性考試(一)(貴陽一模)試題和答案
- 2025中國國際工程咨詢限公司總部社會招聘20人易考易錯模擬試題(共500題)試卷后附參考答案
- 江西省高職單招《職測》備考試題集及答案(含歷年真題)
- 河北省醫(yī)學院校高職單招職業(yè)技能測試必會題集及答案(含真題)
- 大學生維護國家安全
- 旅游規(guī)劃與開發(fā) 課件 第四章 旅游地形象策劃與功能分區(qū)
- 2025年北京社會管理職業(yè)學院高職單招高職單招英語2016-2024年參考題庫含答案解析
- 2024年江蘇食品藥品職業(yè)技術(shù)學院高職單招語文歷年參考題庫含答案解析
- 政治學原理(第三版)課件匯 景躍進 第1-8章 政治的性質(zhì)與核心問題 -意識形態(tài):性質(zhì)與功能
- 新能源汽車復(fù)習題+參考答案
- 苦蕎深加工項目可行性研究報告
評論
0/150
提交評論