實驗報告
實驗課程組合語言程式
學生代號信念
學號5215201314
專業班級網路間諜088班
2023年 12月 25日
實驗1 利用debug除錯組合語言程式段54
實驗3 初級程式的編寫與除錯實驗(二59
實驗5 分支程式實驗65
實驗6 迴圈程式實驗68
實驗7 子程式實驗69
實驗8 字元處理程式實驗73
實驗12 磁碟檔案操作程式84
南昌大學實驗報告
實驗1 利用debug除錯組合語言程式段
學生代號: 信念學號:5215201314 專業班級: 網路間諜088班
實驗型別:□ 驗證 □ 綜合 □ 設計 □ 創新實驗日期實驗成績:
一.實驗目的
1.熟悉debug有關命令的使用方法;
2.利用debug掌握有關指令的功能;
3.利用debug執行簡單的程式段。
二.實驗內容
1.進入和退出debug程式;
2.學會debug中的d命令、e命令、r命令、t命令、a命令、g命令等的使用。對於u命令、n命令、w命令等,也應該試用一下;
3.用debug,驗證乘法、除法、加法、減法、帶進製加、帶借位減、堆疊操作指令、串操作指令的功能。
三.實驗要求
1.仔細閱讀有關debug命令的內容,對有關命令,要求事先準備好使用的例子;
2.作為例子,準備用a命令,輸入在顯示器上顯示字元「$」的系統呼叫程式段;
3.編寫將ax左移9位的程式段。
四.實驗環境
pc微機
dos作業系統或 windows 作業系統
masm.exe,link.exe,或巨集彙編整合環境
五.實驗步驟
1.在dos提示符下,進入debug程式;
2.在dos目錄下啟動debug;
3.詳細記錄每一步所用的命令,以及檢視結果的方法和具體結果。
六.實驗小結
進入debug程式後,感覺debug程式的檢視電腦記憶體中任何地方的位元組以及修改任何地方的位元組,這對於了解計算機的內部儲存及使用情況和指令使用情況有很大的幫助。感覺它它可以用於逐指令執行某個程式以驗證程式執行的正確性,也可以追蹤執行過程、比較乙個指令執行前後的值以及比較與移動記憶體中資料的範圍,讀寫檔案與磁碟扇區。裡面的命令很豐富,是一塊很肥沃的土地,值得我們為之辛勤的耕耘。
南昌大學實驗報告
學生代號: 信念學號:5215201314 專業班級: 網路間諜088班
實驗型別:■ 驗證 □ 綜合 □ 設計 □ 創新實驗日期實驗成績:
一.實驗目的
1.進一步熟悉debug命令;
2.掌握資料在記憶體中的存放方式和記憶體運算元的幾種定址方式,段暫存器和實體地址計算;
3.熟悉資料傳送指令、算術運算指令、邏輯指令、資料串傳送程式和資料串傳送指令movs、stos及重複前輟rep;
4.掌握簡單的組合語言程式編寫與除錯。
二.實驗內容
1. 記憶體運算元及各種定址方式使用;
2. 求累加和程式;
3. 多位元組加法程式;
4. 資料串搬家程式;
5. 段暫存器概念及字串傳送指令練習。
三.實驗要求
1.仔細閱讀有關debug命令的內容,對有關命令,要求事先準備好使用的例子;
2.閱讀資料傳送指令、算術運算指令、邏輯指令、資料串傳送程式和資料串傳送指令movs、stos及重複前輟rep的內容;
3.用debug的有關命令除錯本實驗中的求累加和程式、多位元組加法程式、資料串搬家程式段。
四.實驗環境
pc微機;
dos作業系統或 windows 作業系統;
masm.exe,link.exe,或巨集彙編整合環境。
五.實驗步驟
1.記憶體運算元及各種定址方式使用
mov ax,1234
mov [1000],ax
mov bx,1002
mov byte ptr[bx],20
mov dl,39
inc bx
mov [bx],dl
dec dl
mov si,3
mov [bx+si],dl
mov [bx+si+1],dl
mov word ptr[bx+si+2],2846
步驟:(1) 用a命令鍵入上述程式,並用t命令逐條執行。
(2) 每執行一條有關記憶體運算元的指令,要用d命令檢查並記錄有關記憶體單元的內容並註明是什麼定址方式。
注意d命令顯示結果中右邊的ascii字元及雙位元組數存放法。
2.求累加和程式:
程式:mov bx,1000
mov cx,10
sub ax,ax
lop: add al,[bx]
adc ah,0
inc bx
j: loop lop
int3
步驟:(1)用a命令將程式鍵入到100h開始的記憶體中,在鍵入時記下標號lop和j的實際位址,在鍵入loop指令時lop用實際位址值代替;
(2)用命令n aa 將此程式命名為檔案aa(檔名可任取);
(3)用r命令將bx:cx改為程式長度值(即最後一條指令後面的位址減去開始位址;
(4)用命令w 100將此程式存到aa命名的磁碟檔案中;
(5)用命令q退出debug;
(6)用命令debug aa再次調入debug和檔案aa,可用u命令檢查調入程式;
若調入debug時忘了加aa檔名,可用n命令和l命令將檔案調入;
(7)用e命令在記憶體位址1000h處鍵入16個數字;
(8)用命令g=100 j(j用實際位址代替),使程式執行並停在斷點j上,檢查ax,bx的值是否符合你的預計值;
(9)用t命令執行一步,觀察程式方向(ip值)和cx值是否與你的估計一樣,若不一樣,檢查程式是否有錯;
(10)重複g、j與t,再檢查ax是否正確;
(11)用g命令使程式執行到結束,檢查ax值是否正確。
3.多位元組加法程式
程式:mov di,1000
mov cx,8
mov si,2000
clclop: mov al,[si]
adc [di],al
inc si
inc di
loop lop
int 20
步驟:(1) 用命令鍵入此程式
(2) 用e命令在1000h開始處鍵入乙個8位元組被加數,在2000h開始處鍵入乙個8位元組加數,均為低位元組在前面。
4.資料串搬家程式
(1)用a命令鍵入下列程式:
mov si,1000
mov di,1500
mov cx,0fh
lop:mov al,[si]
mov [di],al
inc si
inc di
loop lop
int 20
(2)用a命令db偽指令在1000h鍵入下列字串:
『ibm_pc computer'
(3)用g命令執行此程式,並用d命令檢查目的位址處的字元與源串是否一致。
5.段暫存器概念及字串傳送指令練習
(1) 用a命令鍵入下列程式:
mov si,0
mov di,0
mov ax,1000
mov ds,ax
mov ax,1500
mov es,ax
mov cx,0f
cldrep movsb
int 20
(2) 用a命令db偽指令在1000:0000處鍵入字串'ibm_pc computer',並用d命檢查之
(3) 用d命令檢查0f00:1000處內容,看是否一樣。為什麼?
(4) 用g命令執行此程式,檢查目的位址1500:0000處內容。並記下ds與es值。
(5) 修改此程式,使es與ds為同一值,以減少一條指令,而源實體地址和目的實體地址(是多少?)仍和原來一樣。
6.自編程式
用16位減法指令編乙個32位(4位元組)數減法程式,兩個源數及結果存放位址同多位元組加法程式,除錯並做記錄。
六.實驗報告要求
1.各項實驗記錄;
2.要求你修改的程式的清單(修改後)和除錯記錄;
3.自編程式原稿及除錯後修正稿,寫出原稿錯在那裡。
七.實驗小結
南昌大學實驗報告
實驗3 初級程式的編寫與除錯實驗(二)
學生代號: 信念學號:5215201314 專業班級: 網路間諜088班
實驗型別:■ 驗證 □ 綜合 □ 設計 □ 創新實驗日期實驗成績:
1.掌握無條件轉移指令、條件轉移指令;
2.掌握利用dos功能呼叫int21h的2號和9號功能進行螢幕顯示的方法;
3.掌握直接向**ram送ascii碼進行螢幕顯示的方法;
4.掌握螢幕字元顯示程式編寫與除錯。
二.實驗內容
1. 字元、字串的螢幕顯示;
2. 直接向vram送ascii碼顯示字元;
3. 用字元搜尋法確定字串長度;
4. 16進製制數化ascii碼的一般方法(顯示記憶體內容)。
三.實驗要求
組合語言實驗報告
電子科技大學 實驗報告 實驗一1 實驗名稱 彙編源程式的上機除錯操作基礎訓練 2 實驗學時 4 3 實驗內容和目的 實驗內容 1.debug命令的使用 2.程式的除錯與執行 3.編寫程式計算以下表示式 z 5x 2y 7 2 設x y的值放在位元組變數varx vary中,結果存放在位元組單元var...
組合語言實驗報告
組合語言課程設計 學院 專業 姓名 學號 組合語言是計算機專業的一門重要的專業基礎課,主要介紹組合語言程式設計的基本原理和方法。組合語言是一門理論性和實踐性較強的課程,輔助課堂教學的實驗有助於幫助學生理解組合語言的基本原理,鍛鍊學生的動手能力,提高學生的綜合應用知識的能力。1 利用debug除錯組合...
組合語言實驗報告三
實驗三 一.實驗目的 1.掌握程式設計中的子程式結構 2.熟練使用過程偽指令 子程式呼叫和返回等組合語言的指令編寫子程式 3.掌握數制轉換方法 4.掌握利用dos系統功能呼叫進行字元輸入及字元輸出 顯示 的方法。二.程式說明 1 編寫十進位製到十六進製制轉換程式。要求從鍵盤取得乙個十進位制數,然後把...