1. 程式人生 > >匯編實驗報告五

匯編實驗報告五

匯編 src 開始 本質 寄存器 不出 多少 技術 怎麽

技術分享圖片

技術分享圖片

技術分享圖片

(5)
一開始寫的是兩個循環的,結果發現C段裏面沒相加結果,反匯編發現,第二個循環部分的代碼並沒有執行,怎麽改都不行,數量不多,就換成了直接一個一個入棧,結果那部分代碼也不執行,我弄了一個多小時也找不出問題ORZ
後來又換了一種方法,才可以。

不可行1號:(mov ax,4c00h int21h 後來發現了,改了也不行)
技術分享圖片

不可行2號:
技術分享圖片

不可行3號:
技術分享圖片

……

可行的:
技術分享圖片

技術分享圖片

(6)
技術分享圖片

技術分享圖片

技術分享圖片

1.感覺無論是什麽段,都是我們自己定義的,本質就是一個內存空間,然後我們給他定義一個功能,就像ax寄存器一樣,我們可以賦值可以通過它賦值給別的段。
2.8086 匯編中,邏輯段實際分配的空間是16 字節的整數倍。通過反匯編就可以看出每個段占了多少空間。就能知道各個段之間相差幾。
3.如果不指名start入口,程序會順序(從上至下)執行,如果是數據段,本來用來處理的數據會被當做指令代碼,可能會影響原本code段指令對數據的處理,從而導致了錯誤的結果。

匯編實驗報告五