电工技术基础_电工基础知识_电工之家-电工学习网

欢迎来到电工学习网!

寄存器直接寻址怎样算

2017-06-05 16:15分类:电子技术 阅读:

 

寄存器直接寻址(register indirect addressing)
操作数在存储器中,其有用地址EA寄存在某个寄存器中。寄存器的运用在16位寻址和32位寻址时纷歧样。
(1)16位寻址
寄存器
有用地址寄存在SI, DI, BX, BP中。
假定指令中指定的寄存器是BX, SI, DI,则操作数在数据段中,段基址在DS中,操作数的物理地址为:
SI:是源变址寄存器,默许段地址和DI相同,在DS中.和DS联用
DI:是意图变址寄存器.通常状况下与ds联用,来断定某个贮存单元的地址
BX:基址寄存器,常用来寄存拜访内涵时的基地址
BP:是基址指针,段地址默许在SS中.能够定位物理地址,比方:”mov ax,[bp+si+6]/mov ax,[bp+di+6]
SS: 仓库段地址 ,指出其时仓库的底部地址,即寄存仓库段的段基值。一旦你断定了仓库地址,ss也不能随意改动了
DS:数据段寄存器,指出其时程序运用的数据所寄存段的最低地址,即寄存数据段的段基值
物理地址
在通常状况下,假定有用地址在SI、DI和BX中,则以DS段寄存器的内容为段值;


假定有用地址在BP中,或许是说是指令中指定的寄存器是BP,则操作数在仓库中,段基址在SS中(SS段寄存器的内容为段值。),操作数的物理地址为:
物理地址=(SS)×16+(BP)
例如:
MOV AX, [SI] ; 主动引证DS作为段寄存器,以DS段寄存器的内容为段值
假定 (DS)= 5000H, (SI)= 1234H
留神,在汇编言语中,带方括号“[ ]”的操作数标明存储器操作数,括号中的内容作为存储单元的有用地址EA。
若有用地址用SI、DI和BX等之一来指定,则其缺省的段寄存器为DS。
寄存器SI的值不是操作数,而是操作数的地址(有用地址)。该操作数的物理地址应由DS和SI的值构成。
物理地址=(DS)×16+(SI)=50000H+1234H=51234H。那么存储的物理存储单元地址是51234H。
再设该字存储单元的内容是6789H,那么在施行该指令后,(AX)= 6789H。
MOV DL, CS:[BX] ; CS作为段寄存器
指定段逾越前缀,此刻引证的段寄存器是CS而不是主动引证了DS
意图操作数显式指定的段寄存器为CS
意图操作数的物理地址PA = CS * 16+BX
DL的值为该地址单元中寄存的字类型数据
MOV AX, [BP] 引证的段寄存器为SS
设SS=3000H,BP=1000H该指令寻址及施行进程如图所示。


意图操作数的物理地址PA =(SS)×16+(BP)=30000H+1000H=31000H
把从物理地址为31000H开端的对应的一个字的值传送给AX寄存器。
(2)32位寻址
寄存器
八个32位通用寄存器均可作为寄存器直接寻址运用。除ESP和EBP默许段寄存器为SS外,别的六个通用寄存器均默许段寄存器为DS。
32位cpu通用寄存器: EAX,EBX,ECX,EDX,ESI,EDI(缺省为DS)/EBP,ESP(缺省默许为SS)
物理地址
**物理地址=(DS/SS)×16+(EAX/EBX/ECX/EDX/ESI/EDI/EBP/ESP)**
寄存器直接寻址方法用于表格处理,施行完一条指令后,只需求批改寄存器内容就可取出表格中的下一项。
比照寄存器(直接)寻址和寄存器直接寻址:
比照项 寄存器(直接)寻址 寄存器直接寻址
意义 指令中指出暂存操作数的寄存器 指令中指明寄存操作数偏移地址(有用地址)的寄存器
运用状况 当操作数在寄存器中运用 当操作数地址在寄存器中运用
寄存器的内容 操作数 操作数地址
标明方法 MOV AX, 1234h;ADD VARD,EAX;MOV AX, BX MOV AX,[BX]

上一篇:稳压二极管技能数据大全

下一篇:负载电容在晶振选型和更换中的含义

相关推荐

电工推荐

    电工技术基础_电工基础知识_电工之家-电工学习网
返回顶部