国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASM > 正文

匯編語言(王爽)——第三次上機

2019-11-10 22:37:57
字體:
來源:轉載
供稿:網友

一、實驗名稱

實驗4 [bx]和loop的使用 實驗5 編寫、調試具有多個段的程序

二、實驗目的

掌握匯編語言源程序編寫→匯編→鏈接→調試的方法掌握靈活應用[bx]表示內存單元和loop指令實現循環的用法掌握具有多個段的匯編源程序結構、編寫、調試理解具有多個段的匯編源程序對應的目標程序執行時,內存分配方式

三、實驗內容

教材實驗4(P121) 其中:實驗任務(1)和(2)合并成一道編程題,題目改成: 綜合使用loop,[bx],編寫完整匯編源程序,實現向內存0:200~0:23F依次傳送數據0~63(3FH)。教材實驗5(P133-137)

四、實驗步驟

教材實驗4(P121)

實驗任務(1)和(2) 首先,在t1.asm中寫入源程序。 圖一 然后,進入虛擬Dos進行編譯和連接,并沒有警告錯誤和必須改正的錯誤。 圖二 這是編譯和連接產生的目標文件以及可執行文件。用debug對可執行文件進行調試。首先進行反匯編。 圖三 圖四 先用t命令單步調試代碼段前四條語句,在開始對0:200~0:22f內存單元進行修改之前查看0:200~0:22f內存單元的值。然后用g命令運行程序,運行到076A:0011之前。再查看0:200~0:22f內存單元的值。結果顯示傳送成功。 圖五 圖六

實驗任務(3) 應該將對應的機器碼分別存儲到指定的內存單元。由于我個人的虛擬Dos默認 CS = 076A,所以第一空應該填寫 076A或者CS ,根據對所有指令的機器碼的統計,在mov ax,4c00h 指令之前總共有24個字節,所以循環計數寄存器cx 的值為24。并進行了接下來的操作來驗證我的推斷。 首先在t2.asm 寫入源程序。 圖七

然后,進入虛擬Dos進行編譯和連接,并沒有警告錯誤和必須改正的錯誤。 圖八 圖九 先進行反匯編,查看機器碼的個數。 圖十 用t命令單步調試到循環執行之前,查看0:200 后面若干內存單元的值。再用g命令執行指令到076A:0018之前結束,并再次查看0:200 后面若干的內存單元的值,發現已經被修改并用u命令對0:200后面的內存單元進行反匯編,發現指令被成功復制! 圖十一 圖十二 圖十三

實驗教材5(P133-137)

實驗任務(5) 首先是程序的源代碼。以及編譯、連接形成的文件 圖十四 圖十五 圖十六 用u命令進行反匯編,并通過反匯編的內容得知a,b,c段的段地址。并分別查看a,b,c的8個字節的內容。 圖十七 用g命令執行指令到076D:001C之前,并用d命令查看c的8個字節。達到了預期的目標! 圖十八實驗任務(6) 首先是程序的源代碼。以及編譯、連接形成的文件 圖十九 圖二十 圖二十一 用u命令進行反匯編,可知a段和b段對應的段地址,并用d命令查看在push操作之前每個段的8個字單元。 圖二十二 用g命令運行程序到076D:001b之前,并用d命令查看邏輯段b的8個字單元,發現并被正確復制進去。 圖二十三
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 元谋县| 盐池县| 阳朔县| 天峨县| 合肥市| 普格县| 正镶白旗| 秀山| 新巴尔虎右旗| 桐城市| 寿光市| 南丰县| 旌德县| 怀远县| 竹北市| 河西区| 西华县| 安化县| 健康| 汉中市| 明溪县| 延长县| 城步| 克什克腾旗| 渭源县| 兴化市| 濮阳市| 靖远县| 满洲里市| 忻州市| 抚州市| 长白| 青岛市| 丰镇市| 霍城县| 淅川县| 罗山县| 铜鼓县| 鸡西市| 镇赉县| 大连市|