這是一款來自破刺的操作系統開發系列。有三行代碼。加載第二行需要512字節,第三行需要514字節。我們如何計算這個?如果可能,請給我一個鏈接,我可以詳細閱讀它。提前致謝。如何計算彙編代碼所需的內存?
在彙編語言中,我們可以很容易地超越512字節的標記。 所以,代碼可能看起來很好, 但只有一部分將在 內存。例如,coinsider這樣:
mov ax, 4ch
inc bx ; 512 byte
mov [var], bx ; 514 byte
彙編語言編寫,執行 從文件 向下的頂部開始。不過請記住, 在內存中加載文件時,我們是 加載扇區。這些 扇區中的每一個都是512字節,所以它只會將 將512字節的文件複製到 的內存中。
如果在執行上面的代碼,並且只有第一扇區 被加載到內存中,它只會 起來複制到512字節(INC BX 指令)。所以,雖然最後的mov 指令仍然在磁盤上,但它不在內存中! ! 處理器在inc bx之後會做什麼?它將通過 繼續到514字節。由於此 不在內存中,它會在我們的文件末尾執行 !結束 結果?崩潰。
謝謝,我明白了。 – narayanpatra 2010-11-04 04:52:56