四川大學網路教育學院
實踐課程報告
實踐課程計算機綜合實踐
校外學習中心奧鵬
專業電氣工程及其自動化
層次專公升本
年級級學生姓名
學號20年月日
四川大學網路教育學院
實驗報告
實驗內容:用組合語言編寫乙個簡單的加法運算程式,並除錯;字串統計程式設計,雙字乘法程式設計;改變定時器2的計數值來改變聲音頻率,通過程式設計來獲得聲調(頻率)和節奏(延時長短),使計算機演奏出樂曲來。
實驗一除錯程式--debug
實驗重點:掌握組合語言,可以除錯簡單的程式
實驗目的:讓學生熟悉程式的輸入和除錯環境
實驗學時:2學時
實驗難點:如何進行程式的除錯:debug
實驗內容:用組合語言編寫乙個簡單的加法運算程式,並除錯
1.進入debug狀態,開機進入dos狀態。
c>debug↙
螢幕顯示:
-「-」為已進入debug狀態,在該提示符下可鍵入debug命令。下劃線部分為使用者鍵入的字元或命令
2.鍵入程式並彙編
用debug的a命令送入程式:
-a 100↙
mov al,33
mov dl,35
add dl,al
sub dl,30
mov ah,2
int 21
3。執行程式
-g↙4.反彙編
可以用反彙編u命令將鍵入的程式調出,並且可以得到每條彙編指令的機器碼。
-u起始位址終止位址
5.退出debug返回dos狀態
-q6.顯示記憶體命令d
-d 0100↙
-d 起始位址終止位址↙
7.修改儲存單元命令e
-e 位址↙
8.檢查和修改暫存器內容命令r
格式:a. r
c. r[暫存器名]
功能:a.顯示cpu內部所有暫存器的內容和全部標誌位的狀態。
b.顯示和修改乙個指定暫存器的內容和標誌位的狀態。
9.追蹤與顯示命令t
格式:a. t[=位址]或 t[位址]
b. t=[位址][條數]
10.命名命令n
格式:n檔名
11.讀盤命令l
12.寫盤命令w
實驗二設計組合語言程式
1、實驗目的
掌握迴圈指令的使用方法;掌握實現單重、多重迴圈程式設計、編寫、除錯和執行的方法。
2、實驗內容
1、記憶體位址word_array處存放著—個有符號字陣列,其中第—個字為陣列的長度,從第二個字開始順序存放著陣列元素。編寫程式求陣列中正數、零和負數的個數。流程圖如圖4所示。
附圖 4
資料段可定義如下:
data_seg segment
word_array dw 4,—1,2,3,0;陣列
p_countdw 0;正數計數單元
z_ountdw 0;零計數單元
n_ountdw 0;負數計數單元
data_seg ends
(2)建立學生名次表
要求:以grade為首位址的10個字的陣列中儲存了學生的成績,其中grade+i儲存學號為i+1的學生的成績。要求建立—個10個字的rank陣列,並根據grade中的學生成績將學生名次填人rank陣列中,其中rank+i的內容是學號為i+1學生的名次(提示:
—個學生的名次等於成績高於該學生的人數加1)。
分析:本題可以用雙重迴圈結構來實現。內層對應於每個學生的名次計算,外層則解決所有學生的名次計算。
由於陣列的長度是確定的,因此內、外層均可用計數值來控制迴圈的結束。在設計多重迴圈結構時,必須注意內層迴圈結束後的重新初始化問題。由於本題所用暫存器較多,現將暫存器的分配情況說明如下:
ax 存放當前被測學生的成績;
bx 存放當前被測學生的相對位址指標;
cx 內迴圈計數值;
dx 當前被測學生的名次計數值;
si 內迴圈測試時的位址指標;
di 外迴圈計數值。
根據以上考慮,畫出程式流程圖如附圖5所示。這裡必須使用debug來檢視程式的執行結果,可以看出程式的結束時,rank陣列已存放了學生的名次。資料段可定義如下:
datarea segment
grade dw 88,75,95,63
dw 98,78,87,73,90,60
rank dw 10 dup (?)
datarea ends
(3)求字串長
要求:對strn位址起的—串字元進行統計,求其串長。串尾以『*』號結束。
分析:本例為求字串的長度。因此應查詢字串尾字元『*』,以確定字串長。
在逐字元查詢過程中,就可以統計字串長。因此這是—個迴圈次數不定的迴圈程式。本題也是先判斷後處理的迴圈程式。
如果—開始,就遇到—個『*』字元,則迴圈程式將—次統計也不進行就退出迴圈程式。其流程如附圖6所示。
部分源程式:
mov si,offset strn
movdl,0;字元計數器 lp:moval,[si]
cmpal,『*』;判是『*』?
jedone;是,結束
incdl
incsi
jmplp
done:mov ah,02h;顯示字元數
int21h
end3、實驗步驟
參考流程圖完善實驗內容源程式,再依照實驗二的步驟進行操作
4、實驗思考題
結合實驗內容2思考多重迴圈在每次通過外層迴圈再次進入內層迴圈時初始條件如何設定?
程式設計將8253定時器0設定為方式3,定時器1設定在方式2,定時器2設定在方式2,定時器0輸出作為定時器1的輸入,定時器1的輸出作為定時器2的輸入,定時器2的輸出接在乙個led上,執行後可觀察到該led在不停閃爍。
了解8253定時器的硬體連線方法及時序關係。掌握8253的各種模式程式設計及原理。
gate0~gate2連至電源+5v,將模組中的頻率插孔(153.6k hz)用線連至clk0,out0用線連至clk1,out1用線連至clk2,out2用線連至乙個發光管(l1),cs8253片選孔用線連至解碼處228h孔。
8253的工作頻率為0~2m hz,所以輸入的clk頻率必須在2mhz以下。實驗板上從
模組的頻率插孔(153.6k hz)引至定時器0輸入。
計算機實驗報告
微機原理 實驗報告 姓名 張仁德學號 10470129 班級 材料物理專業2010級01班 指導教師 張開洪 微機原理與接 術實驗報告 實驗專案名稱 熟悉debug的使用 實驗日期 2012.12實驗成績 實驗評定標準 一 實驗目的 1 熟悉debug的常用命令 2 掌握debug下執行簡單組合語言...
計算機綜合訓練實驗報告 visio
計算機綜合訓練實驗報告 1.基本操作 2.模具 模板和形狀的應用 3.各種綜合圖表的應用 1.首先對應教材,熟練掌握每一項visio應用的操作 2.要求完成以下圖表的繪製,並將文件儲存,要求儲存兩種格式,一種是原始檔的格式,一種是 格式,以便於教師給成績。第一 組織結構圖 要求繪製出形狀如下圖,但是...
計算機基礎綜合實驗報告格式
綜合實驗報告 課程名稱 計算機基礎綜合實驗 1 姓名班級 學號指導教師 完成日期 電子資訊學院 electronic information school年月1 作品簡介 本行格式為 宋體 三號 加粗,段前1行 段後1行 正文 格式為 宋體 五號 首行縮排 2 作品效果圖 本行格式為 宋體 三號 加...