微機原理實驗指導書(學生_第1頁
微機原理實驗指導書(學生_第2頁
微機原理實驗指導書(學生_第3頁
微機原理實驗指導書(學生_第4頁
微機原理實驗指導書(學生_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 昆明理工大學 微機原理及程序設(shè)計實驗指導書段紹米 編 昆明理工大學信息工程與自動化學院自動化系2013年10月微機原理實驗實驗要求及運行環(huán)境1、 實驗要求與注意事項:交紙質(zhì)版實驗報告,實驗要求:實驗成績百分制(總分100分)實驗過程(50分)提前預(yù)習,寫好實驗報告,標好注釋,修改好程序;10分個人按要求獨立完成,填好實驗結(jié)果,對實驗程序進行講解,按時交實驗報告20分不做與本實驗無關(guān)的事(如玩游戲、聊天、打電話、聽音樂等)5分不得缺席,實驗簽名(兩份),按要求填寫設(shè)備號實驗名稱等,不帶他人簽名5分帶走自己的垃圾,保持實驗室衛(wèi)生,電腦設(shè)備桌椅擺設(shè)整齊,保管好個人物品5分按秩序進出實驗室,不擁擠,

2、注意安全,愛護設(shè)備,保證設(shè)備完好5分實驗報告(50分)報告紙要統(tǒng)一,全部手寫并填寫好表頭,包括:實驗名稱、姓名、學號、班級任課老師等2分實驗?zāi)康?、實驗?nèi)容3分程序框圖5分程序清單5分讀懂程序加注釋(每句注釋13+分段注釋7)20分實驗結(jié)果,實驗中經(jīng)老師檢查過5分程序修改,實驗要求的完成及結(jié)果(可用藍/黑在原程序上標明,并加注釋)10分交電子版實驗報告,實驗要求:實驗成績百分制(總分100分)實驗過程(50分)提前預(yù)習,標好程序注釋,修改好程序;10分個人按要求獨立完成,填好實驗結(jié)果,對實驗程序進行講解,按時交實驗報告20分不做與本實驗無關(guān)的事(如玩游戲、聊天、打電話、聽音樂等)5分不得缺席,實

3、驗簽名(兩份),按要求填寫設(shè)備號實驗名稱等,不帶他人簽名5分帶走自己的垃圾,保持實驗室衛(wèi)生,電腦設(shè)備桌椅擺設(shè)整齊,保管好個人物品5分按秩序進出實驗室,不擁擠,注意安全,愛護設(shè)備,保證設(shè)備完好5分實驗報告(50分)報告按統(tǒng)一格式要求填寫,包括:課程名稱、姓名、學號、班級任課老師等10分實驗報告包括實驗?zāi)康摹嶒瀮?nèi)容、程序框圖、程序清單、實驗要求5分讀懂程序加注釋(每句注釋13+分段注釋7)20分實驗結(jié)果,實驗中經(jīng)老師檢查過5分程序修改,實驗要求的完成及結(jié)果(可用其他顏色標明添加的程序,與原程序不同,并加注釋)10分2、實驗運行環(huán)境在電腦中裝ASM Masm for windows 集成實驗環(huán)境2

4、008。雙擊圖標打開ASM MasM for windows 集成實驗環(huán)境運行工作界面,輸入實驗程序代碼,調(diào)試、改錯、保存、運行、查看結(jié)果,進行記錄。運行結(jié)果顯示:實驗一 兩個多位十進制數(shù)相加的實驗一、 實驗?zāi)康?、學習數(shù)據(jù)傳送和算術(shù)運算指令的用法。2、熟悉在PC機上建立、匯編、鏈接、調(diào)試和運行8088匯編語言程序的過程。二、 實驗內(nèi)容將兩個多位十進制數(shù)相加。要求被加數(shù)均以ASCII碼形式各自順序存放在以DATA1和DATA2為首的5個內(nèi)存單元中(低位在前),結(jié)果送回DATA1處。三、 程序框圖 顯示被加數(shù)和加數(shù)被加數(shù)和加數(shù)以ASCII碼表示的數(shù)字串形式轉(zhuǎn)化為由十六進制表示的數(shù)字串形式 計數(shù)值

