《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 解決方案 > 匯編基礎:尋址方式

匯編基礎:尋址方式

2017-06-10
關鍵詞: 匯編

這一篇我大致概括下計算機的尋址方式,因為自己在匯編上也不是知道很多,所以難免有錯誤之處,還希望高手拍磚。希望這一系列文章能為大家學習匯編提供一個平臺。

首先還是說下指令操作數,Intel  8086/8088CPU的指令系統中鎖需操作數有以下4種:

(1)寄存器操作數:操作數在CPU的通用寄存器或段寄存器中

(2)立即數操作數:操作數在指令中直接給出

(3)存儲器操作數:操作數在存儲器的存儲單元中

(4)I/O操作數:操作數在輸入輸出端口的存儲單元中

根據操作數來源不同,將指令尋址方式分為寄存器尋址、立即數尋址、存儲器尋址和I/O尋址四大類,下面來細說這四類方式。

一、寄存器尋址

在寄存器尋址方式中,操作數來自CPU的某個/某兩個通用寄存器中或段寄存器中(CS除外),16位的寄存器操作數可以是AX、BX、CX、DX、SI、DL、SP、BP、DS、SS和ES,8位寄存器可以是AL、AH、BL、BH、CL、CH、DL、DH。由于存取操作數就在CPU內部進行,不需要訪問存儲器二執行總線周期,所以執行速度非??欤硗馔ㄓ眉拇嫫鲾的枯^少,編碼所需的二進制位就少,因而使用寄存器尋址可以有效的減少指令寬度。

例如:MOV AX, BX;將寄存器BX中的內容傳送給寄存器AX中

若執行前AX=1234H, BX=5678H,則指令執行完后AX=5678H,BX中內容不變。

二、立即數尋址

在立即數尋址中指令操作數直接放在代碼中。它是緊跟在指令操作碼后面的一個可用的8位或16位二進制補碼表示的有符號數,即操作數的存放地址是指令操作碼的下一個單元,這種操作唄成為立即數。

例如:MOV AX, 1234H立即數1234H作為源操作數送入寄存器AX中

指令執行后的結果是寄存器AX的值是1234H

三、存儲器尋址

在存儲器尋址方式下,指令操作數一般是代碼段以外的數據段,堆棧段和附加段中的存儲單元,指令給出的是存儲單元地址或者是存儲單元地址的表達式。在匯編語言中一個存儲單元地址都是使用邏輯地址來表示的。即段基值:偏移量。其中段基值在某個段寄存器中。偏移量表示了該存儲單元與段基值之間的距離,它是由CPU的執行單元EU來確定和計算有效地址EA。執行指令時,CPU首先根據操作數字段提供的地址信息,由執行單元EU計算出有效地址EA,再由總線接口單元BIU根據公式:物理地址=段基值X16+EA計算出操作數的物理地址,有效地址EA由3個地址分量組合而成:

(1)位移量

(2)基址

(3)變址

一般來說,雙操作數指令的源操作數和目的操作數不能同時為存儲器操作數,存儲器尋址方式按EA計算方式的不同可分為:直接尋址、存儲器間接尋址、基址尋址/變址尋址、基址變址尋址、相對基址變址尋址和串操作尋址6種。

1.直接尋址

直接尋址時存儲器尋址中最簡單的一種,即操作數的有效地址EA只由位移量組成,即EA=位移量,位移量是直接包含在指令中的,和指令操作碼一起存放在代碼段中,而操作數則存放在數據段中,直接尋址方式不涉及其他寄存器。使用直接尋址的實例:

MOV BX, VAR  ;等價于MOV BX, DS:VAR

MOV AX, [100H];等價于MOV AX, DS:[100H]

例如:MOV AX, [1234H];將當前數據段偏移1234H個字節的子存儲單元內容傳送給寄存器AX。

設(DS)=2000H, 那么要訪問的子存儲單元的物理地址為2000H*16+1234H=21234H,

