組合語言實驗指導書

2021-09-24 00:02:24 字數 5019 閱讀 8242

前言組合語言是計算機專業的一門重要的專業基礎課,主要介紹組合語言程式設計的基本原理和方法。組合語言是一門理論性和實踐性較強的課程,輔助課堂教學的實驗有助於幫助學生理解組合語言的基本原理,鍛鍊學生的動手能力,提高學生的綜合應用知識的能力。

本實驗指導書按照組合語言程式設計的教學大綱要求編寫。依據循序漸進、由淺入深的規律,通過例項複習鞏固所學知識,借助例項開展組合語言程式設計。通過這種既具有構造性又具有創造性的學習活動,更便於初學者的理解和掌握,通過上機實驗,並在實驗後完成實驗報告,又能進一步加深和拓寬所學知識。

為了幫助老師和學生開展實驗,我們特編了這本實驗指導書,希望能對我校的《組合語言》教學工作有所幫助。

本實驗指導書所有例項均在pc機上除錯通過。

目錄實驗1 利用debug除錯組合語言程式段54

實驗2 初級程式的編寫與除錯實驗(一) 55

實驗3 初級程式的編寫與除錯實驗(二59

實驗4 組合語言程式上機過程 63

實驗5 分支程式實驗65

實驗6 迴圈程式實驗68

實驗7 子程式實驗69

實驗8 字元處理程式實驗73

實驗9 排序程式設計 77

實驗10 計算機鋼琴程式 79

實驗11 鍵盤和視窗程式 81

實驗12 磁碟檔案操作程式84

實驗1 利用debug除錯組合語言程式段

一.實驗目的

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.詳細記錄每一步所用的命令,以及檢視結果的方法和具體結果。

六.實驗報告要求

1.如何啟動和退出debug程式;

2.整理每個debug命令使用的方法,實際示例及執行結果。

七.思考題

啟動debug後,要裝入某乙個.exe檔案,應通過什麼方法實現?

一.實驗目的

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.自編程式原稿及除錯後修正稿,寫出原稿錯在那裡。

七.思考題

1.mov byte ptr[bx],20

mov word ptr[bx+si+2],2846

上述指令中byte ptr及word ptr偽操作不加行不行?試一試。

2.用g命令執行多位元組加法程式,並用d命令檢查其結果(存放在**?),是否正確?

3.將多位元組加法程式中的int 20h指令改為int 3,有何區別?若這條指令不加,行不行?試一試。

4.資料串搬家程式中的目的位址改為1002h,再執行此程式,看能不能把1000h開始的字串搬到1002h開始的地方去?修改程式以做到這一點。

實驗3 初級程式的編寫與除錯實驗(二)

一.實驗目的

1.掌握無條件轉移指令、條件轉移指令;

2.掌握利用dos功能呼叫int21h的2號和9號功能進行螢幕顯示的方法;

3.掌握直接向**ram送ascii碼進行螢幕顯示的方法;

4.掌握螢幕字元顯示程式編寫與除錯。

二.實驗內容

1. 字元、字串的螢幕顯示;

2. 直接向vram送ascii碼顯示字元;

3. 用字元搜尋法確定字串長度;

4. 16進製制數化ascii碼的一般方法(顯示記憶體內容)。

三.實驗要求

組合語言實驗報告組合語言實驗指導書

實驗報告 實驗課程組合語言程式 學生代號信念 學號5215201314 專業班級網路間諜088班 2009年 12月 25日 實驗1 利用debug除錯組合語言程式段54 實驗3 初級程式的編寫與除錯實驗 二59 實驗5 分支程式實驗65 實驗6 迴圈程式實驗68 實驗7 子程式實驗69 實驗8 字...

組合語言實驗指導書

王勇劉輝 上海電力學院計算機系 2007年10月 目錄實驗一 debug命令實驗 1 實驗二字串傳遞實驗 7 實驗三迴圈程式實驗 15 實驗四多重迴圈實驗 21 實驗五分支程式實驗 28 實驗六子程式引數傳遞實驗 34 實驗七子程式巢狀實驗 37 實驗八中斷處理實驗 42 實驗九 bios中斷實驗 ...

《微機原理及組合語言》實驗指導書

微機原理和組合語言 實驗指導書 資訊與通訊工程學院電氣工程系 目錄實驗須知3 實驗一資料求和實驗4 實驗二迴圈與分支程式設計實驗8 實驗三中斷程式設計實驗12 實驗四螢幕顯示程式設計實驗14 第一部分實驗須知 1 預習要求 實驗前認真閱讀實驗教程中有關內容,明確實驗目的和實驗任務。每次實驗前應有預習...