嫒美直播免费版app下载-嫒美直播永久免费版下载-嫒美直播最新下载安装

當前位置:首頁 > 教育綜合 > 正文

DS=215FH時,某操作數(shù)的物理地址是215FAH,當DS=18DEH時,該操作數(shù)的物理地址是多少

老掉牙的匯編語言觀念問題(定址法,又稱尋址法)

  • 立即尋址

  立即尋址方式用來表示常數(shù),它主要用于給寄存器賦初值,注意:只能用于源操作數(shù)字段,不能用于目的操作數(shù)字段。

MOVAL,5

  

  • 直接尋址

  在IBM PC機中將操作數(shù)的偏移地址稱為有效地址EA。在直接尋址方式中有效地址EA就在指令中,它存放在代碼段中指令操作碼之后,但操作數(shù)一般存放在數(shù)據(jù)段中,所以必須先求出操作數(shù)的物理地址,然后再訪問存儲器才能取得操作數(shù).

如操作數(shù)在數(shù)據(jù)段中,則物理地址=16d×(DS)十EA。1BMPC機中允許數(shù)據(jù)存放在數(shù)據(jù)段以外的其他段中,此時應(yīng)在指令中指定段跨越前綴,在計算物理地址時應(yīng)使用指定的段寄存器。

movAX,[2000H]
(DS)=3000H,地址32000H中的值為3050H則,執(zhí)行結(jié)果為:(AX)=3050H
因為實際movAX中的內(nèi)容為16d*(Ds)+2000H=32000H

  
在匯編語言指令中,可以用符號地址代替數(shù)值地址,如:

MOVAX,VALUE

  此時VAIUE為存放操作數(shù)單元的符號地址。如寫成

MOVAX,[VALUE]

  也是可以的.兩者是等效的。如果VALUE在附加段中,則應(yīng)該指定段跨越前綴如下;

MOVAX,ES:VALUE
或MOVAX,ES:[VALUE]

  直接尋址方式適用于處理單個變量,例如需要處理某個存放在存儲器里的變量,可用直接尋址方式,將該變量先取到一個寄存器中,然后在做處理。
IBM PC機規(guī)定:除在雙操作數(shù)中,除立即數(shù)外,必須有一個操作數(shù)使用寄存器方式。這也是一個常量常常送到寄存器去的原因。

  

  • 寄存器間接址
    操作數(shù)的有效地址在基址寄存器BX、BP或變垃寄存器SI、DI中,而操作數(shù)則在存儲器中,如下圖所示。

    a.如果指令中指定的寄存器是BX、SI、DI,則操作數(shù)在數(shù)據(jù)段(DS)中,所以用DS寄存器的內(nèi)容作為段地址,即操作數(shù)的物理地址為:
    物理地址=16d×(DS)十(BX)
    或 物理地址;16 d×(DS)十(SI)
    或 物理地址=16d×(DS)十(DI)
    b.如指令中指定BP寄存器,則操作數(shù)在堆棧段(SS)中,段地址在SS中,所以操作數(shù)的物理地址為:
    物理地址=16d×(SS)十(SP)

  MOVAX,[BX]

  如果 (DS)=2000H , (BX)=1000H 則
物理地址=16d×(DS)十(BX) = 20000H+1000H = 21000H
21000H地址里的內(nèi)容為 50A0H則 執(zhí)行結(jié)果為:(AX)=50A0H
c.指令中也可指定段跨越前綴來取得其他段中的數(shù)據(jù)。如;

MOVAX,ES:[BX]

  這種尋址方式可以用于表格處理,執(zhí)行完一條指令后,只需要修改寄存器內(nèi)容就可取出表格中的下一項。

  

  • 寄存器相對尋址方式

  操作數(shù)的有效地址是一個基址或變址寄存器的內(nèi)容和指令中指定的8位或16位位移量之和。即

  |(BX)
  EA=|(BP)+8位或者16位的位移量
  |(SI)
  |(DI)

  

  同寄存器尋址一樣 BX BP DI 若沒有段跨越前綴

  物理地址為=16d×(DS) +位移量 + *SP

  物理地址為=16d×(SS)十(SP) + 位移量 + *

  

  舉個例子:

