色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么叫偏移地址_偏移地址怎么計(jì)算

姚小熊27 ? 來(lái)源:網(wǎng)絡(luò)整理 ? 2018-04-16 09:42 ? 次閱讀

什么叫偏移地址

偏移地址就是計(jì)算機(jī)里的內(nèi)存分段后,在段內(nèi)某一地址相對(duì)于段首地址(段地址)的偏移量。偏移地址也稱為偏移量,由于8086/8088CPU內(nèi)部的ALU只能進(jìn)行16位的運(yùn)算,而8086/8088有20條地址線,直接尋址能力1MB。因此,8086/8088所使用的20位物理地址,是由相應(yīng)的段地址加上偏移地址組成的。

什么叫偏移地址_偏移地址怎么計(jì)算

偏移地址怎么計(jì)算

8086/8088有20條地址線,它的直接尋址能力為1MB。也就是在一個(gè)系統(tǒng)中可以有多達(dá)1MB的存儲(chǔ)器,地址從00000H—FFFFFH。給定任意一個(gè)20位物理地址,就可以從中取出需要的指令和操作數(shù)。但是8086/8088CPU只能進(jìn)行16位運(yùn)算。與地址有關(guān)的寄存器SP、IP、BP、SI、DI也都是16位的,所以對(duì)地址的運(yùn)算也只能是16位的。對(duì)于8086/8088來(lái)說(shuō),無(wú)論采用哪種尋址方式,尋找操作數(shù)的范圍最大是2^16,也就是64K。如何才能形成20位的物理地址呢。系統(tǒng)先將1MB存儲(chǔ)器以64KB為范圍分成若干段。在尋址一個(gè)具體物理地址時(shí),由一個(gè)基本地址再加上由SP或IP等可由CPU處理的16位偏移量來(lái)形成20位物理地址。

當(dāng)系統(tǒng)需要產(chǎn)生一個(gè)20位地址的時(shí)候,一個(gè)段寄存器會(huì)自動(dòng)被選擇。且自動(dòng)左移4位再與一個(gè)16位地址偏移量相加產(chǎn)生所需的20位地址。

例如:數(shù)據(jù)段DS寄存器的值=0088H

偏移地址=22H

那么生成的20位物理地址等于00880H+22H=008A2H

什么叫偏移地址_偏移地址怎么計(jì)算

段地址和偏移地址計(jì)算規(guī)律

左移4位就是16進(jìn)制后面補(bǔ)一個(gè)0.

段地址=1F00H,偏移地址=1000H,

線型地址=1F000h+1000H=20000H

段地址=1F00H,偏移地址=1000H,

線型地址=1F000h+1000H=20000H

獲取C++類(lèi)成員變量的地址偏移

經(jīng)常有人問(wèn)怎么獲取類(lèi)中的成員變量的地址偏移量,這個(gè)應(yīng)該是很多初學(xué)C++的人很好奇的問(wèn)題。以前我在學(xué)校的時(shí)候,也有過(guò)這種需求。忘了當(dāng)時(shí)是要寫(xiě)什么“奇怪的程序”了,反正需要獲取一個(gè)類(lèi)的成員變量的地址偏移量。

其實(shí)這個(gè)問(wèn)題很簡(jiǎn)單,如果你了解C++的類(lèi)對(duì)象內(nèi)存分布的話,這個(gè)根本不是問(wèn)題。我給他舉了個(gè)例子:

structA

{

inti;

};

&((A*)0)-》i;//這樣就可以獲取到偏移量了。他表示不理解,OK,我們來(lái)具體說(shuō)說(shuō)。

假如定義個(gè)變量Aa;我們都知道&a表示變量a的首地址,&(a.i)表示變量i的地址,那么&(a.i)減去&a不就得到i的偏移量了嗎?

是的,就是這么簡(jiǎn)單。那么這個(gè)例子&((A*)0)-》i;有什么關(guān)系呢?

&((A*)0)的地地址就是0,所以&((A*)0)-》i等于&((A*)0)-》i減去0。

有個(gè)網(wǎng)友更好奇了,為什么&((A*)0)-》i不會(huì)出問(wèn)題?這個(gè)例子里并沒(méi)有為A的對(duì)象分配內(nèi)存,那怎么可以得到它的地址呢?

