㈠ 給出了段寄存器和指令指針寄存器,怎麼求指令的物理地址
處理器利用CS:IP取得下一條要執行的指令,其中指令的物理地址獲取方法是:段地址左移4位,加上偏移地址。
12000H+FF00H=21F00H
這在匯編語言存儲器的分段管理部分有詳細介紹。。。。
至於你的第二問,段寄存器只有一個,同一時刻就只能取一個段地址吧?
㈡ 操作系統的物理地址怎麼計算
其實第一條回答是正確的,我在這里為網友們追加一個解釋:
按照書上定義,在頁式存儲系統中,
絕對地址 = 塊號 x塊長 +業內偏移地址。
相對地址 由一段內存的高bit位作為頁號,低bit位作為頁內偏移地址
那重要的一點是,如果找出這三個變數。且看該題:
每頁1KB,說明了,業內偏移地址的范圍是0~1023byte 換句話說,頁內偏移地址佔16bit中的 0-9bit, 那按照相對地址的概念,那10-15 bit就該為頁號地址了。
那麼, 0x0A5C <=> 0000 1010 0101 1100
則前面 0000 10 這6個bit 表示頁號,換算成十進制為 2,也即是頁號為2,再按照頁表推算,即物理塊號就為4, 而4再換算成16進制,即是0001 00;而後面 10 0101 1100 這10個bit位,理所當然的為頁內偏移地址了。 則物理地址就該為0001 00 (占據10-15bit)+ 10 0101 1100 (占據0-9bit) = 0001 0010 0101 1100
他的所謂憑接,其實就是讓0001 00 佔用bit 10-15.
㈢ 8086如何計算的物理地址
8086中含有存儲器。存儲器中每一個單元的地址可以用兩種方法表示:
1.邏輯地址:其表達形式為「段地址:段內偏移地址」。
2.物理地址:CPU與存儲器進行數據交換時在地址匯流排上提供的20位地址信息稱為物理地址。
物理地址=段地址×10H+段內偏移量
註:H為16進制,CS :代碼段寄存器,