一、實驗目的:
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...