幫助:組合語言段位址偏移位址實體地址問題

發布 科技 2024-07-24
9個回答
  1. 匿名使用者2024-02-13

    我們經常有拿乙個位址去找房間的經驗,比如302,那麼,我們知道這個房間在三樓,東邊的第二個房間,這個位址其實是由兩個位址組成的。

    舉個例子來回答這個問題,你可以這樣想:段位址等價於樓層位址,偏移位址等價於房間號,最後合成實體地址。

    8086位址線20,資料線16,實體地址的位數取決於8086位址線的位數,16位的資料線決定了8086的暫存器只能有16位,所以段暫存器和通用暫存器都是16位,所以段位址和偏移量也是16位。 當您要合成 20 位實體地址時,首先將段位址向左移動 4 位(這就是 *16 的原因)成為 20 位位址,然後新增乙個 16 位偏移位址以獲得最後乙個 20 位實體地址。

  2. 匿名使用者2024-02-12

    這樣,記憶體中的20位實體地址由段內位址(16位)和段內偏移位址(16位)組成,合成實體地址的方法是將段位址的16位值向左移動4位(相當於將十進位數乘以16)。

  3. 匿名使用者2024-02-11

    因為機器的字是 16 位,所以你不能製作其他字,你只能轉換它們。

    因此,您只能使用將段位址向左移動 4 位,加上偏移位址。 就是這樣,就像樓上的那個說的。 這個例子很好。

  4. 匿名使用者2024-02-10

    實際實體地址派生自段位址 + 偏移位址。

    這是因為位址匯流排只有 16 位,但實體地址是 20 位。

    因此,乙個段(段位址不變,偏移位址變)可以表示64kb(偏移位址從0變為ffff),段位址隨段位址變化而變化。

    那麼實體地址是如何計算的呢?

    即段位址向左移動4位(即乘以2 4倍),空的0變為20位,加上偏移位址即為實體地址。

    例如,位址為 00100h(16 位是 4 個二進位位,5 是 20 位)。

    此外,小數點後 1 位左移是 4 位左移 2(代數自己試試)。

    您可以將其表示為(16 位),0010:0000(0010*16+0000=00100)。

    0000:0100 (0000*16+0100=00100),結果不是唯一的。

  5. 匿名使用者2024-02-09

    該書說,使用 8086 處理器時,偏移位址由 16 位表示,使段大小為 64kb。

    右。 但是 2 16b = 2 13b = 2 3kb = 8kb,為什麼是 64kb 2 16 = 65536 = 64k

    然後 Shurang 繼續說,每個段稱為乙個段,在 1m 的記憶體中有 64k 段,每個段有 16 個位元組。

    1M 記憶體,共有 64k 部分。

    1m 記憶體,總共 16 個不相交的 64ks。

  6. 匿名使用者2024-02-08

    段位址 * 16(十進位);

    段位址 * 10(十六進製);

    段位址向左移動了四位;

    段位址後跟四個零(二進位);

    這些陳述都是一樣的。

    公式寫的最大值? 但是,在20位位址的時代,不能使用值為10ffef(不是20位)的位址部分。

    後來,我用了它。

  7. 匿名使用者2024-02-07

    例如,如果你告訴別人你在樹林裡埋了什麼東西,你會說這樣的話

    從這裡開始,第五棵樹又向前移動了 2 公尺。

    在這裡,“第 5 棵樹”是乙個厚框,“向前 2 公尺”是基於該幀內幀的偏移量。

    段位址是上述示例中的幀,偏移位址是幀內相對於幀基的區域性偏移。

    8086 之所以在8088中使用邏輯位址,是因為實體地址的長度(20位)超過了處理器的字長(16位),不能一次完全表示,所以要分成兩部分。 同時,這種處理也帶來了有利於程式動態記憶體定位的好處。

  8. 匿名使用者2024-02-06

    在 80x86 中,運算元的偏移位址稱為有效位址或“EA”。

    表示式為:ea = 基址 +(位址 * 比例因子)+ 位移。

    例如,8 可以直接寫成 8

    也可以寫 5+3

    這裡 3 是 8 相對於 5 的偏移量。

  9. 匿名使用者2024-02-05

    一塊 4GB 的 RAM。 為了訪問內容,它被物理定址。 0,1,2,3,。。

    這樣就可以訪問資料,例如位址 0 中的內容。

    夠了。

    但! 我一台電腦總共只有4GB,我給你乙個程式用,其他人呢?

    因此,使用分段機制來拆分 4GB。 這個 4GB 的位址可以看作是 0、1 和 2 的段,。。0,1,2.。。這就是段位址。

    這樣,每個段相當於乙個 4GB(乙個段最多可以達到 4GB)。

    例如,如果我想取出實際的實體地址位置 3,那麼我需要取出第一段的位置 3。

    例如,如果我想取出實際實體地址 100 的位置,這可能是在第三段的第 5 個位置。

    然後,您需要乙個段位址 3 和乙個偏移位址 5 來找到它。

    最初,儲存卡在對實體地址Duang進行編碼後,變成了具有位址的儲存卡,大小為4GB。

    都是真的,這是真的! 段位址,偏移位址,都是假的! 假貨也是以真品為藍本,假貨經過改造後,才找到真品。

    更清楚嗎?

    如果沒有,那麼我很抱歉耽誤了你。

相關回答
10個回答2024-07-24

組合語言可以說是機器語言,直接與硬體打交道的是將計算機語言轉化為機器可以識別的1001。 它不會過時,至少在這十年內不會。 不過,這主要是關於硬體方面。 >>>More

5個回答2024-07-24

一般的想法是建立兩個儲存區域,乙個用於源字串,乙個用於修改後的字串。 建立兩個迴圈,乙個用於空格,乙個用於字串結束符號,這兩個迴圈都與 ASCII 程式碼進行比較。

8個回答2024-07-24

首先,暫存器位置不同:

1. CS:**段暫存器; >>>More

5個回答2024-07-24

人們想要編譯,你寫乙個 c

12個回答2024-07-24

同樣,它是 1101000000

CPU:不管你是記憶體單元還是暫存器。 >>>More