如果該字節的存儲單元的內容是5678H,則(AX)=5678H。

2.存儲器間接尋址

在存儲器間接尋址方式中,指令的操作數在存儲器中,操作數的有效地址EA不像直接尋址方式那樣直接存放在指令中,而是由基址寄存器BX、BP或變址寄存器SI、DI提供。

如果指令中使用的是BX、SI、DI,則操作數在數據段中,段基值在數據段寄存器DS中,則操作數物理地址為:

物理地址=16*(DS)+(BX)/(SI)/(DI)

如果指令中實用的是BP,則操作數在堆棧段中,段基值在堆棧段寄存器SS中,操作數的物理地址為:

物理地址=16*(SS)+(BP)

3、基址尋址/變址尋址

基址尋址/變址尋址也沒成為寄存器相對尋址,其操作數的有效地址EA是一個基址寄存器(BX或BP)或者是變址寄存器(SI或DI)的內容與指令中制定的一個8位或16位的位移量之和,即

有效地址EA=(BX)/(BP)/(SI)/(DI)+8位位移量/16位位移量

使用BX/BP尋址時即成為基址尋址,使用SI/DI時,即成為變址尋址。

如果使用寄存器BX、SI、DI,則隱含使用的段寄存器為DS, 如果使用寄存器BP則隱含的使用堆棧寄存器SS, 若操作數前指定了段寄存器,那么以指定的段寄存器為準。即操作數的物理地址為:

物理地址=16*(DS)+(BX)/(SI)/(DI)+8位位移量/16位位移量

或者 物理地址=16*(SS)+(BP)+8位位移量/16位位移量

 

使用基址尋址/變址尋址的示例如下:

MOV AL, 10H[BX];等價于MOV  AX, DS:10H[BX]    
MOV AL, 20H[SI];等價于MOV  AL, DS:20H[SI]    
MOV AH, ES:30H[BX]

例:MOV AX, 10H[BX]

設(DS)=2000H, (BX)=20H, (20030H)=1234H, 則操作數的物理地址=16*2000H+10H

 

+20H=20030H, 執行結果是(AX)=1234H

4、基址變址尋址

基址變址尋址的操作數有效地址EA是一個基址寄存器(BX或BP)的內容,一個變址寄存器(SI或DI)的內容與指令中制定的一個8位或16位的位移量之和,即:

有效地址EA=(BX)/(BP)+(SI)/(DI)+8位位移量/16位位移量

如果基址寄存器為BX,那么隱含使用的數據段寄存器DS,如果基址寄存器為BP。則隱含使用的是堆棧寄存器SS那么以指定的段寄存器為準,因此,操作數的物理地址為:

物理地址=16*(DS)+(BX)+(SI)/(DI)+8位位移量/16位位移量

或者 物理地址=16*(SS)+(BP)+(SI)/(DI)+8位位移量/16位位移量

使用基址變址尋址的方式示例如下:

MOV AX, 10H[BX][SI];等價于MOV AX, DS:10H[BX][SI]

MOV 20H[BP][DI], CX;等價于MOV SS:20H[BP][DI], CX

前面說的幾種存儲器尋址方式中,比如直接尋址、寄存器間接尋址、基址尋址/變址尋址實際上都是基址變址尋址的特例,位移量可以用常數表示,也可以用變量表示,位移量可放在方括號前面,也可放在方括號中同寄存器一起寫成一個地址表達式,例如下面幾種寫法便是等價的:

MOV VAR[BX][SI], AX    
MOV [BX+VAR][SI], AX    
MOV [BX][SI+VAR], AX    
MOV [BX+SI+VAR], AX

例:MOV AX, 10H[BX][SI]

設(DS)=2000H, (BX)=1000H, (SI)=3000H, (24010H)=1234H.則

操作數的物理地址=16*2000H+1000H+3000H+10H=24010H, 執行結果(AX)=1234H

5、串操作尋址