MOVAX,COUNT[SI](也可表示為MOvAX,[COUKT十SI]

  其中,COUNT 為16位位移量的符號地址。
如果(DS)=3000H,(SI)=2000H COUNT=3000H
則物理地址 = 30000十2000十3000 =35000H

  

  • 基址變址尋址方式

  操作數(shù)的有效地址是一個基址寄存器和一個變址寄存器的內(nèi)容之和。兩個寄存器均由指令指定。如果基址寄存器為BX,段寄存器使用DS;如基址寄存器為BP時,段寄存器則用SS。因此,物理地址為:

= 16D * DS + (BX) + SI(或者DI)
= 16D * SS + (BP) + SI(或者DI)

  

  • 相對基址變址尋址方式
    操作數(shù)的有效地址是一個基址寄存器和一個變址寄存器的內(nèi)容和8位或16位位移量之
    和。同樣,當基址寄存器為BX時,使用DS段寄存器;而當基址寄存器為BP時,則使用SS為段寄存器。因此物理地址為:

  = 16d * DS + BX + SI + 位移量(8位或16位)

  = 16d * ss + BP + SI + 位移量(8位或16位)

MOVAX,MASK[BX][SI]
(也可以寫成M0VAX,MASK[DX十SI]
或MoVAX.[MASK十BX十SI])

如 (DS)=3000H,(BX)=2000H、(SI)=l000H,MASK=0250H,
則 物理地址=16d×(DS)十(BX)十(SI)十MASK
=30000十2000十1000十0250
=33250H

閱讀下列指令,指出下列指令中的源操作數(shù)的尋址方式,并計算該操作數(shù) 的物理地址(如果需要)

(1)立即尋址 (2)變址尋址 (DS) * 10H + DATA + DI = 2105AH (3)基址加變址尋址 (DS) * 10H + (DI) + (BX) = 2110AH (4)寄存器尋址

寄存器尋址和寄存器間接尋址的區(qū)別

一、主體不同

1、寄存器尋址:是指操作數(shù)在寄存器中,由指令操作碼中的rrr三位的值和PSW中RS1及RS0的狀態(tài),選中某個工作寄存器區(qū)的某個寄存器,然后進行相應(yīng)的指令操作。

2、寄存器間接尋址:將指定的寄存器內(nèi)容為地址,由該地址所指定的單元內(nèi)容作為操作數(shù)。

二、功能不同

1、寄存器尋址:指令所要的操作數(shù)已存儲在某寄存器中,或把目標操作數(shù)存入寄存器。

2、寄存器間接尋址:寄存器內(nèi)存放的是操作數(shù)的地址,而不是操作數(shù)本身,即操作數(shù)是通過寄存器間接得到的。


三、特點不同

1、寄存器尋址:在指令執(zhí)行過程中,會減少讀/寫存儲器單元的次數(shù),所以,使用寄存器尋址方式的指令具有較快的執(zhí)行速度。

2、寄存器間接尋址:需要以寄存器符號的形式來表示,且在寄存器名稱前面加上間接尋址符號“@”。例如指令MOV A,@R0就使用了寄存器間接尋址方式。


參考資料來源:百度百科-寄存器尋址

參考資料來源:百度百科-寄存器間接尋址

匯編語言mov 【ax+2】,bx的目的操作數(shù)地址

  • 沒有見過這種寫法,

  • 看了一下5種尋址方式也沒有見過這種寫法,

  • 用編譯器變了一下,也是病句

  所以樓主你的mov【ax+2】,bx是錯的哦

  下面是尋址方式的簡介,樓主可以參考一下哦

  • PS:若有不明白的地方,可以追問

  尋址方式的簡介

  段地址(SA)和偏移地址(EA)

  1.直接尋址

  直接尋址方式是指操作數(shù)的偏移地址在指令中直接給出,例如

  MOVAX,[1234H]

  EA=1234H,SA=DS

  2.寄存器間接尋址

  寄存器間接尋址是指操作數(shù)的偏移地址在BX,BP,SI,DI四個寄存 器之一中

  (1)當以BX,SI或DI寄存器進行間接尋址時,操作數(shù)的物理地址有DS中的段地址與BX,SI或DI中的偏移地址構(gòu)成

  (2)當以BP寄存器進行間接尋址時,操作數(shù)的物理i地址有SS中的段地址與BP中的偏移地址構(gòu)成

  MOVAX,[BX,SI或DI]

  EA=BX,SI或DI,SA=DS

  MOVAX,[BP]EA=BP,SA=SS

  3.寄存器相對尋址

  寄存器相對尋址是指操作數(shù)的偏移地址是BX,BP,SI,DI之一的值和一個8位或16位偏移地址之和

  (1)當以BX,SI或DI寄存器進行間接尋址時,操作數(shù)的物理地址有DS中的段地址與BX,SI或DI中的偏移地址構(gòu)成

  (2)當以BP寄存器進行間接尋址時,操作數(shù)的物理i地址有SS中的段地址與BP中的偏移地址構(gòu)成

  MOVAX,[BP+100H]EA=BP+100H,SA=SS

  MOVAX,[BX,SI或DI+100H]EA=BX,SI或DI+100H,SA=DS

  [BX+100H]等價于200H[SI]

  4.基址變址尋址

  基址變址尋址是指操作數(shù)的偏移地址是一個基址寄存器BX,BP的值和一個變址寄存器SI,DI的值之和

  (1)當以BX作為基址寄存器時,操作數(shù)物理地址由DS中的段地址與SI或DI中的偏移地址構(gòu)成

  (2)當以BP作為基址寄存器是,操作數(shù)物理地址由SS中的段地址與SI或DI中的偏移地址構(gòu)成

  MOVAX,[BX+DI或SI]EA=BX+SI或DI,SA=DS

  MOVAX,[BP+DI或SI]EA=BP+SI或DI,SA=SS

  [BX+SI]等價于[BX]+[SI]

  5.相對基址變址尋址

  相對基址變址尋址是指操作數(shù)的偏移地址是一個基址寄存器BX,BP的值加上一個變址基礎(chǔ)器SI,DI的值,再加上指令中的一個8位,16位偏移量之和

  (1)當以BX作為基址寄存器時,操作數(shù)物理地址由DS中的段地址與SI或DI中的偏移地址構(gòu)成

  (2)當以BP作為基址寄存器是,操作數(shù)物理地址由SS中的段地址與SI或DI中的偏移地址構(gòu)成

  MOVAX,[BX+100H+DI或SI] EA=BX+DI或SI+100H,SA=DS

  MOVAX,[BP+100H+DI或SI] EA=BP+DI或SI+100H,SA=SS

  [BX+SI+100H]等價于100H[BX+SI]等價于[BX]+[SI]+100H

設(shè)DS=8225H,DI=3942H,指令I(lǐng)NC BYTE PTR[DI]操作數(shù)的物理地址是( ) A.86192H B.85B92H C.41645H D.41B45H

設(shè)DS=8225H,DI=3942H,指令I(lǐng)NC BYTE PTR[DI] 操作數(shù)的物理地址是=(DS)×16+有效地址=82250+3942H=85B92H INC BYTE PTR[DI]這個指令的含義:將該物理地址單元中的操作數(shù)加1,結(jié)果還保存在該單元中。 答案: 為B.85B92H
展開全文閱讀