




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
軟件實驗一匯編語言程序的調(diào)試與運行一.實驗目的1.學習數(shù)據(jù)傳送和算術運算指令的用法2.熟悉在PC機上編輯、匯編、連接、調(diào)試和運行匯編語言程序的過程。二.實驗內(nèi)容將兩個多位十進制數(shù)相加,要求被加數(shù)和加數(shù)均以ASCII碼形式各自順序存放在DATA1和DATA2為首的5個內(nèi)存單元中,結果送回DATA1處。三.程序框圖圖1.1兩個多位十進制相加程序流程圖四.程序清單 DISP MACROX MOV DL,X;要顯示的字符送DL寄存器 MOV AH,02H;DOS功能調(diào)用號是02H INT 21H;21H中斷程序是DOS功能調(diào)用 ENDM DATA SEGMENT DATA1 DB'12732' DATA2 DB'06815' N EQU$-DATA2 DATA ENDS STACK SEGMENTSTACK STA DB20DUP(?) TOP EQU$-STA STACK ENDS CODE SEGMENT ASSUMECS:CODE,DS:DATA,SS:STACK,ES:DATA START:MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX LEA SI,DATA1 ;☆ MOV BX,0 MOV CX,N CALL DISPL ;顯示被加數(shù) DISP '+' LEA SI,DATA2 MOV BX,0 MOV CX,N CALL DISPL ;顯示加數(shù) DISP '=' LEA DI,DATA1 MOV CX,N CALL ADDA ;調(diào)用加法子程序 LEA SI,DATA1 MOV BX,0 MOV CX,N CALL DISPL ;顯示運算結果 DISP 0DH DISP 0AH MOV AX,4C00H INT 21H DISPL PROC ;顯示子程序 DS1: MOV AH,02H MOV DL,[SI+BX] INT 21H INC BX LOOP DS1 RET DISPL ENDP ADDA PROC ;加法子程序 PUSH CX MOV BX,0 AD1:SUB BYTEPTR[SI+BX],30H SUB BYTEPTR[DI+BX],30H INC BX LOOP AD1 POP CX PUSH CX MOV BX,N-1 ;☆☆ CLC AD2: MOV AL,[SI+BX] ADC AL,[DI+BX] AAA MOV [DI+BX],AL DEC BX LOOP AD2 POP CX PUSH CX MOV BX,0 ;☆☆☆ AD3:ADD BYTEPTR[DI+BX],30H INC BX LOOP AD3 POP CX RET ;☆☆☆☆ ADDA ENDP CODE ENDS END START五.調(diào)試步驟1.編輯源程序,建立一個以后綴為.ASM的文件.2.匯編源程序,檢查程序有否錯誤,有錯時回到編輯狀態(tài),修改程序中錯誤行。無錯時繼續(xù)第3步。連接目標程序,產(chǎn)生可執(zhí)行程序。TDEBUG調(diào)試可執(zhí)行程序,記錄數(shù)據(jù)段DS:0~DS:10的內(nèi)容。進入TDEBUG程序后。執(zhí)行程序至星號處DS:0H~DS:0AH的內(nèi)容☆(CS:000FH)☆☆(CS:0076H)☆☆☆(CS:0086H)☆☆☆☆(CS:0090H)在操作系統(tǒng)狀態(tài)下,運行程序,并記錄屏幕顯示內(nèi)容。被加數(shù)加數(shù)屏幕顯示內(nèi)容127320681510732436916508717631六.思考題將上述程序改為5位數(shù)相加,結果為6位數(shù)的加法程序。(需考慮進位)簡單敘述上機步驟,調(diào)試方法。[注意]將源代碼部分直接拷貝到文本文件中,再將其擴展名改為.a(chǎn)sm。使用個人主頁中的匯編語言編譯器(TASM.EXE或MASM.EXE之一均可),將1中的源文件編譯成擴展名為.obj的目標文件;再將其鏈接成為可執(zhí)行文件(使用TLINK.EXE文件或LINK.EXE文件之一均可);例如:假設源文件名為temp.asm。匯編過程如下:masmtemp.asmlinktemp.obj執(zhí)行temp.exe文件即可TDEBUG程序可在個人主頁中下載;直接雙擊運行;程序清單的開始定義了一段宏,作用是顯示X字符;宏的作用相當于一個函數(shù),可以在后續(xù)的程序中直接調(diào)用 DISP0DH和DISP0AH是顯示換行回車符
軟件實驗二分支程序設計一.實驗目的掌握分支結構程序的編制方法。二.實驗內(nèi)容與要求編制程序實現(xiàn)如下操作:設有10個學生成績,分別統(tǒng)計低于60分、60~69分、70~79分、80~89分、90~99分及100分的人數(shù),并存放于S5、S6、S7、S8、S9、S10單元中。三.程序框圖開始開始初始化計數(shù)單元初始化計數(shù)單元初始化循環(huán)計數(shù)值初始化循環(huán)計數(shù)值初始化首地址初始化首地址取一個成績?nèi)∫粋€成績<60?<60?N<70?0?<70?0?S6+1NY<80?0?<80?0?<90?0<90?0?Y<100?0?<100?0?NS9+1YS10+1修改地址N循環(huán)結束?結束結束圖1.2統(tǒng)計學生成績程序流程圖四.程序清單: ; 統(tǒng)計學生成績 DATA SEGMENT GRADEDW95H,60H,75H,92H,71H,86H,54H,89H,83H,76H NEQU($—GRADE)/2 ORG30H S5 DW0 S6 DW0 S7 DW0 S8 DW0 S9 DW0 S10 DW0 DATA` ENDS ; STACK SEGMENTSTACK STA DB20DUP(0)TOPEQU$—STA STACKENDS ; CODE SEGMENT MAIN PROCFAR ASSUMECS:CODE,DS:DATA,SS:STACK START:PUSHDS SUBAX,AXPUSHAX MOVAX,DATA MOVDS,AX MOVCX,N LEABX,GRADE;成績表首地址 COMPARE: MOVAX,[BX] CMPAX,60H;<60? JLFIVE CMPAX,70H ;<70? JLSIX CMPAX,80H ;<80? JLSEVEN CMPAX,90H ;<90? JLEIGHT CMPAX,100H ;=100 JNENINE INCS10 JMPCHA NINE:INCS9 JMPCHA EIGHT:INCS8 JMPCHA SEVEN: INCS7 JMPCHA SIX: INCS6 JMPCHA FIVE: INCS5 JMPCHA CHA: ADDBX,2 ;循環(huán)學生人數(shù) LOOPCOMPARE RET MAIN ENDP CODE ENDS ENDSTART 執(zhí)行程序后,將結果分別填入下列表中N(總人數(shù))S5S6S7S8S9S10五.思考題計算出各等級成績百分比。分別填入下面表的A、B、C、D、E、中增加統(tǒng)計平均成績一項。平均成績EDCBA軟件實驗三循環(huán)程序設計一.實驗目的掌握循環(huán)程序設計的方法(兩重性循環(huán)結構)掌握正確分配與使用寄存器。二.實驗內(nèi)容與要求以GRADE為首地址的10個字的數(shù)組中保存有學生成績。建立一個10個字的RNAK數(shù)組,并根據(jù)GRADE中的學生成績將學生名次填入RANK數(shù)組中(提示:一個學生的名次等于成績高于等于該學生的人數(shù)加1)。寄存器分配情況說明如下:AX存放當前被測學生的成績BX存放當前被測學生的相對地址指針CX內(nèi)循環(huán)計數(shù)值DX存放當前被測學生的名次計數(shù)值SI內(nèi)循環(huán)測試時的地址指針DI外循環(huán)計數(shù)值三。程序框圖圖1.3程序框圖四.程序清單(將程序補充完整) ; 建立學生成績名次表 DATASEGMENT GRADE DW88H,75H,95H,63H,98H,78H,87H,73H,90H,60H COUNT EQU($-GRADE)/2 ORG20H RANK DW10DUP(?) DATA ENDS ; STACK SEGMENTSTACK STA DB20DUP(20H) TOP EQU$—STA STACK ENDS ; CODE SEGMENT ASSUMECS:CODE,DS:DATA,SS:STACK START: MOVAX,DATA MOVDS,AX MOVAX,STACK MOVSS,AX MOVSP,TOP MOVDI,;成績的個數(shù) MOVBX,0 LOOP1: MOVAX,GRADE[BX],1 MOVCX,COUNT SI,GRADE;成績的存放地址 NEXT: CMPAX,[SI] NO_COUNT INCWORDPTRRANK[BX];存放學生名次 NO_COUNT:ADDSI,2 NEXT ADDBX,2 DECDI LOOP1 MOVAX,4C00H INT21H CODE ENDS END START五.思考題1.改為通過鍵盤輸入方式提供學生成績。2.將成績與名次在屏幕上顯示。3.指出控制循環(huán)程序的方法,并劃分該程序的四個組成部分軟件實驗四子程序結構一.實驗目的1.掌握程序設計方法,合理劃分層次2.掌握子程序的調(diào)用與返回的方法3.了解子程序的嵌套與遞歸二.實驗內(nèi)容與要求編制一程序,要求鍵入一個班的學生成績,并存放于50字的ERADE數(shù)組中,然后根據(jù)ERADE中的成績,把學生名次填入50字的RANK數(shù)組中,再按學號順序把名次從終端上顯示出來。提示:程序MAIN功能:根據(jù)輸入的學生成績,計算并顯示出學生名次。程序INPUT功能:接收一個班級學生的成績,各成績之間用空格隔開。程序RANKP功能:計算一個班級學生的名次。(可參照循環(huán)程序(一)中的程序段)程序OUTPUT功能:輸出(顯示)一個班級的學生名次程序DECIBIN功能:十進制轉換二進制,存入BX程序BINDEC功能:十進制轉換二進制,并在屏幕上顯示。程序DEC_DIV功能:BX的內(nèi)容除以CX的內(nèi)容,并在屏幕上顯示一位商。三.程序框圖:圖1.4程序流程圖四.部分程序清單1.鍵入學生成績(成績之間用空格間隔,回車結束輸入)INPUT PROC MOV SI,0 MOV COUNT,0ENTER:CALL DECIBIN INC COUNTCMP DL,‘’JZ STORECMP DL,0DHJZ EXITJMP RET1STORE:MOV GRADE[SI],BXADD SI,2 JMP ENTEREXIT:MOV GRADE[SI],BXRET1: RETINPUT ENDP2.十進制轉換成二進制DECIBIN PROCMOV BX,0NEM: MOV AH,1INT 21HMOV DL,ALCMP AL,30HJL EXIT1CMP AL,39HJG EXITSUB AL,30HCBWXCHG AX,BXMOV CX,10MUL CLXCHG AX,BXADD BX,AXJMP NEWEXIT1:RETDECIBIN ENDP3.二進制轉換成十進制BINIDECPROC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025新鮮蔬菜購銷合同
- 2025設施租賃維護合同范本
- 2025至2030年中國吊牌行業(yè)投資前景及策略咨詢報告
- 2025至2030年中國雙軸刨桿機行業(yè)投資前景及策略咨詢報告
- 2025至2030年中國倒三角平面砂帶機行業(yè)投資前景及策略咨詢報告
- 2025至2030年中國U型封箱釘行業(yè)投資前景及策略咨詢報告
- 2025年中國高領搖粒套頭衫市場調(diào)查研究報告
- 考科目一試題庫及答案
- 2025局部建筑施工合同(已修正)
- 中小學區(qū)域教師均衡配置問題與對策研究
- 《招標投標法》考試題庫200題(含答案)
- 某有限公司業(yè)務員提成管理制度方案范例(3篇)
- R1快開門式壓力容器操作考試題庫(含答案)
- 操作系統(tǒng)原理 習題及答案(機工孟慶昌第2版)
- 抽錯血標本護理不良事件
- 專題05 地質(zhì)地貌-【好題匯編】十年(2015-2024)高考地理真題分類匯編(原卷版)
- 項目勞務招投標管理辦法
- 國開(陜西)2024年秋《刑法學#》形考作業(yè)1-4答案
- 2024年式電動出租車租賃合同
- 代理人招聘協(xié)議范例
- 2024年中考英語作文熱點話題預測《AI人工智能》
評論
0/150
提交評論