首頁 >常見問題 >段寄存器的種類和作用是什麼

段寄存器的種類和作用是什麼

青灯夜游
青灯夜游原創
2021-01-22 16:35:2113644瀏覽

段寄存器的種類和作用:1、代碼段寄存器CS,用於存放目前正在運行的程式碼所在段。 2.資料段寄存器DS,用於存放資料段。 3.堆疊段暫存器SS,存放堆疊段。 4.附加段寄存器ES,存放目前程式使用附加資料段。

段寄存器的種類和作用是什麼

本教學操作環境:windows7系統、Dell G3電腦。

段暫存器是因為對記憶體的分段管理而設定的。電腦需要對記憶體分段,以分配給不同的程式使用(類似於硬碟分頁)。在描述記憶體分段時,需要有如下段的資訊:1.段的大小;2.段的起始位址;3.段的管理屬性(禁止寫入/禁止執行/系統專用等)。需要用8個位元組(64位元)儲存這些訊息,但段寄存器只有16位,因此段寄存器中只能儲存段號(segment selector,也譯作「段選擇符」),再由段號對應到存在記憶體中的GDT(global (segment) descriptor table,全域段號記錄表),讀取段的資訊。

段暫存器:在8086系統中,存取記憶體的位址碼由段位址和段內偏移位址兩部分組成。段暫存器用來存放各分段的邏輯基值,並指示目前正在使用的4個邏輯段,包括程式碼段暫存器CS、堆疊段暫存器SS、資料段暫存器DS和附加段資料暫存器ES。

種類與作用:

1、程式碼段暫存器CS(Code Segment)

#存放目前正在執行的程式碼所在段的段基址,表示目前使用的指令代碼可以從該段寄存器指定的記憶體段中取得,相應的偏移量則由IP提供。

2、資料段暫存器DS(Data Segment)

指出目前程式所使用的資料所存放段的最低位址,即存放資料段的段基址。

3、堆疊段暫存器SS(Stack Segment)

指出目前堆疊的底部位址,即存放堆疊段的段基址。

4、附加段暫存器ES(Extra Segment)

指出目前程式使用附加資料段的段基址,該段是串列操作指令中目的串所在的段。

想要查閱更多相關文章,請造訪PHP中文網! !

以上是段寄存器的種類和作用是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn