組合語言高手幫忙記憶體地址20000則8086中段地址的最小值

2022-05-26 04:40:20 字數 1423 閱讀 4298

1樓:做而論道

要想定址到 20000h,其最後的 0,只能放在偏移地址中。

因此,偏移地址的最末位,必須是 0。

那麼,偏移地址最大值,只能是 fff0h。

於是:(20000 - fff0) / 16 = 10010 / 16 = 1001h

2樓:匿名使用者

實體地址=段基址*10h+偏移地址

段基址是段起始地址的高16位地址

段的起始地址末位是0,所以這道題給的不相符,題出錯了。

希望你能採納。

在8086中,段地址為多少的時候,cpu無法變化偏移地址以找到20000h地址單元?

3樓:做而論道

先求出,段地址為多少的時候,變化偏移地址可找到20000h地址單元。

段地址 × 16 + 偏移地址 = 20000h偏移地址=0000h,段地址則為 2000h;

偏移地址=fff0h,段地址則為 1001h。

那麼,當段地址大於 2000h,或小於 1001h,就不能找到 20000h。

假設有一資料存放在記憶體20000h單元內,現給定段地址為sa,若想用偏移地址定址到此單元。則

4樓:匿名使用者

偏移地址為0000h~0ffffh,因此從實體地址20000h可以得到sa的範圍為:

1001h~2000h

過程:最大值為(20000h-0000h)/ 10h = 2000h最小值為(20000h-0ffffh)/10h = 1000.1h,因此上取整為1001h,注意段址sa為1000h時,無法得到實體地址20000h

組合語言記憶體中資料存放

5樓:匿名使用者

22 低地址

1144

33 高地址

每個dw的高地址存放高位資料,低地址存放低位資料。

8086彙編中資料是存放在資料段的,所有從低地址到高地址的存放。你在訪問3344h時可以直接用[num+2]來訪問。

需要區別的是windows的棧記憶體,是從高地址到低地址存放的。

6樓:

資料在記憶體中的存放原則是低位在前高位在後,所以:

num dw 1122h,3344h,5566h,7788h 在記憶體中的存放順序是:

22h,11h,44h,33h,66h,55h,88h,77h

8086記憶體地址空間

7樓:匿名使用者

用匯程式設計序寫的程式大小超過1m應該不可能,而且現在的電腦都是32位以上了,有虛擬空間。

8樓:做而論道

編寫大程式,就別用組合語言了。

組合語言程式設計

data segment str1 db this is a string.a cnt db 0 data ends code segment assume cs code,ds datastart mov ax,data mov ds,ax lea si,str1 l again mov al,a...

如何學習組合語言,學習組合語言需要如何入門?

學習組合語言過程 一,要有一定的微機硬體基礎知識,因為彙編很底層,更加接近機器語言,往往很多的東西要從機器層面來支援理解。二,最好先學習一門高階語言,因為高階語言更接近人的語言,相對比較容易理解。掌握了一門高階語言後再學彙編,一來不易產生畏懼感,二來遇到問題,只能侷限於已學的彙編知識來來思考遇到的問...

組合語言是做什麼會用到?c語言是組合語言嗎

呵呵 俺來給你一個滿意的回答吧 1 組合語言等同於計算機的機器指令 它是用助記符號表示的機器指令 二者一一對應的 使用組合語言編寫程式 可以直接控制計算機的硬體 組合語言編的源程式需要查表翻譯成 機器指令即目標 才能被計算機執行 在微控制器嵌入式系統中 可以使用組合語言編寫程式 佔用的儲存器空間小 ...