Intel 8086/8088CPU提供了一些專門用于串操作的指令,串操作指令操作數雖然在存儲器中,但是它們不使用前面我們所說的各種尋址方式,而是隱含使用了兩個變址寄存器SI和DI,串操作指令在尋找源操作數時,隱含使用SI作為地址指針,源操作數地址由DS:[SI]提供,尋找目的操作數時,隱含使用DI作為地址指針,目的操作數地址由ES:[DI]提供,在每次操作完后,指令將自動修改SI和DI的值,使它們指向下一個單元,指針修改的方向由CF決定,這也就是我在另一篇文章中所說的標志寄存器(http://yiluohuanghun.blog.51cto.com/3407300/938213)。

四、I/O尋址

I/O指令是CPU與外部設備進行通訊的最基本的途徑,這意味著即使使用DOS功能調用或BIOS運行程序,其例行程序本身也是用I/O指令與外部設備進行數據交換的。

1、輸入指令

一般格式為IN AL, PORT

2、輸出指令

一般個事為OUT PORT, AL

至此為止,我們已經把計算機的幾種尋址方式一一列舉,希望對大家有幫助!


本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲免费视频中文字幕| 性欧美大战久久久久久久免费观看| 亚洲午夜久久久久久尤物| 亚洲国产福利在线| 国产精品高潮视频| 欧美日韩午夜激情| 欧美日韩一区不卡| 欧美精品粉嫩高潮一区二区| 国产九色精品成人porny| 亚洲一区高清| 欧美精品七区| 日韩视频免费在线观看| 一区二区视频欧美| 久久精品成人欧美大片古装| 欧美激情亚洲精品| 亚洲免费不卡| 欧美三区在线| 精品成人一区二区| 久久国产精品黑丝| 免费成人黄色av| 欧美性一二三区| 免费不卡欧美自拍视频| 欧美日韩精品免费观看视频| 久久激情五月丁香伊人| 国产一区二区黄色| 美女黄色成人网| 亚洲最新合集| 国内外成人免费视频| 久久久中精品2020中文| 亚洲福利视频二区| 国产精品国产三级国产aⅴ无密码| 亚洲永久在线| 亚洲欧美日韩一区在线| 亚洲国产精品专区久久| 欧美在线视频免费观看| 日韩一区二区免费看| 亚洲激情视频在线| 久久精品欧洲| 最新日韩欧美| 日韩图片一区| 亚洲精选一区| 亚洲人成网站色ww在线| 91久久久久久久久久久久久| 欧美日韩国产亚洲一区| 国产精品毛片高清在线完整版| 香蕉亚洲视频| 国产精品久久久久av免费| 亚洲一区二区三区精品在线观看| 国产亚洲精品美女| 欧美视频网址| 亚洲日本欧美在线| 欧美一区二区在线看| 一区二区精品| 伊人久久综合97精品| 亚洲欧美国产高清| 美女视频黄免费的久久| 欧美日本成人| 亚洲美女在线一区| 久久久久久噜噜噜久久久精品| 91久久精品日日躁夜夜躁欧美| 久久se精品一区精品二区| 日韩一二三区视频| 亚洲午夜精品视频| 欧美吻胸吃奶大尺度电影| 国产精品国产自产拍高清av| 久久夜色精品国产噜噜av| 国产精品卡一卡二| 久久久.com| 久久久www免费人成黑人精品| 欧美视频中文在线看| 国产精品久久网| 国产精品超碰97尤物18| 欧美精品久久久久久久久久| 国产精品一区二区三区久久久| 国产精品爱久久久久久久| 一本色道久久88综合亚洲精品ⅰ| 亚洲性视频网站| 美女啪啪无遮挡免费久久网站| 亚洲成人在线观看视频| 久久国产手机看片| 欧美精品二区三区四区免费看视频| 欧美日本在线播放| 性欧美精品高清| 亚洲一二三四久久| av不卡在线| 欧美日本不卡高清| 久久尤物视频| 欧美激情第三页| 国产一区二区三区精品久久久| 亚洲专区在线视频| 中文av字幕一区| 国产日韩欧美一区| 久久一日本道色综合久久| 免费成人黄色av| 欧美一区1区三区3区公司| 欧美日韩天堂| 亚洲欧美在线播放| 亚洲欧美综合国产精品一区| 久久精品国产第一区二区三区| 国产精品videosex极品| 亚洲欧美成人一区二区在线电影| 精品88久久久久88久久久| 亚洲国产成人午夜在线一区| 国产综合久久久久久| 国产精品久久国产愉拍| 欧美不卡视频一区| 久久久久免费视频| 国产视频丨精品|在线观看| 一级日韩一区在线观看| 日韩西西人体444www| 女人色偷偷aa久久天堂| 亚洲在线国产日韩欧美| 亚洲精品久久久蜜桃| 免费在线欧美视频| 欧美精品在线极品| 亚洲伦理久久| 蜜乳av另类精品一区二区| 欧美一级久久| 国产亚洲制服色| 国产精品老女人精品视频| 国内精品**久久毛片app| 一区二区三区av| 久久久久久亚洲精品不卡4k岛国| 久久久青草婷婷精品综合日韩| 新狼窝色av性久久久久久| 99re热这里只有精品视频| 亚洲免费影视第一页| 欧美国产激情二区三区| 欧美日韩在线直播| 性做久久久久久久免费看| 亚洲少妇在线| 伊人精品视频| 国产私拍一区| 性伦欧美刺激片在线观看| 国产亚洲一级| 在线不卡a资源高清| 欧美亚洲综合久久| 美女国产一区| 亚洲国产精品久久| 久久精品一区蜜桃臀影院| 欧美1区免费| 国产精品久久综合| 国产精品欧美风情| 美女脱光内衣内裤视频久久影院| 亚洲国产日韩一区| 蜜桃av一区二区在线观看| 性欧美大战久久久久久久久| 久久精品综合一区| 欧美一二三区在线观看| 欧美日本簧片| 开元免费观看欧美电视剧网站| 国产一区久久久| 亚洲三级电影在线观看| 欧美日韩一区二区在线观看| 欧美日韩直播| 免费在线看一区| 久久精品国产在热久久| 午夜精品一区二区三区在线播放| 亚洲国产欧美一区二区三区丁香婷| 免费在线观看一区二区| 国产精品激情| 欧美成年人视频网站| 欧美福利一区二区三区| 欧美成人精品1314www| 久久只有精品| 国产伦精品一区二区三区免费迷| 亚洲第一精品在线| 激情婷婷亚洲| 久久久精品一区二区三区| 国产日韩专区在线| 亚洲大片免费看| 亚洲国产高清视频| 欧美大秀在线观看| 欧美成人精精品一区二区频| 亚洲一区二区免费看| 免费日韩精品中文字幕视频在线| 久久在线视频| 国产精品高精视频免费| 国外成人性视频| 久久精品中文字幕一区| 韩日成人在线| 亚洲香蕉成视频在线观看| 欧美日韩精品免费| 9久草视频在线视频精品| 亚洲欧美日韩久久精品| 亚洲国产精品专区久久| 久久精品视频网| 国产日韩在线不卡| 亚洲欧美日本国产有色| 久久久久久有精品国产| 亚洲福利视频三区| 亚洲一区二区欧美日韩| 国产午夜精品理论片a级大结局| 久久久久九九九九| 久久精品一二三| 久久免费的精品国产v∧| 一片黄亚洲嫩模| 国产精品午夜av在线| 一本色道久久88综合亚洲精品ⅰ| 亚洲日本激情| 牛牛影视久久网| 欧美激情va永久在线播放| 亚洲自拍高清| 久久本道综合色狠狠五月| 亚洲一级影院| 欧美成人黄色小视频| 欧美日韩无遮挡| 亚洲人成网站999久久久综合| 欧美一级在线亚洲天堂| 久久久精品日韩| 亚洲欧美三级在线| 亚洲第一网站免费视频| 国产亚洲va综合人人澡精品| 亚洲午夜av| 国产精品久久久久av免费| 亚洲高清中文字幕| 欧美午夜在线视频| 久久精品国产第一区二区三区最新章节| 国产区亚洲区欧美区| 久久中文字幕一区二区三区| 久久综合综合久久综合| 欧美精品一区二| 久久狠狠亚洲综合| 亚洲精品网站在线播放gif| 欧美aⅴ一区二区三区视频| 亚洲影音先锋| 久久se精品一区二区| 国产在线乱码一区二区三区| 午夜精品亚洲一区二区三区嫩草| 毛片精品免费在线观看| 亚洲欧美日韩成人高清在线一区| 欧美日韩极品在线观看一区| 99国产精品国产精品久久| 久久久国产亚洲精品| 精品成人一区二区三区四区| 亚洲综合视频在线| 在线免费日韩片| 国产曰批免费观看久久久| 欧美美女喷水视频| 国产视频在线观看一区二区三区| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美精品在欧美一区二区少妇| 怡红院精品视频| 亚洲成人自拍视频| 欧美激情二区三区| 欧美激情va永久在线播放| 欧美日韩在线播放一区| 亚洲天堂av电影| 在线不卡a资源高清| 欧美区视频在线观看| 久久亚洲春色中文字幕久久久| 欧美1区3d| 久久国产精品一区二区三区四区| 在线看无码的免费网站| 欧美高清hd18日本| 亚洲欧美日本国产有色| 欧美日韩精品一区视频| 国产精品久久久久免费a∨大胸| 欧美四级在线观看| 欧美三级第一页| 久久久久久穴| 麻豆9191精品国产| 欧美在线综合| 国产一区在线播放| 欧美影视一区| 国产欧美日韩中文字幕在线| 欧美精品在线网站| 国产亚洲成人一区| 狠狠色伊人亚洲综合网站色| 国产一区二区三区在线观看视频| 亚洲国产精品日韩| 欧美日韩综合另类| 欧美精品色一区二区三区| 亚洲免费中文字幕| 久久久www免费人成黑人精品| 欧美国产日韩一区二区| 国产精品视频久久久| 欧美日韩不卡| 欧美日本免费| 在线日韩电影| 国产乱码精品一区二区三区不卡| 在线观看视频日韩| 一区二区三区无毛| 国产精品igao视频网网址不卡日韩| 欧美aⅴ一区二区三区视频| 欧美一二三区在线观看| 欧美系列一区| 欧美一级电影久久| 午夜精品久久久久久久99樱桃| 美女日韩欧美| 亚洲第一网站免费视频| 久久久久久999| 亚洲欧美国产va在线影院| 亚洲一区二区四区| 欧美日韩在线播放| 亚洲伊人一本大道中文字幕| 欧美日韩三区| 欧美大片91| 欧美久久99| 久久久久久夜精品精品免费| 欧美午夜在线一二页| 黄色成人91| 国产日韩av在线播放| 亚洲免费在线观看| 禁久久精品乱码| 国产精品永久在线| 久久国产精品99国产| 性伦欧美刺激片在线观看| 久久精品av麻豆的观看方式| 狠狠色丁香久久婷婷综合丁香| 久久久久久久久综合| 国产亚洲va综合人人澡精品| 国产精品久久久99| 亚洲风情亚aⅴ在线发布| 欧美视频免费在线| 欧美人与性禽动交情品| 91久久精品国产91久久性色| 久久av资源网| 久久中文在线| 美女网站久久| 老司机午夜精品视频在线观看| 久久免费午夜影院| 日韩视频永久免费观看| 在线视频欧美精品| 欧美日韩在线第一页| 欧美成人午夜激情视频| 韩国欧美一区| 狠狠色狠狠色综合人人|