5、5CX 清除最低位進位 執(zhí)行ADC帶進位相加 AAA調(diào)整 結(jié)果送被加數(shù)區(qū) 調(diào)整偏移量 N CX1=0? Y 十六進制的結(jié)果轉(zhuǎn)化為ASCII碼表示的數(shù)字串 顯示結(jié)果結(jié)束四、 程序清單CRLF MACRO ;宏定義,宏名:CRLF MOV DL, 0DH ;把0DH給DL MOV AH, 02H ; 把02H給AH INT 21H ;系統(tǒng)功能調(diào)用實現(xiàn)回車功能 MOV DL, 0AH ;把0AH給DL MOV AH, 02H ; 把02H給AH INT 21H ;系統(tǒng)功能調(diào)用實現(xiàn)換行功能 ENDM ;宏定義結(jié)束本段實現(xiàn)回車換行功能 DATA SEGMENT;數(shù)據(jù)段定義,段名DATA DATA1 DB

6、 33H, 39H, 31H, 37H, 34H; 變量DATA1中裝入加數(shù) DATA2 DB 36H, 35H, 30H, 38H, 32H; 變量DATA2中裝入被加數(shù) DATA ENDS;數(shù)據(jù)段定義結(jié)束本段實現(xiàn)了兩個數(shù)據(jù)的定義 STACK SEGMENT STA DB 20 DUP(?) TOP EQU LENGTH STA STACK ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:STACK, ES:DATA START: MOV AX, DATA MOV DS, AX MOV AX, STACK MOV SS, AX MOV AX, TO

7、P MOV SP, AX MOV SI, OFFSET DATA2 MOV BX, 05 CALL DISPL CRLF MOV SI, OFFSET DATA1 MOV BX, 05 CALL DISPL CRLF MOV DI, OFFSET DATA2 CALL ADDA MOV SI, OFFSET DATA1 MOV BX, 05 CALL DISPL CRLF MOV AX, 4C00H INT 21H DISPL PROC NEAR DS1: MOV AH, 02 MOV DL, SI+BX-1 INT 21H DEC BX JNZ DS1 RET DISPL ENDP ADDA

8、 PROC NEAR MOV DX, SI MOV BP, DI MOV BX, 05 AD1: SUB BYTE PTR SI+BX-1 , 30H SUB BYTE PTR DI+BX-1 , 30H DEC BX JNZ AD1 MOV SI, DX MOV DI, BP MOV CX, 05 CLC AD2: MOV AL, SI MOV BL, DI ADC AL, BL AAA MOV SI , AL INC SI INC DI LOOP AD2 MOV SI, DX MOV DI, BP MOV BX, 05 AD3: ADD BYTE PTR SI+BX-1, 30H ADD

9、BYTE PTR DI+BX-1, 30H DEC BX JNZ AD3 RET ADDA ENDP CODE ENDS END START五、 實驗要求1 讀懂源程序,寫出源程序注釋。2 寫出實驗結(jié)果。3 把源程序修改為任意兩個六位十進制相加。并思考如果最高位有進位怎么辦?實驗二 字符匹配程序一、實驗?zāi)康恼莆仗崾拘畔⒌氖褂梅椒版I盤輸入信息的用法。二、實驗內(nèi)容編寫程序,實現(xiàn)兩個字符串比較。如果兩個字符串中有一個字符相同,顯示“MATCH”,否則,顯示“NO MATCH”。三、程序框圖段寄存器及堆棧初始化 顯示“請輸入字符串1”使用INT 21H的0A號子功能,接收鍵入的字符串顯示“請輸入字符

10、串2”指針SI指向串1的首字符SI指向的字符串和串2中所有字符作比較 Y 相等? N SI+1,指向串1中下一字符 N 串1中的字符已取完? Y顯示“NO MATCH” 顯示“MATCH” 返回DOS四、程序清單CRLF MACRO MOV AH,02H MOV DL,0DH INT 21H MOV AH,02H MOV DL,0AH INT 21H ENDM DATA SEGMENTMESS1 DB MATCH,0DH,0AH,$MESS2 DB NO MATCH,0DH,0AH,$MESS3 DB INPUT STRING1:,0DH,0AH,$ MESS4 DB INPUT STRING

11、2:,0DH,0AH,$MAXLEN1 DB 81ACTLEN1 DB ?STRING1 DB 81 DUP (?)MAXLEN2 DB 81ACTLEN2 DB ?STRING2 DB 81 DUP (?)DATA ENDSSTACK SEGMENT STACKSTA DB 50 DUP (?)TOP EQU LENGTH STASTACK ENDS CODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AX MOV ES,AX MOV AX,STACK MOV SS,AX MOV SP,TO

12、P MOV AH,09H MOV DX,OFFSET MESS3 INT 21H MOV AH,0AH MOV DX,OFFSET MAXLEN1 INT 21H CRLF MOV AH,09H MOV DX,OFFSET MESS4 INT 21H MOV AH,0AH MOV DX,OFFSET MAXLEN2 INT 21H CRLF CLD MOV SI,OFFSET STRING1 MOV CL,SI-1 MOV CH,00H KKK: MOV DI,OFFSET STRING2 PUSH CX MOV CL,DI-1 MOV CH,00H MOV AL,SI MOV DX,DI R

