實驗1 彙編基本指令及順序程式設計實驗
實驗2 分支與dos中斷功能呼叫程式設計實驗
實驗3 迴圈結構程式設計實驗
實驗4 儲存器擴充套件實驗
實驗5 8259應用程式設計實驗
實驗1彙編基本指令及順序程式設計實驗
一、 實驗目的
1、掌握組合語言的開發環境和上機過程;
2、掌握debug命令;
3、掌握順序程式設計方法;
4、掌握定址方式;
5、理解和掌握彙編基本指令的功能。
二、實驗內容
1、設堆疊指標sp=2000h,ax=3000h,bx=5000h;請編一程式段將ax和bx的內容進行交換。要求:用3種方法實現。
2、分別執行以下指令,比較暫存器定址,暫存器間接定址和相對暫存器定址間的區別。
mov ax,bx
mov ax,[bx]
mov ax,10[bx]
要求:在執行以上指令時,記下當時ds資料段的值,寫出每條指令執行後ax的值。
3、已知有如下程式段:
mov ax,1234h
mov cl,4
在以上程式段的基礎上,分別執行以下指令:
rol ax,cl
ror ax,cl
shl ax,cl
shr ax,cl
sar ax,cl
rcl ax,cl
rcr ax,cl
試在debug下用a命令彙編以上程式段,用t命令跟蹤,觀察以下內容:
(1)每條指令執行完後,ax暫存器的內容是什麼?
(2)每條指令執行完後,進製、符號和零標誌的值有什麼變化?
4、設有以下部分程式段:
table dw 10h,20h,30h,40h,50h
entry dw 3
lea bx,table
add bx,entry
mov ax,[bx]
要求:(1)將以上程式段補充成為乙個完整的匯程式設計序。
(2)在(1)的基礎上編輯、除錯並執行程式,記錄在執行mov ax,[bx]後ax的內容。
5、程式設計計算(2x+y-z)/4的結果。
三.實驗準備與要求
1、預習第3章和第4章中的有關內容,熟悉順序程式設計方法;
2、預習debug除錯程式的使用方法;
3、根據實驗內容要求,編寫好實驗源程式。
4、實驗前要做好充分準備,包括匯程式設計序清單、除錯步驟、除錯方法,以及對程式結果的分析等。
四.實驗報告要求
1、列出源程式清單。
2、分析實驗中所遇到的一些問題,分析錯誤原因。
3、說明本實驗中是如何使用debug進行除錯的。
4、寫出本次上機的體會或收穫。
實驗2 分支與dos中斷功能呼叫程式設計實驗
一、實驗目的
1、掌握條件轉移、無條件轉移指令的功能及應用;
2、掌握分支程式的設計、編寫、除錯和執行方法。
3、掌握1號、2號和9號功能呼叫及其程式設計方法。
二、實驗內容
1、程式設計求|x-y|,結果放在result單元中。x和y都為16位運算元。
2、編寫一程式,實現從鍵盤輸入乙個字元,判斷其是不是大寫字母,如果是則請輸出這個大寫字母,如果不是,請輸出「這不是乙個大寫字母」的英文資訊(要求:能連續輸入)。
3、請編寫一程式,實現將小寫字母字串轉換成大寫字母字串。設字串的首位址為mystr,字串的長度在n單元內。資料段定義如下:
data segment
string db 』i am a student!』
n equ 15
data ends
4、程式設計顯示任一暫存器(如bx)的最高位。即若bx的最高位為1,則在螢幕上輸出「1」;若bx的最高位為0,則在螢幕上輸出「0」。
三、實驗準備與要求
1、 預習條件轉移指令和無條件轉移指令;
2、 預習dos中斷呼叫所提供的1#、2#、9#功能;
3、熟悉分支結構;
4、實驗前要做好充分準備,包括匯程式設計序清單、除錯步驟、除錯方法,以及對程式結果的分析等。
四、實驗報告要求
1、程式說明。說明程式的功能、結構。
2、除錯說明。包括上機除錯的情況、上機除錯步驟、除錯所遇到的問題是如何解決的,並對除錯過程中的問題進行分析,對執行結果進行分析。
3、寫出源程式清單和執行結果,畫出流程圖。
實驗3 迴圈結構程式設計實驗
一、實驗目的
1、掌握迴圈指令loop、loopz、loopnz指令的功能及使用方法。
2、掌握迴圈程式的設計、編寫、除錯和執行方法。
二、實驗內容
1、迴圈結構程式設計
編寫乙個程式,將記憶體1000h開始的連續100個位元組送往2000h開始的連續100個記憶體單元中。要求使用三種不同的方法(不用串操作指令、用單一的串操作指令、用帶重複字首的串操作指令),下面已給出一種實現方法,請給出另外兩種實現方法的源程式清單:
實驗程式參考清單:
data segment
org 1000h
db 100 dup(『a』)
org 2000h
db 100 dup(『b』)
data ends
code segment
assume ds:data,es:data,cs:code
start: mov ax,data
mov ds,ax
mov es,ax
mov si,1000h
mov di,2000h
mov cx,100
cldrep movsb
mov ah,4ch
int 21h
code ends
end start
2、程式設計計算1+2+3+…+100的和。
微機原理實驗要求
實驗一定時器實驗 1.用mtim中斷或查詢方式實現led閃爍 要求用按鍵切換閃爍狀態,分為秒級 10hz 100hz迴圈 2.用rti上述功能 3.用tpm產生乙個週期較長 頻率和占空比可調的方波 按鍵1調節方波週期 1ms 10ms 100ms迴圈 按鍵2調節方波占空比 1 1 2 1 3 1迴圈...
微機原理實驗二
實驗二 1.實驗內容 將記憶體區定義的字母數字串的統計結果以16進製制形式顯示出來,顯示格式為 the nembers of digital is xxh the nembers of capital letters is xxh the nembers of small letters is xx...
微機原理實驗報告
一 實驗綜述 實驗目的 1 熟悉debug環境,在debug中輸入程式。2 掌握基本指令的用法。3 分析程式執行結果。4 會按要求編寫基本程式,完成基本功能。二 實驗過程 實驗步驟 資料記錄 實驗3.57 若ax 1001h,dx 20ffh,當執行add ax,dx指令以後,請列出和數及標誌暫存器...