是的,這里確實(shí)沒(méi)有分配內(nèi)存,但是這個(gè)例子里我們并沒(méi)有要求有內(nèi)存,我們也不對(duì)內(nèi)存進(jìn)行操作,所以不會(huì)引來(lái)崩潰。

&((A*)0)-》i只是借助編譯器為我們計(jì)算出它的地址。當(dāng)編譯器要用要一個(gè)成員變量的時(shí)候,它會(huì)根據(jù)對(duì)象的首地址加上成員的偏移量得到成員變量的地址。當(dāng)對(duì)象的首地址為0時(shí),得到的成員變量地址就是它的偏移量。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 偏移地址
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    7500
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    rt-thread studio地址偏移怎么配置?

    rt-thread studio地址偏移配置,這個(gè)再哪配置?
    發(fā)表于 02-23 06:24

    使用sizeof 進(jìn)行地址偏移出現(xiàn)問(wèn)題

    下所示,定義了兩個(gè)結(jié)構(gòu)體, 然后使用宏 定義了一個(gè)地址地址通過(guò) sizeof 結(jié)構(gòu)體 進(jìn)行地址偏移, 結(jié)果通過(guò)打印 這些地址,發(fā)現(xiàn)
    發(fā)表于 10-26 09:43

    怎么理解基地址偏移量的概念?

    你好,我很難理解NOR Flash中的基址和偏移的概念?如果你能幫助我了解銀行背后的想法,基礎(chǔ)地址偏移將是巨大的。我正在嘗試基于ARM處理器和MPED對(duì)Flash進(jìn)行讀寫(xiě)。如果你能給我提供一個(gè)C或
    發(fā)表于 11-08 16:53

    缺少用戶IP偏移地址或基地址

    嗨,我在塊設(shè)計(jì)中使用用戶IP,其中包含'NGC',用戶IP具有AXI的主從接口,但在地址編輯窗口中我缺少用戶IP偏移地址或基地址。請(qǐng)幫幫我。謝謝
    發(fā)表于 04-08 09:31

    如何將Bram的偏移地址修改為1?

    嗨,我想用Bram存儲(chǔ)二萬(wàn)個(gè)數(shù)據(jù)。 Bram的偏移地址必須是存儲(chǔ)的四個(gè)的倍數(shù)。例如, Xil_Out32(XPAR_AXI_BRAM_CTRL_0_S_AXI_BASEADDR + count
    發(fā)表于 05-07 09:24

    stm32的每個(gè)寄存器都有地址偏移是什么意思

    stm32的每個(gè)寄存器都有地址偏移,是什么意思?還有每個(gè)寄存器映像問(wèn)題?
    發(fā)表于 05-28 04:35

    地址已經(jīng)可以區(qū)分了,加一個(gè)相同的偏移地址有何意義?

    `基地址已經(jīng)可以區(qū)分了,加一個(gè)相同的偏移地址有何意義?`
    發(fā)表于 02-02 13:55

    STM32基地址偏移地址以及寄存器地址之間有什么樣的聯(lián)系

    位待操作及地址STM32地址地址、總線地址、寄存器地址是什么基地址以及
    發(fā)表于 02-24 06:29

    每個(gè)寄存器之前寫(xiě)入的偏移地址到底是什么意思

    我有一個(gè) Nucleo L476RG,用于不同的項(xiàng)目,我從來(lái)沒(méi)有重視參考手冊(cè)中每個(gè)寄存器之前寫(xiě)入的偏移地址。任何人都可以向我解釋這些抵消是什么。
    發(fā)表于 12-06 08:41

    AT32F4系列FLASH擦寫(xiě)操作的地址偏移說(shuō)明

    AT32F4系列FLASH擦寫(xiě)操作的地址偏移說(shuō)明擦除或者編程flash 時(shí),如果操作地址不在flash 絕對(duì)地址范圍內(nèi),則操作會(huì)失敗?
    發(fā)表于 10-23 08:24

    段/偏移/物理地址

    地址:8086CPU將1MB的存儲(chǔ)器空間分成許多邏輯段,每個(gè)段最大限制為64KB, 段地址就是邏輯段在主存中的起始位置。為了能用16位寄存器表示段地址,8086規(guī)定段地址必須是模16
    發(fā)表于 06-30 10:39 ?2335次閱讀

    一文看懂匯編語(yǔ)言中有效地址偏移地址的區(qū)別

    本文開(kāi)始對(duì)匯編中偏移地址的定義進(jìn)行了介紹,其次介紹了有效地址的概念以及如何由有效地址求得物理地址的方法,最后介紹了有效操作
    的頭像 發(fā)表于 04-16 09:55 ?4.2w次閱讀
    一文看懂匯編語(yǔ)言中有效<b class='flag-5'>地址</b>和<b class='flag-5'>偏移</b><b class='flag-5'>地址</b>的區(qū)別

    Keil、IAR中如何讓程序存儲(chǔ)在指定的偏移地址

    有時(shí)候,我們不想讓程序存儲(chǔ)在起始的位置,比如我們有一段bootloader,對(duì)應(yīng)的app(應(yīng)用程序)存儲(chǔ)的位置就會(huì)有一個(gè)偏移地址。 那么,我們?nèi)绾巫尦绦虼鎯?chǔ)在指定的偏移地址呢? 下面結(jié)
    的頭像 發(fā)表于 04-02 11:10 ?1.1w次閱讀
    Keil、IAR中如何讓程序存儲(chǔ)在指定的<b class='flag-5'>偏移</b><b class='flag-5'>地址</b>?

    stm32位帶操作及內(nèi)存地址

    位待操作及地址STM32地址地址、總線地址、寄存器地址是什么基地址以及
    發(fā)表于 01-12 18:21 ?1次下載
    stm32位帶操作及內(nèi)存<b class='flag-5'>地址</b>

    如何讓程序存儲(chǔ)在指定的偏移地址呢?

    有時(shí)候,我們不想讓程序存儲(chǔ)在起始的位置,比如現(xiàn)在有一段bootloader,對(duì)應(yīng)的app(應(yīng)用程序)存儲(chǔ)的位置就會(huì)有一個(gè)偏移地址。那么,如何讓程序存儲(chǔ)在指定的偏移地址呢?
    發(fā)表于 07-10 10:38 ?1171次閱讀
    如何讓程序存儲(chǔ)在指定的<b class='flag-5'>偏移</b><b class='flag-5'>地址</b>呢?
    主站蜘蛛池模板: 国产中文字幕一区 | 亚洲视频在线观看不卡 | 东北老妇xxxxhd | 女的把腿张开男的往里面插 | 天天影视香色欲综合网 | 亚洲精品国产A久久久久久 亚洲精品国产AV成人毛片 | 国产 日韩 欧美 综合 激情 | 超碰97人人做人人爱网站 | 无码AV免费精品一区二区三区 | 亚洲精品第一综合99久久 | 精品亚洲AV无码蜜芽麻豆 | 美女扒开尿口让男生添动态图 | 乳欲性高清在线 | 97久久超碰中文字幕 | 成人免费无毒在线观看网站 | 快播苍井空 | 成年人视频免费在线播放 | 欧美日韩另类在线专区 | 性派对xxxhd 性啪啪chinese东北女人 | 蜜芽资源高清在线观看 | 精品亚洲一区二区三区在线播放 | 久久囯产精品777蜜桃传媒 | 国产AV亚洲国产AV麻豆 | 国产精选视频在线观看 | 6080yy奇领电影在线看 | 日本一本二本三区免费免费高清 | 国产午夜福利100集发布 | 一本道亚洲区免费观看 | 99久久99久久精品国产片果冻 | TIMI1TV天美传媒在线观看 | 久久精品国产亚洲AV麻豆欧美玲 | 国产精品AV视频一二三区 | 97精品国产亚洲AV超碰 | 亚洲黄色网页 | 浪货嗯啊趴下NP粗口黄暴 | 欧美牲交A欧美牲交 | 亚洲免费福利在线视频 | 伊人久久大香线蕉综合高清 | 国产一区二区青青精品久久 | 久久精品一区二区免费看 | 日本无吗高清 |