13、EPNZ SCASB JZ GGG INC SI POP CX LOOP KKK MOV AH,09H MOV DX,OFFSET MESS2 INT 21H JMP PPP GGG: MOV AH,09H MOV DX,OFFSET MESS1 INT 21HPPP: MOV AX,4C00H INT 21HCODE ENDSEND START五、實驗要求1 讀懂源程序,寫出程序注釋。2 寫出實驗結(jié)果。3 修改源程序,使其實現(xiàn),當兩個字符串中所有字符都匹配(注意字符串的長度和順序)時才顯示“MATCH”,否則顯示“NO MATCH”。實驗三 排序?qū)嶒炓?、實驗?zāi)康恼莆沼脜R編語言編寫排序程序的思

14、路和方法。二、實驗內(nèi)容從首地址為1000H開始存放50個數(shù),要求設(shè)計程序?qū)⑦@些數(shù)由小到大排序,排序后的數(shù),仍放在該區(qū)域中。三、程序框圖 入口 段寄存器和堆棧初始化 顯示“請輸入段址” 調(diào)GETNUM,鍵入段址送ES顯示“請輸入偏移量” 調(diào)GETNUM,鍵入偏移量SIDS也指向附加段外循環(huán)次數(shù)SORTNUM1送CX偏移指針BX清0 A從SI+BX單元取數(shù)AL 交換單元指針AH=BL CX入棧 計算內(nèi)循環(huán)次數(shù)送CX內(nèi)循環(huán)控制變量DX初始化 DX值+1 比較AL與DX指示單元的值 N AL較大? Y DX指示單元的值賦給AL,并修改指針AH NCX1=0? Y 交換SI+BX單元和AH指針指示的單元

15、的值偏移指針BX+1 CX 出棧NA CX1=0? Y顯示“SORT OK!”循環(huán)調(diào)DISP1,將排序后的數(shù)依次顯示出來 返回DOS四、程序清單CRLF MACRO MOV AH,02H MOV DL,0DH INT 21H MOV AH,02H MOV DL,0AH INT 21HENDMDATA SEGMENTORG 160HDATA1 DB 0ah,09h,08h,07h,06h,05h,04h,03h,02h,01hSORTNUM EQU 10 MESS1 DB INPUT SEGMENT VALUE:$ MESS2 DB INPUT OFFSET VALUE:$MESS3 DB SO

16、RT OK!,0DH,0AH,$ERROR DB INPUT ERROR!,0DH,0AH,$DATA ENDSSTACK SEGMENTSTA DW 32 DUP(?) TOP DW ? STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AX MOV ES,AX MOV SP,TOP MOV AH,09H MOV DX,OFFSET MESS1 INT 21H CALL GETNUM MOV ES,DX CRLF MOV AH,09H MOV DX,OFFSET MES

17、S2 INT 21H CALL GETNUM MOV SI,DX PUSH ES POP DS; DS= ES MOV CX,SORTNUM DEC CX XOR BX,BXIII: MOV AL,SI+BX MOV AH,BL PUSH CX MOV CX,SORTNUM SUB CX,BX DEC CX MOV DX,BX JJJ: INC DX PUSH BX MOV BX,DX CMP AL,SI+BX JBE UUU MOV AL,SI+BX MOV AH,DLUUU: POP BX LOOP JJJ MOV CL,SI+BX MOV SI+BX,AL MOV DL,AH PUSH

18、BX MOV BX,DX MOV SI+BX,CL POP BX INC BX POP CX LOOP III PUSH DS MOV AX,DATA MOV DS,AX MOV AH,09H MOV DX,OFFSET MESS3 INT 21H POP DS MOV CX,SORTNUMVVV: MOV AL,SI CALL DISP1 CRLF INC SI LOOP VVV MOV AX,4C00H INT 21HDISP1 PROC NEAR PUSH CX MOV BL,AL MOV DL,BL MOV CL,04 ROL DL,CL AND DL,0FH CALL DISPL M

19、OV DL,BL AND DL,0FH CALL DISPL POP CX RETDISP1 ENDPDISPL PROC NEAR ADD DL,30H CMP DL,3AH JB DDD ADD DL,27HDDD: MOV AH,02H INT 21H RET DISPL ENDP GETNUM PROC NEAR PUSH CX XOR DX,DXGGG: MOV AH,01H INT 21H CMP AL,0DH JZ PPP CMP AL,20H JZ PPP SUB AL,30H JB KKK CMP AL,0AH JB GETS CMP AL,11H JB KKK SUB AL

