2013-06-05 57 views
0

做CS & DS段寄存器對於給定的工藝受保護的平板模型保持相同的值?
換句話說,請以下相同節目
mov dword ptr [0x7fffffff], ebx

org 0x7fffffff
...some instruction ...
CS vs DS值保護平板模型

指代相同的位置內的代碼序列? (如果是這樣,而不是將保護平板模型中的DS & DS分開的目的?)謝謝。

回答

1

段寄存器的值和含義取決於環境(即操作系統和操作系統模式),今天大多數情況下使用帶有平坦內存模型的受保護模式。我假設你正在使用MASM語法開發Windows(Win32)。

與大多數Unix變體一樣,Win32編程模型使用平坦的32位地址空間。通過CS,DS,ES和SS尋址的位置指的是相同的邏輯地址。 i386的FS寄存器指向Win32任務信息塊(TIB)。

段寄存器CS,DS,ES和SS(我忘了一個:-)?)大多具有歷史意義,源於8086年代。任何體面的x86彙編教程都會爲您解決這個問題。

org僞操作碼告訴彙編器將其位置計數器更改爲給定值。這會影響代碼的位置以及計算哪些基地相對地址。不同的彙編程序以不同的方式處理這個命令(NASM/MASM)。對於應用程序,請遵守示例中的默認設置。如果您對系統編程感興趣,請下載Linux內核和Grub並分析引導程序代碼。

堅持話題 - 你會學到很多關於你的機器!