㈠ 什麼是基地址.段地址主要用處是什麼
其實這個問題是從內存的定址來說,
一般程序要找到內存所存儲的數據或者下一個指令,都要通過段地址+偏移地址的形式來確定所需要的東西所在內存的位置,以便讀取。
首先要說,這種模式工作在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