20、,07H CMP AL,0FH JBE GETS CMP AL,2AH JB KKK CMP AL,2FH JA KKK SUB AL,20HGETS: MOV CL,04 SHL DX,CL XOR AH,AH ADD DX,AX JMP GGGKKK: MOV AH,09H MOV DX,OFFSET ERROR INT 21HPPP: PUSH DX CRLF POP DX POP CX RETGETNUM ENDP CODE ENDSEND START五、 實驗要求1 讀懂程序,寫出程序注釋。2 寫出實驗結(jié)果。3 修改程序,使其實現(xiàn)從大到小的排序 實驗四 接收年、月、日信息顯示的程序一

21、、實驗?zāi)康恼莆枕戔彿椒?,并且掌握年、月、日的輸入方法。二、實驗?nèi)容先顯示“WHAT IS THE DATA (MM/DD/YY)?”并響鈴一次,然后接收鍵盤輸入的月/日/年信息,并顯示。三、程序框圖入口 段寄存器和堆棧初始化 顯示“WHAT IS THE DATA” 輸出響鈴字符 調(diào)GETNUM,接收鍵入的月值,日值及年值 調(diào)DISP顯示年值 輸出字符“” 調(diào)DISP顯示月值 輸出字符“”調(diào)DISP顯示日值 返回DOS四、程序清單CRLFMACROMOVAH,02HMOVDL,0DHINT21HMOVAH,02HMOVDL,0AHINT21HENDMDATASEGMENTMESSDB WHA

22、T IS THE DATA(MM/DD/YY)?,0DH,0AH,$ERRORDBINPUT ERROR!,0DH,0AH,$DATAENDSSTACKSEGMENTSTADW32 DUP(?)TOPDW?STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVSP,TOPMOVAH,09HMOVDX,OFFSET MESSINT21HMOVAH,02HMOVDL,07HINT21HCALLGETNUMPUSHDXCALLGETNUMPUSHDXCALLGETNUM

23、MOVAX,DXCALLDISPMOVAH,02HMOVDL,INT21HPOPDXPOPAXCALLDISPPMOVAH,02HMOVDL,INT21HMOVAX,DX CALLDISPP INT21HDISPPPROCNEARMOVBL,ALMOVDL,BLMOVCL,04MOVDL,CLANDDL,0FHCALLDISPLMOVDL,BL ANDDL,0FHCALLDISPLMOVDL,BLANDDL,0FHCALLDISPLRETDISPPENDPDISPLPROCNEARADDDL,30HCMPDL,3AHJBDDDADDDL,27HDDD:MOVAH,02HINT21HRETDIS

24、PLENDPDISPPROCNEARPUSHBXPUSHCXPUSHDXPUSHAXMOVAL,AHCALLDISPPPOPAXCALLDISPPPOPDXPOPCXPOPBXRETDISPENDPGETNUMPROCNEARPUSHCXXORDX,DXGGG:MOVAH,01HINT 21HCMPAL,0DHJZPPPCMPAL,20HJZPPPSUB AL,30HJBKKKCMPAL,11HJBKKKSUB AL,07HCMP AL,0FHJBEGETSJBKKKCMPAL,2FHJAKKKSUB AL,20HGETS:MOVCL,04HSHL DX,CLXORAH,AHADDDX,AXJ

25、MPGGGKKK:MOVAH,09HMOVDX,OFFSET ERRORINT 21HPPP:PUSHDXCRLFPOPDXPOPCXRETGETNUMENDPCODEENDSENDSTART程序CRLF MACRO ;宏定義MOV DL,0DHMOV AH,02HINT 21HMOV DL,0AHMOV AH,02HINT 21HENDM ;回車換行DATA SEGMENT ;數(shù)據(jù)段定義MESS DB WHAT IS THE DATE(MM/DD/YY),0DH,0AH,$ERROR DB 0DH,0AH,INPUT ERROR!,0DH,0AH,$NIAN DW 0000HDATA END

26、SSTACK SEGMENT ;堆棧段定義STA DW 32 DUP(?)TOP DW ?STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV AX,STACK MOV SS,AX MOV SP,TOP MOV AH,09H MOV DX,OFFSET MESS INT 21H ;09功能顯示字符串MOV AH,02HMOV DL,07HINT 21H ;02功能調(diào)用,響鈴SSS : CALL GETNUMPUSH DX ;日CALL GETNUMPUSH DX ;月CALL GETNUMMOV NIAN,DX ;年P(guān)OP DX

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論