幫忙我解釋一下這個程式設計題目啊!謝謝,微機原理

  • 作者:由 週末 發表于 文化
  • 2022-08-02

幫忙我解釋一下這個程式設計題目啊!謝謝,微機原理JO☆☆2010.07.06 回答

8086彙編是工作在保護模式下的,有段地址概念,每個程式有自已的資料段、堆疊段、程式碼段、附加段等

彙編生成的可執行檔案中又有偏移地址、段地址和物理地址之分,可執行檔案中程式碼資料的偏移地址在編譯時就已經分配好,是居定不變的,段地址是由可執行程式載入器動態分配的,可執行檔案執行時真正存放的記憶體地址又叫物理地址,

物理地址=段地址X16+偏移地址(問題的關鍵),

通地物理地址的計算方式載入器只要分配給可執行程式唯一的段地址,這樣能確保它的資料不會跟其它的程序衝突,有自已的資料空間。

上面說了一堆,也就是說:

物理地址=段地址X16+偏移地址

[解]

的第一句話,也就是求出棧頂的物理地址,回答了第一問。

第二句話,PUSH BX指令後,先SP減2,再把BX資料存放到SP指向的地址,

由於PC機是採用小端儲存方式,也就是遵循“高高低低”原則

(高地址存放資料的高位元組,低地址存放資料的低位元組)

所以2FF00H地址中的內容為34H,2FDFF地址中的內容為57H

(圖片中的答案有誤!!經DEBUG下執行a命令檢視結果,我的回答應該是正確的)

Top