1. 程式人生 > >匯編語言實驗五

匯編語言實驗五

結果 push指令 tac 地址 跟蹤 字節 圖片 編寫 多少

(1)將下面的程序編譯、連接,用Debug加載、跟蹤,然後回答問題。

技術分享圖片

技術分享圖片

①CPU執行程序,程序返回前,data段的數據為多少?

23 01 56 04 89 07 BC 0A EF 0D ED 0F BA 0C 87 09

②CPU執行程序,程序返回前,cs= 076C、ss= 076B 、ds=076A 。

③設程序加載後,code段的段地址為X,則data段的段地址為 X-2 、stack段的段地址為 X-1 。

技術分享圖片

(2)將下面的程序編譯、連接,用Debug加載、跟蹤,然後回答問題。

技術分享圖片

技術分享圖片

①CPU執行程序,程序返回前,data段的數據為多少?

23 01 56 04 00 00 00 00 00 00 00 00 00 00 00 00

②CPU執行程序,程序返回前,cs=076C、ss=076B、ds=076A。

③設程序加載後,code段的段地址為X,則data段的段地址為 X-2 、stack段的段地址為 X-1 。

技術分享圖片

④對於如下定義的段:

name segment

.........

name ends

如果段中的數據占N個字節,則程序加載後,該段實際占有的空間為 (N/16+1)*16 。

(3)將下面的程序編譯、連接,用Debug加載、跟蹤,然後回答問題。

技術分享圖片

技術分享圖片

①CPU執行程序,程序返回前,data段的數據為多少?

23 01 56 04 00 00 00 00 00 00 00 00 00 00 00 00

②CPU執行程序,程序返回前,cs=076A、ss= 076E、ds=076D 。

③設程序加載後,code段的段地址為X,則data段的段地址為 X+3 、stack段的段地址為 X+4 。

技術分享圖片

(4)如果將(1)、(2)、(3)題中的最後一條偽指令“end start”改為“end”(也就是說,不指明程序的入口),則哪個程序仍然可以正確執行?說出原因。

技術分享圖片

技術分享圖片

技術分享圖片

只有實驗3的結果是和修改代碼之前的結果一致。1)和(2)都改變了原來SS的值。

(5)程序如下,編寫code段中的代碼,將a段和b段中的數據依次相加,將結果存放到c段中。

技術分享圖片

技術分享圖片

技術分享圖片

相加後為02 04 06 08 0A 0C 0E

(6)程序如下,編寫code段中的代碼,用push指令將a段中的前8個字型數據,逆序存儲到b段中。

技術分享圖片

技術分享圖片

技術分享圖片

匯編語言實驗五