導航:首頁 > 源碼編譯 > 基地址的演算法

基地址的演算法

發布時間:2022-09-04 19:51:42

㈠ 什麼是基地址.段地址主要用處是什麼

其實這個問題是從內存的定址來說,
一般程序要找到內存所存儲的數據或者下一個指令,都要通過段地址+偏移地址的形式來確定所需要的東西所在內存的位置,以便讀取。

首先要說,這種模式工作在DOS 16位模式 也稱為實模式,跟它相對應的是windows 32位的保護模式。。區別在於能尋找的空間大小不同。實模式只能尋找1M的空間,而保護模式能尋找4G。

再回來說,一個程序由數據段,代碼段,堆棧段,附加段四個主要段組成。(即一個程序被運行後,所佔據內存就是給這個四個段使用)

而你說的基地址其實就是每個段的起始地址,又稱段地址,分別存儲在四個寄存器里,,DS,CS,SS,ES,按順序來的。

程序要查找內存中的某一個「格子」的內容,就會根據這個格子所在的段,來先取段地址,,然後根據程序所提供的偏移地址,兩者相加,最終得到這個格子的物理地址。(至於怎麼相加的我就先不說了)

㈡ 計算物理地址為什麼要基地址*16

地址匯流排是20位,8086使用16位寄存器,直接使用的話只能定址 2^16。*16相當於左移4位,16位左移4位就是20位,20位可以定址2^20(1MB)空間

㈢ 數據結構以行序存儲的二維數組問題,地址是什麼

主要有以下兩種方法:

1、不管按行還是按列,都是順序存儲。按行存儲,每行10-5+1共6個元素。A[10, 9]距離A[10, 5]之間相差4個元素;A[18, 9]與A[10, 9]相差8行,共8×6=48個元素;所以A[18, 9]與A[10, 5]相差4+48=52個元素,共52×4=208個存儲單元;A[18, 9]的地址應該是1208。

2、更一般的演算法:基地址+(行標之差×每行元素個數+列標之差)×元素所佔存儲單元。

㈣ ios 基地址和偏移地址 相減怎麼計算

8086/8088有20條地址線,它的直接定址能力為1MB。也就是在一個系統中可以有多達1MB的存儲器,地址從00000H—FFFFFH。給定任意一個20位物理地址,就可以從中取出需要的指令和操作數。但是8086/8088CPU只能進行16位運算。與地址有關的寄存器SP、IP、BP、SI、DI也都是16位的,所以對地址的運算也只能是16位的。對於8086/8088來說,無論採用哪種定址方式,尋找操作數的范圍最大是2^16,也就是64K。如何才能形成20位的物理地址呢。系統先將1MB存儲器以64KB為范圍分成若干段。在定址一個具體物理地址時,由一個基本地址再加上由SP或IP等可由CPU處理的16位偏移量來形成20位物理地址。
當系統需要產生一個20位地址的時候,一個段寄存器會自動被選擇。且自動左移4位再與一個16位地址偏移量相加產生所需的20位地址 。
例如:數據段DS寄存器的值=0088H
偏移地址=22H
那麼生成的20位物理地址等於 00880H+22H=008A2H

㈤ 段基地址是什麼

X86實模式下內存地址為20位二進制數(5位16進制數),一般表示成xxxx:yyyy(16進制)的形式,稱為邏輯地址;對應的物理地址為xxxx0+yyyy。邏輯地址中的xxxx就稱為段基址,yyyy稱為偏移量。多個邏輯地址可能對應同一個物理地址。

因為物理地址的計算公式是xxxx0+yyyy,所以要先在段基地址xxxx的後面補4個0(2進制,在16進制下就是一個0),再加上偏移量。

㈥ stm32真實地址的演算法是怎麼的

PIOA舉例,GPIOA的基地址是0x4001 0800,它的CTL偏移是0,它的CRH偏移是4

㈦ 基址里有進程名怎麼演算法

首先你要有地址
像 mov eax,[Torchlight.exe+9A1D2C] 這條指令,你先要從機器碼反匯編的到類似 mov eax, [xxxx] 的形式,xxxx是一個地址。
有了地址以後要知道這是屬於哪個模塊,先枚舉出所有模塊及其基地址和長度,然後就是匹配。
如果有相應的pdb文件可以獲取更多的信息。
其實這些功能(我指的是符號查找,不是反匯編)微軟都有提供庫,去msdn看介面就會用了。

p.s. 什麼叫「請不要只告訴我答案」?除了答案還能告訴你什麼,難道代碼?自己寫過一次才會真正學會。

㈧ 什麼是偏移地址和基地址能舉例說明嗎

打個比方,你找一個403房間,你要先到4樓,然後找第三個房間,那就是403。在這里,4樓就是基地址,3就是偏移地址。在asm中也是一樣的,實際的地址就是基地址+偏移地址

㈨ 匯編中段地址和基地址是什麼意思

段地址其實就是一種基地址,但基地址並不等於就是段地址。
所謂基地址,顧名思義就可以理解為基本地址,他是相對偏移量的計算基準。
在實模式下,通常都是以段+偏移來定位地址,因此說,這時,段地址是基地址的一種。但是在堆棧上,常常不以ss寄存器來作為定址基準,而是經常用bp寄存器來定址,因此,此時堆棧段的段址就不能說是基地址
而保護模式下,不再有「段」的概念,這時的段寄存器里保存的是「段選擇子」,根基地址根本就是兩回事。

㈩ 什麼是基地址,什麼是偏移量,他們之間有什麼聯系

地址等於 基地址 +偏移地址 .

比如 地址 是 10003 可以看做他的地址是10000 , 偏移 是3

閱讀全文

與基地址的演算法相關的資料

熱點內容
卡爾曼濾波演算法書籍 瀏覽:768
安卓手機怎麼用愛思助手傳文件進蘋果手機上 瀏覽:843
安卓怎麼下載60秒生存 瀏覽:803
外向式文件夾 瀏覽:240
dospdf 瀏覽:430
怎麼修改騰訊雲伺服器ip 瀏覽:392
pdftoeps 瀏覽:495
為什麼鴻蒙那麼像安卓 瀏覽:735
安卓手機怎麼拍自媒體視頻 瀏覽:185
單片機各個中斷的初始化 瀏覽:724
python怎麼集合元素 瀏覽:481
python逐條解讀 瀏覽:833
基於單片機的濕度控制 瀏覽:498
ios如何使用安卓的帳號 瀏覽:882
程序員公園采訪 瀏覽:812
程序員實戰教程要多長時間 瀏覽:979
企業數據加密技巧 瀏覽:135
租雲伺服器開發 瀏覽:814
程序員告白媽媽不同意 瀏覽:335
攻城掠地怎麼查看伺服器 瀏覽:601