長春理工大學
匯編語言
實驗 報告
實驗題目:
用 用 G DEBUG 程序調試程序功能段
實驗時間:
2016
年
4
月
6
日
實驗地點:
東三教 912
班
級:
1405111
學
號:
140511114
姓
名:
王國偉
一. .
實驗目的
1. 繼續學習使用 DEBUG 程序的各種命令。
2. 利用 DEBUG 學習了解計算機取指令、執行指令的工作過程。
3. 掌握 8086/8088 基本指令的使用方法和功能。
二. .
實驗準備
1. G DEBUG 命令
1) G 命令
格式:G[=起始地址] [斷點地址]
功能:從起始地址開始執行到斷點地址,如不設斷點地址,則程序一直執行到終止指令才停止
2) P P 命令
功能:執行匯編程序,單步跟蹤
與 與 T T 命令不同的是:
P 命令不會跟蹤進入子程序或軟中斷。其使用方式與 T T 相同
3) N N 命令
功能:指定文件名。為讀/寫文件做準備
4) W W 命令
功能:向磁盤寫內容
5) L L 命令
功能:從磁盤將文件或扇區內容讀入內存
注意:使用該命令前,必須用 N N 命令設定文件名
三. .
實驗任務
1. 按照下列給定步驟完成求累加和程序: :
程序 :
MOV BX,1000
MOV CX,10
MOV AL,0
LOP: ADD AL,[BX]
INC BX
J: LOOP LOP
INT3
步驟: :
1) 用 A 命令將程序鍵入到 100H 開始的內存中,在鍵入時記下標號LOP 和 J 的實際地址,在鍵入 LOOP 指令時 LOP 用實際地址值代替。
LOP:0B50:0108 J:0B50:010B
2) 用命令 N AA 將此程序命名為文件 AA(文件名可任取)。
3) 用 R 命令將 BX:CX 改為程序長度值(即最后一條指令后面的地址減去開始地址) ,用 R 命令把 BX 設為:0000H,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 是否正確。
(J 為斷點地址)
11)用 G 命令使程序運行到結束,檢查 AX 值是否正確 2. 用命令 A A 匯編下列指令,判斷指令正誤并說明原因。
i. LEA DI,[AX]
錯誤,因為 lea 指令傳送的必須為變量名,標號或地址表達式
ii. MOV DS,2010
錯誤,不能將立即數放入數據段中
iii. PUSH AL
錯誤,push 一次壓入 16 位數據,al 只有八位
iv. OUT 900,AL
錯誤,因為當端口地址大于 FFH 的時候應該將端口地址送到dx 中,al 只能
操作八位數
v. MOV [BX],0
錯誤,因為沒有標明是字節傳送還是字傳送
3. 利用 T T ,P P ,G G 命令,執行下列指令段,注意它們的不同之處
MOV DI,300
MOV SI,400
MOV CX,3
CLD
REP MOVSB
INT 3
如果用 G 命令直接中斷,并且顯示寄存器標志和下一條要執行的命令。
T 是執行一個指令,通常采用跟蹤一條指令,但用戶也可以用指令條數設定一次跟蹤多條指令,每執行一條指令之后,顯示所有寄存器的內容和標志狀態以及下一條指令在內存中的保存情況。
P 其實也是執行一條指令,但區別是在執行 INT 的時候會把這個 INT 整個的執行完畢,而不是跳轉到這個中斷程序去跟蹤執行使用 P 命令執行程序,該程序不間斷運行,直到循環、重復字符串指令、軟件中斷或者完成了指定地址的子例程為止,或者直到執行了指定數量的機器指令為止。若被執行的指令不是循環、重復的字符串指令、軟件中斷或子程序,則P 命令與 T(跟蹤)命令的作用相同。
4. 程序: :
MOV
DI,1000
MOV CX,8
MOV SI,2000
CLC
LOP:
MOV AL,[SI]
ADC [DI],AL
INC SI
INC DI
LOOP LOP
INT
20
步驟: :
1) 用 A 命令鍵入此程序
2) 用 E 命令在 1000H 開始處鍵入一個 8 字節被加數,在 2000H開始處鍵入一個 8 字節加數,均為低字節在前面。
3) 用 G 命令運行此程序,并用 D 命令檢查其結果(存放在哪里?),是否正確?
4)將 INT 20H 指令改為 INT 3,有何區別?若這條指令不加,行不行?試
試。
INT 20H 程序終止
INT3 為斷點
5)請說明這個程序完成的功能是什么?
將0b50:1000與0b50:2000對應的地址內的數相加并存入[di]
四.實驗小結
在寫入程序時,應當先讀懂程序,大致上了解一下該程序段所執行的功能或者流程,以便后面進行查看時判斷程序的正誤.讀程序的過程中就需要熟練的運用尋址方式來讀懂程序,最先開始就因為尋址方式而讀不懂程序.
學會了 G 命令的使用,同時了解了 T.G.P 命令它們之間的不同.
了解到了 INT 的部分指令的功能,如 INT20H INT3 等等.
推薦訪問: 實驗 報告上一篇:傅里葉光學實驗報告
下一篇:鄉鎮黨委領導述職述廉報告例文
同志們:今天這個大會,是市委全面落實黨要管黨、從嚴治黨要求的一項重大舉措,也是對縣市區委書記履行基層黨建工作第一責任人情況的一次集中檢閱,同時是對全市基層黨建工作的一次再部署、再落實的會議。前面,**
***年,我認真履行領班子、帶隊伍、抓黨員、保穩定的基層黨建工作思路,以學習貫徹習近平新時代中國特色社會主義思想和黨的十九大歷次全會精神為主線,以市局基層黨建工作考核細則為落腳點,落實全面從嚴治黨主體
根據會議安排,現將2022年履行抓基層黨建工作職責情況報告如下:一、履職工作特色和亮點1 突出政治建設,著力在思想認識上提高。牢固樹立抓黨建就是抓政績的理念,以“黨建工作抓引領、社區治理求突破,為民服
2022年以來,在**黨委的正確領導下,堅持以習近平新時代中國特色社會主義思想為指導,深入學習宣傳貫徹黨的二十大精神,以黨建工作為統領,扎實開展夯實“三個基本”活動,以“四化四力”行動為抓手,聚力創建
各位領導,同志們:根據會議安排,現就2022年度抓基層黨建工作情況匯報如下:一、主要做法及成效(一)強化政治引領。一是不斷強化理論武裝。堅持通過黨組會、中心組學習會和“三會一課”,第一時間、第一議題學
2022年度抓基層黨建工作述職報告按照黨委工作部署,現將本人2022年度抓基層黨建工作情況報告如下:一、2022年度抓基層黨建工作情況(一)旗幟鮮明講政治將旗幟鮮明講政治放在全局發展首要位置,積極開展
2022年,是我在數計系黨總支書記這個新崗位上度過的第一個完整的工作年度。回首一年來在校黨委的正確領導下,與數計系領導班子和全體師生共同走過的日子,艱辛歷歷在目,收獲溫潤心田。作為黨總支書記,我始終牢
按照考核要求,現將本人一年來,作為統戰部長履行職責、廉潔自律等方面情況報告如下:一、著眼增強政治素質,不斷深化理論學習堅持把旗幟鮮明講政治作為履職從政的第一位要求,帶領統戰系統干部堅決擁護“兩個確立”
**年,緊緊圍繞黨工委、管委會的決策部署,全體人員團結協作、凝心聚力,緊扣黨工委“**”基本工作思路,全力開拓進取,認真履職盡責,圓滿完成各項工作任務。一、個人思想政治狀況檸檬文苑www bgzjy
按照縣委關于開展抓基層黨建述職評議會議的有關要求,經請示縣委組織部同意,今天,我們在此召開2022年度基層黨組織書記抓基層黨建述職評議會議。1 首先,請**黨委書記,**同志述職。**黨委能夠主動研究