那曲檬骨新材料有限公司

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

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

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

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

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

匯編中偏移地址的理解

偏移地址也稱(chēng)為偏移量,由于8086/8088CPU內(nèi)部的ALU只能進(jìn)行16位(16進(jìn)制的話4X4,用4位表示,0x0000-0xFFFF)的運(yùn)算,而8086/8088有20(16進(jìn)制的話4X5,用5位表示,0x00000-0xFFFFF)條地址線。為了方便只能進(jìn)行16運(yùn)算的8086/8088CPU,于是我們便將5位變成兩個(gè)4位,也即把物理地址分成段地址和偏移地址,如下圖所示:

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

那么通過(guò)段地址和偏移地址怎么得到物理地址呢?

物理地址=段地址*16(10進(jìn)制)+偏移地址。(2進(jìn)制的話,也就是段地址《《4|偏移地址)。

有效地址的理解

有效地址EA是一16位無(wú)符號(hào)數(shù),表示操作數(shù)所在單元到段首的距離即邏輯地址的偏移地址。當(dāng)操作數(shù)是存放在存儲(chǔ)器中時(shí),存儲(chǔ)器的存儲(chǔ)單元的物理地址有兩部分組成。一部分是偏移地址;一部分是段地址。在8086/8088的各種尋址方式中,尋找存儲(chǔ)單元所需的偏移地址可由各種成分組成,稱(chēng)為有效地址,用EA表示。可以通過(guò)存儲(chǔ)器尋址方式獲得有效地址。

有效地址可以由幾部分組成:基址寄存器內(nèi)容、變址寄存器內(nèi)容、比例因子和位移量。

如何由有效地址求得物理地址

物理地址指CPU尋址主存時(shí)使用的20位地址,它確定了某一實(shí)際位置的內(nèi)存單元。(2分)內(nèi)存單元物理地址可由段址和段內(nèi)的偏移量確定。內(nèi)存單元在段內(nèi)的偏移量稱(chēng)為有效地址(EA)。

物理地址=段址×16+段內(nèi)的偏移量。

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

有效操作地址尋址方式

根據(jù)指令內(nèi)容確定操作數(shù)地址的過(guò)程稱(chēng)為尋址。完善的尋址方式可為用戶(hù)組織和使用數(shù)據(jù)提供方便。

①直接尋址:指令地址域中表示的是操作數(shù)地址。

②間接尋址:指令地址域中表示的是操作數(shù)地址的地址即指令地址碼對(duì)應(yīng)的存儲(chǔ)單元所給出的是地址A,操作數(shù)據(jù)存放在地址A指示的主存單元內(nèi)。有的計(jì)算機(jī)的指令可以多次間接尋址,如A指示的主存單元內(nèi)存放的是另一地址B,而操作數(shù)據(jù)存放在B指示的主存單元內(nèi),稱(chēng)為多重間接尋址。

③立即尋址:指令地址域中表示的是操作數(shù)本身。

④變址尋址:指令地址域中表示的是變址寄存器號(hào)i和位移值D。將指定的變址寄存器內(nèi)容E與位移值D相加,其和E+D為操作數(shù)地址。許多計(jì)算機(jī)具有雙變址功能,即將兩個(gè)變址寄存器內(nèi)容與位移值相加,得操作數(shù)地址。變址尋址有利于數(shù)組操作和程序共用。同時(shí),位移值長(zhǎng)度可短于地址長(zhǎng)度,因而指令長(zhǎng)度可以縮短。

⑤相對(duì)尋址:指令地址域中表示的是位移值D。程序計(jì)數(shù)器內(nèi)容(即本條指令的地址)K與位移值D相加,得操作數(shù)地址K+D。當(dāng)程序在主存儲(chǔ)器浮動(dòng)時(shí),相對(duì)尋址能保持原有程序功能。此外,還有自增尋址、自減尋址、組合尋址等尋址方式。尋址方式可由操作碼確定,也可在地址域中設(shè)標(biāo)志,指明尋址方式。

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

