版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、微機原理及接口技術實驗指導書董 潔 編北京科技大學自動化學院控制科學與工程系2013年5月前言微機原理及接口技術 是工科計算機及相關專業(yè)學習微型計算機基本知識和應用技能的重要課程。 本課程幫助學生掌握微型計算機的硬件組成及使用; 學會運用指令系統(tǒng)和匯編語言進行程序設計;熟悉各種類型的接口及其應用,樹立起微型計算機體系結構的基本概念,為后繼計算機課程的學習及應用打好基礎。實驗教學是本課程的重要組成部分,對學生理解概念、進行程序設計及提高應用技能至關重要。在指導書中,每一個實驗均按照該課程實驗大綱的要求編寫,力求緊扣理論知識點、突出設計方法、明確設計思路,通過多種形式完成實驗任務,最終引導學生有目
2、的、有方向地完成實驗任務,得出實驗結果。書中標( * )的實驗可酌情選作。由于作者水平有限,書中難免存在不足之處,敬請讀者批評指正。編者2013年 5 月目錄前言2目錄3第一部分匯編語言程序實驗實驗一顯示程序實驗1一、實驗目的1二、實驗所用設備1三、實驗內容1四、實驗步驟1五、參考程序清單2六、實驗報告內容及要求3實驗二數(shù)據(jù)傳送實驗4一、實驗目的4二、實驗所用設備4三、實驗內容4四、實驗步驟5五、實驗報告內容及要求5實驗三數(shù)碼轉換程序實驗6一、實驗目的6二、實驗所用設備6三、實驗內容6四、實驗步驟8五、實驗報告內容及要求9實驗四運算類程序實驗10一、實驗目的10二、實驗所用設備10三、實驗內容
3、10四、實驗步驟11五、實驗報告內容及要求11實驗五分支程序設計實驗12一、實驗目的12二、實驗所用設備12三、實驗內容12四、實驗步驟12五、實驗報告內容及要求13實驗六循環(huán)程序設計實驗14一、實驗目的14二、實驗所用設備14三、實驗內容14四、實驗步驟14五、實驗報告內容及要求15實驗七子程序設計實驗*16一、實驗目的16二、實驗所用設備16三、實驗內容16四、實驗步驟18五、實驗報告內容及要求18實驗八綜合程序設計實驗*19一、實驗目的19二、實驗所用設備19三、實驗內容19四、實驗步驟19五、實驗報告內容及要求20第二部分16 位微機接口技術實驗。附錄一:實驗報告格式21實驗一顯示程序
4、實驗一、實驗目的1. 掌握在 PC 機上以十六進制形式顯示數(shù)據(jù)的方法;2. 掌握部分 DOS 功能調用使用方法;3. 熟悉匯編語言調試環(huán)境和 Turbo Debugger 的使用。二、實驗所用設備PC 微機一臺。三、實驗內容一般來說,程序需要顯示輸出提示運行的狀況和結果,有的還需要將數(shù)據(jù)區(qū)中的內容顯示在屏幕上。 本實驗要求將指定數(shù)據(jù)區(qū)的數(shù)據(jù)以十六進制數(shù)形式顯示在屏幕上,并通過 DOS 功能調用完成一些提示信息的顯示。實驗中可使用 DOS 功能調用( INT 21H)。(1) 顯示單個字符輸出入口: AH=02H調用參數(shù): DL= 輸出字符(2) 顯示字符串入口: AH=09H調用參數(shù): DS:
5、DX= 串地址, $為結束字符(3) 鍵盤輸入并回顯入口: AH=01H返回參數(shù): AL= 輸出字符(4) 返回 DOS系統(tǒng)入口: AH=4CH調用參數(shù): AL= 返回碼四、實驗步驟1.運行輕松匯編軟件,選擇Edit 菜單,根據(jù)實驗內容的描述1編寫實驗程序,本實驗顯示部分參考實驗流程如圖1-1 示;2. 使用 Compile 菜單中的 Compile 和 Link 對實驗程序進行匯編、連接;3. 使用 Run菜單中的 Run,運行程序,觀察運行結果;4. 使用 Run菜單中的 Debug,調試程序,觀察調試過程中,數(shù)據(jù)傳輸指令執(zhí)行后,各寄存器及數(shù)據(jù)區(qū)的內容;5. 更改數(shù)據(jù)區(qū)中的數(shù)據(jù),考察程序的
6、正確性。圖 1-1 顯示程序實驗流程圖五、參考程序清單DATASEGMENT2MESDB'Show a as hex:', 0AH,0DH,'$'SDDB'a'DATAENDSCODESEGMENTASSUMECS:CODE, DS:DATASTART: MOVAX, DATAMOVDS, AXMOVDX, OFFSET MES ; 顯示提示信息MOVAH, 09HINT21HMOVDI, OFFSET SDMOVAL, DS:DIANDAL, 0F0H ; 取高 4位SHRAL,4CMPAL, 0AH ; 是否是 A 以上的數(shù)JBC2ADDAL
7、, 07HC2:ADDAL, 30HMOVDL, AL ; 顯示字符MOVAH, 02HINT21HMOVAL, DS:DIANDAL, 0FH ; 取低 4位CMPAL, 0AHJBC3ADDAL, 07HC3:ADDAL, 30HMOVDL, AL ; 顯示字符MOVAH, 02HINT21HMOVAX, 4C00H ; 返回 DOSINT21HCODEENDSENDSTART六、實驗報告內容及要求寫出程序調試過程及運行情況。3實驗二數(shù)據(jù)傳送實驗一、實驗目的1. 熟悉匯編語言調試環(huán)境和 Turbo Debugger的使用;2. 掌握與數(shù)據(jù)有關的不同尋址方式。二、實驗所用設備PC 微機一臺。
8、三、實驗內容將數(shù)據(jù)段中的一個字符串傳送到附加段中,并輸出附加段中的目標字符串到屏幕上。參考實驗程序:DDATASEGMENT ; 定義源數(shù)據(jù)段MSRDB"HELLO,WORLD!$"LENEQU$- MSRDDATAENDSEXDASEGMENT ; 定義附加數(shù)據(jù)段MSDDBLEN DUP(?)EXDAENDSMYSTACKSEGMENT STACK ; 定義堆棧段DW20 DUP(?)MYSTACKENDSCODESEGMENT ; 定義代碼段ASSUME CS:CODE, DS:DDATA, ES:EXDASTART:MOVAX, DDATAMOVDS, AX ; 裝載
9、數(shù)據(jù)段寄存器MOVAX, EXDAMOVES,AX ; 裝載附加數(shù)據(jù)段寄存器MOVSI, OFFSET MSR ;設置 SIMOVDI, OFFSET MSD ; 設置 DIMOVCX, LENNEXT:MOVAL, SI ; 開始傳輸數(shù)據(jù)4MOVES:DI, ALINCSIINCDIDECCXJNZNEXTPUSHESPOPDS ;將附加段寄存器的段值賦給數(shù)據(jù)段寄存器MOVDX, OFFSET MSDMOVAH, 9INT21HMOVAX, 4C00H ; 利用 DOS功能調用返回 DOS狀態(tài)INT21HCODEENDSENDSTART將程序主體部分的寄存器間接尋址方式改為相對尋址方式,則如
10、下所示:MOVBX, 0MOVCX, LENNEXT:MOVAL, MSRBXMOVES:MSDBX, ALINCBXLOOPNEXT四、實驗步驟1. 運行輕松匯編軟件,選擇 Edit 菜單編寫實驗程序;2. 使用 Compile 菜單中的 Compile 和 Link 對實驗程序進行匯編、連接;3. 使用 Run 菜單中的 Run,運行程序,觀察運行結果;4. 使用 Run 菜單中的 Debug,調試程序,觀察調試過程中,數(shù)據(jù)傳輸指令執(zhí)行后,各寄存器及數(shù)據(jù)區(qū)的內容;5. 更改數(shù)據(jù)區(qū)中的數(shù)據(jù),考察程序的正確性。五、實驗報告內容及要求寫出程序調試過程及運行情況。5實驗三數(shù)碼轉換程序實驗一、實驗目
11、的掌握不同進制數(shù)及編碼相互轉換的程序設計方法。二、實驗所用設備PC 微機一臺。三、實驗內容計算機輸入設備輸入的信息一般是由 ASCII 碼或 BCD 碼表示的數(shù)據(jù)或字符, CPU用二進制數(shù)進行計算或其它信息處理,處理結果的輸出又必須依照外設的要求變?yōu)?ASCII 碼、 BCD 碼或七段顯示碼等。因此,在應用軟件中,各類數(shù)制的轉換和代碼的轉換是必不可少的。計算機與外設間的數(shù)碼轉換關系如圖 3-1所示,數(shù)碼對應關系如表 3-1所示。圖 3-1 計算機與外設間的數(shù)碼轉換關系1將 ASCII 碼表示的十進制數(shù)轉換為二進制數(shù)十進制數(shù)可以表示為: Dn × 10n+Dn-1 × 10n
12、-1+ +D0 × 100 =Di × 10i 其中 Di 代表十進制數(shù) 1、 2、 3 9、 0。上式可以轉換為: Di ×10i=( (Dn×10+Dn-1)× 10)+Dn-2)×10+ +D1)×10+D0由上式可歸納十進制數(shù)轉換為二進制的方法: 從十進制數(shù)的最高位 Dn開始作乘 10加次位的操作, 依次類推,則可求出二進制數(shù)結6果。本實驗要求將緩沖區(qū)中的一個五位十進制數(shù)00012的 ASCII 碼轉換成二進制數(shù),并將轉換結果按位顯示在屏幕上。轉換過程的參考流程如圖 3-2所示。表 3-1 數(shù)碼轉換對應關系2將十進制
13、數(shù)的 ASCII 碼轉換為 BCD 碼本實驗要求將鍵盤輸入的一個五位十進制數(shù) 54321的ASCII 碼存放入數(shù)據(jù)區(qū)中,轉換為 BCD 碼后,并將轉換結果按位分別顯示于屏幕上。若輸入的不是十進制數(shù)的 ASCII 碼,則輸出 “FF”。提示:一字節(jié) ASCII 碼取其低四位即變?yōu)?BCD碼。轉換部分的實驗流程參見 3-3。3將十六進制數(shù)的 ASCII 碼轉換為十進制數(shù)十六位二進制數(shù)的值域為 0-65535,最大可轉換為五位十進制數(shù)。五位十進制數(shù)可表示為:ND=D4×104 +D3×103+D2×102 +D1×10+D因此,將十六位二進制數(shù)轉換為五位 AS
14、CII碼表示的十進制數(shù),就是求 D1-D4,并將它們轉化為 ASCII 碼。7圖 3-2 十進制 ASCII 轉換為二進制數(shù)參考流程圖 3-3 十進制 ASCII 轉換為BCD 碼參考流程本實驗要求將緩沖區(qū)中存放的 000CH的 ASCII 碼轉換成十進制數(shù),并將轉換結果顯示在屏幕上。轉換部分的實驗流程參見圖 3-4 。4BCD 碼轉換為二進制碼本實驗要求將四個二位十進制數(shù)的 BCD碼存放在某一內存單元中,轉換出的二進制數(shù)碼存入其后的內存單元中,轉換結束,送屏幕顯示。轉換部分的實驗流程參見 3-5 。四、實驗步驟1. 運行輕松匯編軟件,選擇 Edit 菜單編寫實驗程序;2. 使用 Compil
15、e 菜單中的 Compile 和 Link 對實驗程序進行匯編、連接;3. 使用 Run 菜單中的 Run,運行程序,觀察運行結果;4. 使用 Run 菜單中的 Debug,調試程序,觀察調試過程中,數(shù)據(jù)傳輸指令執(zhí)行后,各寄存器及數(shù)據(jù)區(qū)的內容;85. 更改數(shù)據(jù)區(qū)中的數(shù)據(jù),考察程序的正確性。圖3-5 BCD 碼轉換為二進制碼參考流程圖 3-4 將十六進制數(shù)的 ASCII 碼轉換為十進制數(shù)參考流程五、實驗報告內容及要求根據(jù)流程圖編寫程序并調試,寫出程序調試過程及運行情況。9實驗四運算類程序實驗一、實驗目的1. 掌握運算類指令編程及調試方法;2. 掌握運算類指令對各狀態(tài)標志位的影響及測試方法。二、實
16、驗所用設備PC 微機一臺。三、實驗內容80x86指令系統(tǒng)提供了實現(xiàn)加、減、乘、除運算的基本指令,可對表 4-1所示的數(shù)據(jù)類型進行算術運算。表 4-1 數(shù)據(jù)類型算術運算表1二進制雙精度加法運算本實驗要求計算X+Y=Z ,將結果Z輸出到屏幕,其中 X=001565A0H , Y=0021B79EH。實驗利用累加器 AX ,先求低十六位和,并存入低址存儲單元,后求高 16位和,再存入高址存儲單元。由于低位和可能向高位有進位,因而高位字相加語句需用 ADC 指令,則低位相加有進位時,CF=1,高位字相加時,同時加上 CF中的 1。在 80386以上微機中可以直接使用 32位寄存器和 32位加法指令完成
17、本實驗的功能。2十進制數(shù)的 BCD 碼減法運算本實驗要求計算 X-Y=Z ,其中, X 、 Y 、 Z 為 BCD 碼,其中X=0400H, Y=0102H。3乘法運算10本實驗要求實現(xiàn)十進制數(shù)的乘法, 被乘數(shù)和乘數(shù)均以 BCD碼形式存放于內存中,被乘數(shù)為 54320H,乘數(shù)為 3H,運算結束后,將乘積在屏幕上顯示。4用減奇數(shù)開平方運算80x86指令系統(tǒng)中有乘除法指令但沒有開平方指令,因此,開平方運算是通過程序來實現(xiàn)的。用減奇數(shù)法可求得近似平方根,獲得平方根的整數(shù)部分。 我們知道,N個自然數(shù)中的奇數(shù)之和等于N2,2即: 1+3+5=9=321+3+5+7=16=421+3+5+7+9+11+1
18、3+15=64=8若要做 S的開方運算,那麼就可以從 S中逐次減去自然數(shù)中的奇數(shù) 1, 3, 5, 7 ,一直進行到相減數(shù)為 0或不夠減下一個自然數(shù)的奇數(shù)為止,然后統(tǒng)計減去自然數(shù)的奇數(shù)個數(shù),它就是 S的近似平方根。本實驗要求利用減奇法計算 0040H的開平方值,并將運算結果顯示在屏幕上。四、實驗步驟1. 運行輕松匯編軟件,選擇 Edit 菜單編寫實驗程序;2. 使用 Compile 菜單中的 Compile 和 Link 對實驗程序進行匯編、連接;3. 使用 Run 菜單中的 Run,運行程序,觀察運行結果;4. 使用 Run 菜單中的 Debug,調試程序,觀察調試過程中,數(shù)據(jù)傳輸指令執(zhí)行后
19、,各寄存器及數(shù)據(jù)區(qū)的內容;5. 更改數(shù)據(jù)區(qū)中的數(shù)據(jù),考察程序的正確性。五、實驗報告內容及要求根據(jù)實驗要求編寫程序并調試,寫出程序調試過程及運行情況。11實驗五分支程序設計實驗一、實驗目的1. 掌握分支程序的設計方法。二、實驗所用設備PC 微機一臺。三、實驗內容程序有順序、循環(huán)、分支和子程序四種結構形式,分支結構的示意圖如圖 5-1所示。本實驗要求通過求無符號字節(jié)序列中的最大值和最小值來反映分支程序的結構形式。圖 5-1 分支結構示意圖實驗可以使用 BH , BL 作為暫存現(xiàn)行的最大值和最小值,且在程序的初始,將 BH 和 BL 初始化為首字節(jié)的內容,然后進入循環(huán)操作。在循環(huán)操作中,依次從字節(jié)序
20、列中逐個取出一個字節(jié)的內容與 BH ,BL 進行比較,若取出的字節(jié)內容比 BH 的內容大或比 BL 中的內容小,則修改之。當循環(huán)結束操作時,將 BH ,BL 分別送屏幕顯示。參考實驗流程如圖 5-2所示。四、實驗步驟1. 運行輕松匯編軟件,選擇 Edit 菜單編寫實驗程序,提供 8 字節(jié)的數(shù)據(jù): 0D9H, 07H,8BH ,0C5H,0EBH ,04H, 9DH,120F9H;2. 使用 Compile 菜單中的 Compile 和 Link 對實驗程序進行匯編、連接;3. 使用 Run 菜單中的 Run,運行程序,觀察運行結果;4. 更改數(shù)據(jù)區(qū)中的數(shù)據(jù),考察程序的正確性。五、實驗報告內容及
21、要求根據(jù)實驗要求編寫程序并調試,寫出程序調試過程及運行情況。圖 5-2 分支程序實驗流程圖13實驗六循環(huán)程序設計實驗一、實驗目的掌握循環(huán)程序的設計方法。二、實驗所用設備PC 微機一臺。三、實驗內容本實驗要求通過求某數(shù)據(jù)區(qū)內負數(shù)的個數(shù)來表現(xiàn)循環(huán)程序的結構形式。要求實驗程序在數(shù)據(jù)區(qū)中存放一組數(shù)據(jù),為統(tǒng)計負數(shù)的個數(shù),逐個判斷區(qū)內的數(shù)據(jù),然后將所有數(shù)據(jù)中凡是符號位為 1的數(shù)據(jù)的個數(shù)累加起來,即得到區(qū)內所包含負數(shù)的個數(shù)。循環(huán)程序的結構示意如圖 6-1所示。圖 6-1 循環(huán)結構示意圖四、實驗步驟1. 運行輕松匯編軟件,選擇 Edit 菜單編寫實驗程序,提供 10字節(jié)的數(shù)據(jù): 12H,88H,82H,89H
22、,33H,90H ,01H,10H, 0BDH ,01H;142. 使用 Compile 菜單中的 Compile 和 Link 對實驗程序進行匯編、連接;3. 使用 Run 菜單中的 Run,運行程序,觀察運行結果;4. 更改數(shù)據(jù)區(qū)中的數(shù)據(jù),考察程序的正確性。五、實驗報告內容及要求根據(jù)實驗要求編寫程序并調試,寫出程序調試過程及運行情況。15實驗七子程序設計實驗 *一、實驗目的1. 掌握子程序的定義調用方法;2. 掌握系統(tǒng)功能調用程序的使用和編寫方法。二、實驗所用設備PC 微機一臺。三、實驗內容在匯編程序設計中,用戶通常會將常用的具有特定功能的程序段編制成子程序使用。一般過程定義偽操作的格式如
23、下:procedure name PROC Attributeprocedure name ENDP其中 Attribute 是指類型屬性,可以是 NEAR 或FAR ,調用程序和過程在同一個代碼段中使用 NEAR 屬性,不在同一個代碼段中,使用 FAR。1 數(shù)據(jù)移動實驗本實驗要求將指定數(shù)據(jù)區(qū)的數(shù)據(jù)搬移到另一個數(shù)據(jù)區(qū), 并通過子程序調用的方法將搬移的數(shù)據(jù)顯示在屏幕上。圖 7-1 源數(shù)據(jù)塊和目標數(shù)據(jù)塊在存儲器中的位置示意源數(shù)據(jù)塊和目標數(shù)據(jù)塊在存儲中的位置可能有三種情況,如圖167-1所示。對于兩個數(shù)據(jù)塊分離的情況,數(shù)據(jù)的傳送從數(shù)據(jù)塊的首地址開始,或者從數(shù)據(jù)塊的末地址開始均可。但對于有部分重疊的情
24、況,則要加以分析,否則重疊部分會因搬移而遭到破壞。所以搬移過程可以通過以下兩個方式完成:當源數(shù)據(jù)塊首地址>目標塊首址時,從數(shù)據(jù)塊的首地址開始傳送數(shù)據(jù);當源數(shù)據(jù)塊首地址 <目標塊首址時,從數(shù)據(jù)塊的末地址開始傳送數(shù)據(jù)。2 數(shù)碼轉換及顯示實驗有時當系統(tǒng)運行或者程序運行期間在遇到某些特殊情況時, 需要計算機自動執(zhí)行一組專門的例行程序來進行中斷處理。 這段例程稱為中斷子程序。中斷分為內部中斷和外部中斷兩類。象除法錯或者程序中為了作某些處理而設置的中斷指令等屬于內部中斷。 外部中斷則主要用來處理 I/O設備與 CPU之間的通信。在匯編語言程序設計中使用系統(tǒng)功能調用程序,只需要通過MOV 指令,
25、將中斷參數(shù)裝到與此有關的寄存器中,然后用 INT 指令調用所需中斷。如果希望中斷處理程序是用戶自己編寫的一段程序,則需要修改對應中斷的中斷處理程序入口。微機系統(tǒng)中可以使用 0-255共256個中斷。當 80x86系統(tǒng)工作于實模式的時候,內存的000H 3FFH被用于作為中斷向量表, 向量表中包含了 256個中斷的中斷子程序入口(中斷向量地址),向量表內容如圖 7-2示。圖 7-2 中斷向量表本實驗要求利用 47H號中斷將一組字符轉換成十六進制數(shù)碼,17并在屏幕上顯示出來。四、實驗步驟1. 運行輕松匯編軟件,選擇 Edit 菜單編寫實驗程序,對實驗 1,提供 16 字節(jié)的數(shù)據(jù): 11H,22H, 33H,44H,55H,66H,77H, 88H,99H
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單位管理制度呈現(xiàn)大全【職員管理】十篇
- 《客房清掃程序》課件
- 《番茄晚疫病》課件
- 《四年級下語文總結》與《四年級本學期的總結》與《四年級本學期的總結反思》范文匯編
- 復習培優(yōu)卷03 第5單元(解析版)
- 第5單元+國防建設與外交成就
- 軟件開發(fā)委托合同三篇
- 農(nóng)業(yè)投資盈利之路
- 設計裝修銷售工作總結
- 游戲行業(yè)前臺工作總結
- 公務車輛定點加油服務投標文件(技術方案)
- 《中國制造業(yè)的崛起》課件
- 中小學學校安全管理制度匯編
- DB21∕T 3240-2020 芹菜農(nóng)藥安全使用生產(chǎn)技術規(guī)程
- (正式版)HGT 20656-2024 化工供暖通風與空氣調節(jié)詳細設計內容和深度規(guī)定
- 護士年終總結個人個人
- 切爾諾貝利核電站事故工程倫理分析
- 采購部年終總結計劃PPT模板
- CDI-EM60系列變頻調速器使用說明書
- 【匯總】高二政治選擇性必修三(統(tǒng)編版) 重點知識點匯總
- 材料表面與界面考試必備
評論
0/150
提交評論