




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優質文檔-傾情為你奉上公司名稱實驗二 順序、分支、循環、子程序設計微機原理上機實驗作者姓名日期預習報告零、相關知識1,LEA指令和MOV指令的區別一、順序結構計算m*n-w,最終結果保存在AX其中m=12, n=12, w=4最終結果為AX=008CH=140Dname "sequence strcture"org 100hMOV AX, 1000HMOV DS, AXMOV SI, 1000H MOV SI, 12MOV SI+1, 12MOV SI+2, 4MOV AL, SIMOV BL, SI+1MUL BLMOV BX, 0MOV BL, SI+2SUB AX
2、, BX HLT二、分支結構在DS數據段偏移地址為DATA開始的順序80個單元中,存放著某班80個同學的微機原理考試成績。現欲編程序統計>=90、8970、6960和<60分的人數,并將統計的結果存放在當前數據段偏移地址為BUFFER的順序單元中name “branch structure”START:MOV DX, 0000HMOV BX, 0000HMOV CX, 80LEA SI, DATALEA DI, BUFFERGOON:MOV AL, SICMP AL, 90JC NEXT3INC DHJMP STORNEXT3:CMP AL, 70JC NEXT5INC DLJMP
3、 STORNEXT5:CMP AL, 60JC NEXT7INC BHJMP STORNEXT7:INC BLSTOR:INC SILOOP GOONMOV DI, DHMOV DI+1, DLMOV DI+2, BHMOV DI+3, BLHLT三、循環結構在DS所決定的數據段,從偏移地址BUFFER開始順序存放100個無符號16位數。現欲編程序將這100個數按大小順序排序(以下程序使用的是快速排序算法,也可以使用冒泡排序,嵌套兩層循環)name “circle structure”LEA DI, BUFFERMOV BL, 99NEXT0:MOV SI, DIMOV CL, BLNEXT3
4、:MOV AX, SIADD, SI, 2CMP AX, SIJNC NEXT 5MOV DX, SIMOV SI-2, DXMOV SI, AXNEXT5:DEC CLJNZ NEXT3DEC BLJNZ NEXT0HLT四、子程序編寫程序,完成將一組BCD數轉換成16位二進制數。(BCD數轉換成16位二進制數用子程序實現)下面提供三種方案,分別用寄存器、儲存器和堆棧傳遞參數使用寄存器傳遞參數name "text subprogram using register"STACK SEGMENT STACK DB 256 DUP(?)STACK ENDSDATA SEGMEN
5、T BCD1 DB 07H, 06H, 07H, 02H, 03H LENG1 DB 5 RESULT DW ?DATA ENDSCODEM SEGMENT ASSUME CS:CODEM, DS:DATA, SS:STACK START: MOV AX, DATA MOV DS, AX LEA SI, BCD1 MOV CX, LENG1 CALL FAR PTR BCD-16B MOV RESULT, DX MOV AH, 4CH INT 21HCODEM ENDSCODES SEGMENT ASSUME CS:CODES ;the part of subprogram BCD-16B P
6、ROC FAR PUSH BX PUSH AX ADD SI, CX MOV DX, 0 BCDL: DEC SI PUSH CX MOV AL, SI AND AL, 0FH CBW MOV BX, AX MOV AX, DX MOV CX, 10 MUL CX MOV DX, AX ADD DX, BX POP CX LOOP BCDL POP AX POP BX RET BCD-16B ENDPCODES ENDSEND START使用儲存器傳遞參數name "text subprogram using store"STACK SEGMENT STACK DB 256
7、 DUP(?)STACK ENDSDATA SEGMENT BCD1 DB 07H, 06H, 07H, 02H, 03H ADSEG DW ? ADOFST DW ? LENG1 DW ? RESULT DW ?DATA ENDSCODEM SEGMENT ASSUME CS:CODEM, DS:DATA, SS:STACK START: MOV AX, DATA MOV DS, AX ;entrance parameter MOV AX, SEG BCD1 MOV ADSEG, AX MOV AX, OFFSET BCD1 MOV ADOFST, AX MOV LENG1, 5 CALL
8、FAR PTR BCD-16B MOV AH, 4CH INT 21HCODEM ENDSCODES SEGMENT ASSUME CS:CODES ;the part of subprogram BCD-16B PROC FAR PUSH BX PUSH AX PUSH SI PUSH DS MOV DS, ADSEG MOV SI, ADOFST MOV CX, LENG1 XOR DX, DX ADD SI, CX BCDL: DEC SI PUSH CX MOV AL, SI AND AL, 0FH CBW MOV BX, AX MOV AX, DX MOV CX, 10 MUL CX
9、 MOV DX, AX ADD DX, BX POP CX LOOP BCDL POP AX POP BX POP DS POP SI RET BCD-16B ENDPCODES ENDSEND START使用堆棧傳遞參數name "text subprogram using stack"STACK SEGMENT STACK DB 256 DUP(?)STACK ENDSDATA SEGMENT BCD1 DB 07H, 06H, 07H, 02H, 03H LENG1 DW ? RESULT DW ?DATA ENDSCODEM SEGMENT ASSUME CS:CO
10、DEM, DS:DATA, SS:STACK START: MOV AX, DATA MOV DS, AX ;push PUSH DS LEA SI, BCD1 PUSH SI MOV CX, LENG1 PUSH CX CALL FAR PTR BCD-16B POP DX MOV RESULT, DX MOV AH, 4CH INT 21HCODEM ENDSCODES SEGMENT ASSUME CS:CODES ;the part of subprogram BCD-16B PROC FAR PUSH BP MOV BP, SP PUSH DS PUSH SI PUSH CX PUS
11、H BX PUSH AX MOV CX, BP+6 MOV SI, BP+8 MOV DS, BP+10 ADD SI, CX MOV DX, 0 BCDL: DEC SI PUSH CX MOV AL, SI AND AL, 0FH CBW MOV BX, AX MOV AX, DX MOV CX, 10 MUL CX MOV DX, AX ADD DX, BX POP CX LOOP BCDL POP AX POP BX POP CX POP DS POP SI POP BP RET A BCD-16B ENDPCODES ENDSEND START正式實驗報告一、實驗要求1教材P74例1
12、。m=6,n=4,w=7。結果Q也放在內存中。2教材P75例3。3從鍵盤上輸入1個數,判斷其奇偶性,如果是奇數,屏幕上顯示”It is odd”,否則顯示”It is even”。4從鍵盤上輸入N個字符(N<16),求這N個字符中A的個數,并將A的個數顯示在屏幕上。5. 已知BUF1中有N1個按從小到大的順序排列的互不相等的無符號數,BUF2中有N2個從小到大的順序排列的互不相等的無符號數。編寫程序將BUF1和BUF2中的數合并到BUF3中,使在BUF3中存放的數互不相等且按從小到大的順序排列。6. 需要預習報告。二、實驗目的學習順序、分支、循環結構以及子程序的編程設計。三、實驗過程(調
13、試分析)3.1 textbook page74-1最后的計算結果應該為AX=6*4-7=17D=11Horg 100hMOV AX, 1000HMOV DS, AXMOV SI, 1000H MOV SI, 6MOV SI+1, 4MOV SI+2, 7MOV AL, SIMOV BL, SI+1MUL BL; 6*4->ALMOV BX, 0MOV BL, SI+2SUB AX, BX HLT3.2 textbook page75-3用"0","1","C","D","E","
14、O","P","Q","R","S","$"的ASCII值代表10位學生的分數,分別為48/49/67/68/69/79/80/81/82/83分name "textbook page75-3"data segment SCORES DB "0","1","C","D","E","O","P","Q",&qu
15、ot;R","S","$" ;48/49/67/68/69/79/80/81/82/83ends code segmentstart: ASSUME DS:DATA, CS:CODE MOV AX, DATA MOV DS, AX MOV CX, 10 MOV SI, OFFSET SCORES;<-> MOV SI, OFFSET SCORES MOV DI, 0000H GOON:MOV AL, SICMP AL, 90JC NEXT3INC DHJMP STORNEXT3:CMP AL, 70JC NEXT5INC DLJMP
16、 STORNEXT5:CMP AL, 60JC NEXT7INC BHJMP STORNEXT7:INC BLSTOR:INC SILOOP GOONMOV DI, DHMOV DI+1, DLMOV DI+2, BHMOV DI+3, BLendsend start由結果可知:DH=0,DL=5,BH=3,BL=2說明90以上0人,8970有5人,6960有3人,小于60有2人3.3 experiment 2-3name "experiment 2-3" data segment HEX1 DB 0AH,0DH,"It is even$" HEX2 D
17、B 0AH,0DH,"It is odd$"0AH,0DH換行+回車 endscode segment start: ASSUME DS:DATA MOV AX, DATA MOV DS, AX ;read from the keyboard MOV CX, 16 DO: MOV AH, 01H INT 21H CMP AL, 13 JZ NEXT0 MOV BL, AL LOOP DO NEXT0: SUB BL, 48 MOV AL, BL MOV BL, 2 DIV BL CMP AH, 1 JNZ NEXT1 JZ NEXT2 NEXT1: LEA DX, HEX1
18、 MOV AH, 09H INT 21H HLT NEXT2: LEA DX, HEX2 MOV AH, 09H INT 21H endsend start若輸入的為偶數若輸入的為奇數3.4 experiment 2-4name "experiment 2-4"data segment HEX DB 16 DUP(0) endscode segmentstart: ASSUME DS:DATA MOV AX, DATA MOV DS, AX MOV CX, 16;read from keyboardread: CMP CX, 1 JZ STOP MOV AH, 01H IN
19、T 21H CMP AL, 65 JZ count CMP AL, 13 JZ STOP LOOP read ;count 'A' characterscount: INC BL LOOP read STOP: MOV AH, 02H MOV DL, 0AH INT 21H; 打印換行 MOV DL, 0DH INT 21H;打印回車 ADD BL, 48 MOV DL, BL INT 21Hendsend start3.5 experiment 2-5冒泡排序,沒有在BUF3中除去重復的字符此題設兩個字符串為BUF1 = ”ACEGIK”BUF2 = ”BDFJLHMN”na
20、me "experiment 2-5"此程序不需要壓入堆棧保護的數據data segment BUF1 DB "ACEGIK$" BUF2 DB "BDFJLHMN$" BUF3 DB 14 DUP(0) ends stack segment DB 256 DUP(0)endscode segmentstart: ASSUME DS:DATA, CS:CODEL, SS:STACK MOV AX, DATA MOV DS, AX LEA BX, BUF1 LEA SI, BUF2 LEA DI, BUF3 CALL remove CA
21、LL reorder;段內轉移,若段間轉移,測試一下格式 ;print on the screen LEA DX, BUF3 MOV AH, 09H INT 21H HLT remove proc near MOV CX, 6 DO1: MOV AX, BX MOV DI, AX INC BX INC DI LOOP DO1 MOV CX, 8 DO2: MOV AX, SI MOV DI, AX INC SI INC DI LOOP DO2 RET remove endp reorder proc near MOV CX, 13;注意是13,思考清楚 JUDGE1: LEA DI, BUF3 PUSH CX MOV CX, 13 JUDGE2: MOV AL, DI MOV BL, DI+1 CMP AL, BL JC NEXT1 MOV DI+1, AL MOV DI, BL NEXT1: INC DI LOOP JUDGE2 POP CX LOOP JUDGE1 RET reorder endpend start采用串的合并的算法,可以除去BUF3中重
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 寧波工程學院《成本會計學》2023-2024學年第二學期期末試卷
- 吉林城市職業技術學院《傳感與檢測技術》2023-2024學年第二學期期末試卷
- 九江職業技術學院《云計算和大數據技術》2023-2024學年第二學期期末試卷
- 南京城市職業學院《商務決策模型》2023-2024學年第二學期期末試卷
- 2024年發電機組、內燃發電機組及旋轉式變流機項目資金需求報告代可行性研究報告
- 核磁共振成像設備維護保養培訓
- 學生個人規劃課件
- 小學生感恩教育主題班會
- 新馬高級中學高中歷史一導學案第課甲午中日戰爭和八國聯軍侵華戰爭
- 2025年中國石油天然氣管道通信電力工程有限公司招聘筆試參考題庫含答案解析
- (三模)合肥市2025屆高三年級5月教學質量檢測英語試卷(含答案)
- 天津2025年天津市面向昌都籍未就業少數民族高校畢業生招聘事業單位人員筆試歷年參考題庫附帶答案詳解
- 別樣的碰碰車大戰
- HACCP計劃年度評審報告
- 黑布林英語A Test for Jess獲獎課件
- API SPEC 5DP-2020鉆桿規范
- 石方爆破及安全施工工藝流程圖
- 市場部經理年終總結PPT模板
- 醫院版LIS操作手冊(共84頁)
- 優秀畢業設計精品]語音放大電路的設計
- MT103的欄位說明
評論
0/150
提交評論