實驗五 編寫除錯具有多個段的程式

2022-06-04 17:09:12 字數 1351 閱讀 4043

實驗一  將下面的程式編譯,連線,用debug載入,跟蹤,然後回答問題

執行程式截圖如下:

總結:cpu執行程式,程式返回前,data段中的資料不變

cpu執行程式,程式返回前,cs=076c,ss=076b,ds=076a

設程式載入後,code段的段位址為x,則data段的段位址為x-2,stack段的段位址為x-1.

實驗二 

總結:1.data段中的資料依然不變

2.cs=076c,ss=076b,ds=076a

3.code段的段位址為x,data段的段位址為x-2,stack段的段位址為x-1

4.name segment

name ends

如果段中的資料佔n個位元組,程式載入後,該段實際占有的空間為(n/16+1)*16.

實驗三

總結:1.data段中的資料不變

2.cs=076a,ss=076e,ds=076d

3.code 段的段位址為x,data段的段位址為x+3,stack段的段位址為x-4

實驗四  (1)和(2)不能,(3)可以正確執行,原因為前者是資料段載入進入記憶體中,後者是**段加載入記憶體中,程式可以正確執行。

實驗五  

經過除錯,資料相加前,邏輯段c的8個位元組:00 00 00 00 00 00 00 00

執行完加運算之後,邏輯段c的8個位元組:02 04 06 08 0a 0c 0e 10

實驗六

總結:組合語言還是多敲敲多執行,才能熟能生巧,不然會很暈。

課上的內容應該及時鞏固複習,不然容易造成遺忘。

實驗五 編寫 除錯具有多個段的程式

一 用r命令檢視可知stack的段位址為076b,由源 可知stack內有8字,即16位元組。通過ds 075a可知程式從076a開始存放,所以data區短位址是076a,剛好資料區也是16個位元組。1 用d命令檢視data段中的資料為 2 用g命令執行該 可知cs 076c,ss 076b,ds ...

實驗5 編寫 除錯具有多個段的程式

assume cs code,ds data,ss stack data segment dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h data ends stack segment dw 0,0,0,0,0,0,0,0 stack ends ...

實驗 5 編寫 除錯具有多個段的程式

一 實驗任務 完成教材133實驗5 1 將下面的程式編譯 連線,用debug載入 跟蹤,然後回答問題。用u指令反彙編,g指令執行到001d前,得到程式返回前。1 cpu執行程式,程式返回前,data段中的資料為多少?2 cpu執行程式,程式返回前,cs 076c ss 076b ds 076a。3 ...