在8086的機(jī)子上,有效地址=段地址左移4位+偏移地址,偏移地址與有效地址是一樣的。但是就ibm的硬件來(lái)說(shuō),他們的尋址方式也分為2種,一是實(shí)地址尋址方式,另一種是保護(hù)虛地址尋址方式。此兩種尋址方式非常不同,在8086的機(jī)子上,有效地址=段地址左移4位+偏移地址,因?yàn)樗挥袑?shí)地址尋址方式,而在286之后,就存在虛地址尋址方式,這就涉及到有關(guān)段以及描述符,描述符表,和其他的問(wèn)題,請(qǐng)您自己參見(jiàn)有關(guān)接口的書(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

    瀏覽量

    7475
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    #硬聲創(chuàng)作季 匯編語(yǔ)言(7)段地址偏移地址和物理地址

    編程語(yǔ)言匯編語(yǔ)言
    Mr_haohao
    發(fā)布于 :2022年08月29日 23:06:47

    匯編語(yǔ)言(7)段地址偏移地址和物理地址#硬聲創(chuàng)作季

    匯編語(yǔ)言匯編
    電子學(xué)習(xí)
    發(fā)布于 :2022年11月12日 12:00:47

    請(qǐng)問(wèn)arm的匯編語(yǔ)言中有沒(méi)有什么指令可以達(dá)到上述效果的?

    問(wèn)題:?jiǎn)纹瑱C(jī)中的匯編語(yǔ)言可以用ORG指定外部中斷的標(biāo)號(hào)地址比如:ORG0003HJMPINT_0那arm的匯編語(yǔ)言中有沒(méi)有什么指令可以達(dá)到上述的效果
    發(fā)表于 06-27 05:02

    請(qǐng)問(wèn).C語(yǔ)言中可以嵌套匯編語(yǔ)言嗎?

    .C語(yǔ)言中可以嵌套匯編語(yǔ)言
    發(fā)表于 09-20 05:55

    請(qǐng)問(wèn)C語(yǔ)言中可以嵌套匯編語(yǔ)言嗎?

    C語(yǔ)言中可以嵌套匯編語(yǔ)言
    發(fā)表于 09-25 05:55

    有效地址是什么?形式地址又是什么?有何區(qū)別

    有效地址是什么?形式地址又是什么?有何區(qū)別?補(bǔ)碼加減法是指什么?
    發(fā)表于 07-16 11:33

    什么是匯編語(yǔ)言

    基于C++寶典的學(xué)習(xí)、什么是匯編語(yǔ)言匯編語(yǔ)言種功能很強(qiáng)的程序設(shè)計(jì)語(yǔ)言,也是利用了計(jì)算機(jī)所有硬件特性并能直接控制硬件的
    發(fā)表于 07-19 06:05

    ARM匯編語(yǔ)言中對(duì)立即數(shù)有要求嗎

    在 ARM 匯編語(yǔ)言中,對(duì)立即數(shù)的有要求,我記得原來(lái)沒(méi)有這樣說(shuō)了。現(xiàn)在反而糊涂了,用立即數(shù)時(shí)候,很小心很忌諱,不會(huì)像 51 下隨心所欲的使用了,有對(duì)立即數(shù)熟悉的朋友站出來(lái)給大家釋疑.謝謝
    發(fā)表于 11-15 11:43

    匯編語(yǔ)言自學(xué)教程

    匯編語(yǔ)言自學(xué)教程 匯編語(yǔ)言(AssemblyLanguage)是面向機(jī)器的程序設(shè)計(jì)語(yǔ)言。在匯編語(yǔ)合中,用助記符(Memoni)代替操作碼,用地址
    發(fā)表于 03-15 14:24 ?511次下載

    匯編語(yǔ)言詳解

    匯編語(yǔ)言(Assembly Language)是面向機(jī)器的程序設(shè)計(jì)語(yǔ)言。   匯編語(yǔ)言中,用助記符(Memoni)代替操作碼,用地址符號(hào)(Symbol)或標(biāo)號(hào)(Label)代替
    發(fā)表于 06-30 10:28 ?4186次閱讀

    Linux中的匯編語(yǔ)言

    在閱讀Linux源代碼時(shí),你可能碰到匯編語(yǔ)言片段,有些匯編語(yǔ)言出現(xiàn)在以.S為擴(kuò)展名的匯編文件中,在這種文件中,整個(gè)程序全部由匯編語(yǔ)言組成
    發(fā)表于 04-07 20:43 ?55次下載

    C語(yǔ)言匯編語(yǔ)言混合編程方法和C語(yǔ)言中斷處理方法

    C語(yǔ)言匯編語(yǔ)言混合編程方法和C語(yǔ)言中斷處理方法,new
    發(fā)表于 01-06 14:36 ?36次下載

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

    本文開(kāi)始介紹了什么是偏移地址或概念,其次介紹了偏移地址的計(jì)算方法及段地址偏移
    的頭像 發(fā)表于 04-16 09:42 ?10.8w次閱讀
    什么叫<b class='flag-5'>偏移</b><b class='flag-5'>地址</b>_<b class='flag-5'>偏移</b><b class='flag-5'>地址</b>怎么計(jì)算

    高級(jí)語(yǔ)言匯編語(yǔ)言_機(jī)器語(yǔ)言區(qū)別

    本文首先介紹了高級(jí)語(yǔ)言的優(yōu)缺點(diǎn)、匯編語(yǔ)言的優(yōu)缺點(diǎn)及使用匯編語(yǔ)言的理由,其次介紹了機(jī)器語(yǔ)言的優(yōu)缺點(diǎn),最后闡述了高級(jí)語(yǔ)言
    的頭像 發(fā)表于 04-16 10:28 ?3w次閱讀

    匯編語(yǔ)言中常用的偽指令

    匯編語(yǔ)言中除常用指令外,還有些用來(lái)對(duì)“匯編”過(guò)程進(jìn)行控制、或者對(duì)符號(hào)、標(biāo)號(hào)賦值的指令。在匯編過(guò)程中,這些指令不被翻譯成機(jī)器碼,因此稱(chēng)為“偽指令”。
    發(fā)表于 11-11 10:03 ?7889次閱讀
    <b class='flag-5'>匯編語(yǔ)言中</b>常用的偽指令
    免费百家乐的玩法技巧和规则| 百家乐庄闲统计数| 代理百家乐试玩| 爱博娱乐| 天天百家乐官网的玩法技巧和规则| 百家乐大转轮真人视讯| 大发888网址是多少| 百家乐官网赢的方法| 百家乐官网小路单图解| 百家乐娱乐网真人娱乐网| 武平县| 澳门百家乐官网群官网| 正规百家乐游戏下载| 大发888游戏备用网址| 百家乐官网网上赌博| 百家乐百家乐游戏| 大发888官方 df888 gfxzylc8| 百家乐官网太阳城| 百家乐信誉平台现金投注| 大发888娱乐场是真是假| 百家乐官网2号技术打法| 百家乐官网筹码500| A8百家乐赌场娱乐网规则| 大发888论坛爱好| 沙龙百家乐官网赌场娱乐网规则| 百家乐庄闲和各| 香港六合彩开奖历史记录| 百家乐官网开和几率| 百家乐暗红色桌布| 百家乐官网视频挖坑| 现场百家乐玩法| 百家乐官网二代皇冠博彩| 利博百家乐的玩法技巧和规则| 真钱百家乐官网游戏大全| 24山分金吉凶断| 斗地主棋牌游戏| 游戏厅百家乐官网技巧| 百家乐赢利策略| 姚记娱乐城安全| 百家乐玩家技巧分享| 澳门百家乐官网有限公司|