組合語言實驗指導書

2021-03-04 01:20:10 字數 3705 閱讀 5638

王勇劉輝

上海電力學院計算機系

2023年10月

目錄實驗一 debug命令實驗 1

實驗二字串傳遞實驗 7

實驗三迴圈程式實驗 15

實驗四多重迴圈實驗 21

實驗五分支程式實驗 28

實驗六子程式引數傳遞實驗 34

實驗七子程式巢狀實驗 37

實驗八中斷處理實驗 42

實驗九 bios中斷實驗 46

實驗十建立檔案實驗 50

實驗十一讀檔案實驗 55

實驗十二綜合性實驗 60

一.實驗目的:

掌握debug 的基本命令及其功能

二.實驗內容:

debug是專門為組合語言設計的一種除錯工具,它通過步進,設定斷點等方式為組合語言程式設計師提供了非常有效的除錯手段。

1、debug程式的啟動

debug的命令格式:

[drive:][path] debug [d:][p][filename][.ext][param...]

其中:drive: 是指定debug檔案的磁碟驅動器識別符號,debug是外部dos命令,所以必須把它從磁碟讀入記憶體。若未指定,dos將使用當前預設磁碟驅動器。

path: 是dos查詢debug檔案的乙個子目錄串表示的路徑。若未指定,dos將使用當前工作目錄。

d: 是debug將要除錯的檔案所在的磁碟驅動器。

p: 是查詢debug將要除錯的檔案所需的子目錄路徑,若未指定,dos使用當前目錄。

filename[.ext] 是debug將要除錯的檔名。

param 是將被除錯的程式(或檔案)的命令列引數。

例如:在dos提示符下,可鍵入命令:

c>debug

debug所完成的初始化動作,假定檔名沒有,啟動debug:

段暫存器cs、ds、es和ss置為debug程式後的第乙個段。

指令指標暫存器ip置為100h(程式段字首psp後的第乙個語句)。

堆疊指標sp置為段末或暫駐部分的結束位址(其中較小的那個位址)。

其餘通用暫存器均置為0,標誌暫存器置為下述狀態。

nv up ei pl ne na po nc

如果在dos提示符下,可鍵入命令,包含檔名:

c>debug name.exe

段暫存器ds和es指向psp。暫存器bx和cx含有程式長度。

2、debug的主要命令

(1) 彙編命令a,格式為:

-a[位址]

該命令從指定位址開始允許輸入彙編語句,把它們彙編成機器**相繼存放在從指定位址開始的儲存器中。

例如:-a

136b:0100 mov ax,100

136b:0103 mov bx,200

136b:0106 mov cx,300136b:0109 mov dx,400

136b:010c

-(2) 反彙編命令u,有兩種格式:

1)-u[位址]

該命令從指定位址開始,反彙編32個位元組,若位址省略,則從上乙個u命令的最後一條指令的下乙個單元開始顯示32個位元組。

例如:-u

13c9:0000 1epush ds

13c9:0001 2bc0sub ax,ax

13c9:0003 50push ax

13c9:0004 b8c313 mov ax,13c3

13c9:0007 8ed8mov ds,ax

13c9:0009 b8c613 mov ax,13c6

13c9:000c 8ec0mov es,ax

13c9:000e 8d360000 lea si,[0000

13c9:0012 8d3e0000 lea di,[0000

13c9:0016 fccld

13c9:0017 b92800 mov cx,0028

13c9:001a f3repz

13c9:001b a4movsb

13c9:001c cbretf

13c9:001d 0000add [bx+si],al

13c9:001f 0000add [bx+si],al

2)-u範圍

該命令對指定範圍的記憶體單元進行反彙編,

例如:-u 13c9:000e 001b

13c9:000e 8d360000 lea si,[0000

13c9:0012 8d3e0000 lea di,[0000

13c9:0016 fccld

13c9:0017 b92800 mov cx,0028

13c9:001a f3repz

13c9:001b a4movsb

-(3) 執行命令g,格式為:

-g [=位址1][位址2[位址3。。。]]

其中位址1規定了執行起始位址,後面的若干位址均為斷點位址。

例如:-g1c

ax=13c6 bx=0000 cx=0000 dx=0000 sp=fffc bp=0000 si=0028 di=0028

ds=13c3 es=13c6 ss=13c3 cs=13c9 ip=001c nv up ei pl zr na pe nc

13c9:001c cbretf

-(4) 追蹤命令t,有兩種格式:

1)逐條指令追蹤:

-t[=位址]

該命令從指定位址起執行一條指令後停下來,顯示暫存器內容和狀態值。

-tax=0000 bx=0000 cx=007d dx=0000 sp=fffe bp=0000 si=0000 di=0000

ds=13b3 es=13b3 ss=13c3 cs=13c9 ip=0001 nv up ei pl nz na po nc

13c9:0001 2bc0sub ax,ax

-2)多條指令追蹤:

-t[=位址][值]

該命令從指定位址起執行n條命令後停下來,n由[值]確定。

-t 3

ax=0000 bx=0000 cx=007d dx=0000 sp=fffe bp=0000 si=0000 di=0000

ds=13b3 es=13b3 ss=13c3 cs=13c9 ip=0001 nv up ei pl nz na po nc

13c9:0001 2bc0sub ax,ax

ax=0000 bx=0000 cx=007d dx=0000 sp=fffe bp=0000 si=0000 di=0000

ds=13b3 es=13b3 ss=13c3 cs=13c9 ip=0003 nv up ei pl zr na pe nc

13c9:0003 50push ax

ax=0000 bx=0000 cx=007d dx=0000 sp=fffc bp=0000 si=0000 di=0000

ds=13b3 es=13b3 ss=13c3 cs=13c9 ip=0004 nv up ei pl zr na pe nc

13c9:0004 b8c313 mov ax,13c3

(5) 顯示記憶體單元內容的命令d,格式為:

-d[位址]或-d[範圍]

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

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

組合語言實驗指導書

前言組合語言是計算機專業的一門重要的專業基礎課,主要介紹組合語言程式設計的基本原理和方法。組合語言是一門理論性和實踐性較強的課程,輔助課堂教學的實驗有助於幫助學生理解組合語言的基本原理,鍛鍊學生的動手能力,提高學生的綜合應用知識的能力。本實驗指導書按照組合語言程式設計的教學大綱要求編寫。依據循序漸進...

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

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