組合語言實驗(DEBUG的使用)

2021-08-29 22:48:22 字數 2083 閱讀 3791

一、實驗目的:

1.熟悉debug的功能及執行。

2.掌握debug常用命令。

二、實驗內容:

debug的載入及其常用命令(a、u、r、d、e、t、p、g、q)的使用情況。(注意:微機進入debug狀態下之後,一切立即數和位址資料均被預設為十六進製制數,在輸入時數的後面不加字尾「h」。)

2.將資料段中的兩個數求和,結果儲存在資料段中。

源程式、機器語言程式如下:

cs:0100 al

00 00 mov ax,[0000]

cs:0103 03

06 02 00 add

ax,[0002]

cs;0107 a3 04 00 mov [0004],ax

cs:010a cb retf

資料段內容如下:

ds:0000 23 25 ;兩個已知數

3.在debug中編制簡單的匯程式設計序片斷,並除錯執行,得出結果。

三、實驗主要步驟:

1.在dos或windows的命令列視窗執行命令debug.exe,進入debug程式環境,熟悉debug各個命令的用法。

實驗步驟

(1)用e命令鍵人上述機器語言程式和資料段的初值。

—e ds:000 23 25

—e ds:006 2a 2a 2a (2a為*,是為便於檢視資料段內容而設定)

—e cs:100 a1 00

00 03 06

02 00

—e cs:107 a3 04

00 cb

(2)用d命令檢查資料段、**段內容。

—d ds:0

—d cs:100

(3)用t命令逐條執行上述程式,注意觀察每條指令執行後相應暫存器的變化。

(4)用u命令反彙編本程式。

—u 100 10a

(5)用r命令修改ip的內容為0100重新執行上述程式。

—r ip

顯示:ip 010a:0100

(6)用g命令執行程式。

—g =cs:0100

107觀察:ip= ax=

—g =cs:0100

10a觀察:ip= ax=

3.自己試著寫段程式:

-a100↙

16c6:0100 db『1234567890『↙

16c6:010a cld↙

16c6:010b mov

si,100↙

16c6:010e mov

di,200↙

16c6:0111 mov

cx,a↙

16c6:0114 rep movsb↙

16c6:0116↙

-g =10a

116↙;執行上述程式(起始位址10ah,結束位址116h)。

-d 100 l a↙;顯示ds:100開始10個位元組內容

16c6:0100 31 32 33 34 35 36 37 38-39 30 『1234567890

-d es:200 l a↙顯示es:100開始10個位元組內容

16c6:0200 31 32 33 34 35 36 37 38-39 30 『1234567890

4.寫出實驗報告。

一、實驗目的:

1.熟悉debug的功能及執行。

2.掌握debug的常用命令。

二、實驗過程:

1.除錯debug

2.更改ip

3.執行命令

三、實驗心得:

學習並掌握了如何除錯出debug以及其他的一些命令,學會了如何更改ip位址,

基位址,和如何計算,如何從**中檢查自己是否輸入錯誤。

一、實驗目的:

1.熟悉debug的功能及執行。

2.掌握debug的常用命令。

《組合語言》實驗 實驗

注意 db定義位元組型別變數,乙個位元組資料百佔1個位元組單度元,讀完乙個,偏移量加1 dw定義字型別變問量,乙個字資料佔2個位元組單元,讀完乙個,權偏移量加2 dd定義雙字型別變數版,乙個雙字資料佔4個位元組單元,讀完乙個,權偏移量加4 一開始用了乙個暫存器表示所有項,但是後來發現四個資料佔的位元...

組合語言實驗1 2

小寫字母變為大寫字母 data segment notic db please input the word 0ah,0dh data ends code segment assume cs code,ds data start mov ax,data mov ds,ax 填入ds mov cx,1...

組合語言實驗1 3

輸入10個字元,並反序輸出 data segment dd1 db 10 dup data ends code segment assume cs code,ds data start mov ax,data mov ds,ax lea bx,dd1 dd1的有效位址放入bx中 mov cx,0ah...