个存储单元逻辑地址表示形式:段基值:偏移量 段基值由某个段寄存器提供 偏移量表示了该存储单元与段起始地址之间的距 离,也叫做有效地址EA。 有效地址EA是以下三个地址分量的几种组合,由CPU 的执行单元EU计算出来的。 (1)位移量:位移量是指令中直接给出的一个8位或16位数 般源程序中以操作数名字(变量名或标号)的形式出现。 (2)基址:由基址寄存器BX或基址指针BP提供的内容。 (3)3 变址:由源变址寄存器S或目的变址寄存器D提供内容
6 一个存储单元逻辑地址表示形式: 有效地址EA是以下三个地址分量的几种组合,由CPU 的执行单元EU计算出来的。 段基值由某个段寄存器提供. 偏移量表示了该存储单元与段起始地址之间的距 离,也叫做有效地址EA。 (1)位移量:位移量是指令中直接给出的一个8位或16位数。 一般源程序中以操作数名字(变量名或标号)的形式出现。 (2)基址:由基址寄存器BX或基址指针BP提供的内容。 (3)变址:由源变址寄存器SI或目的变址寄存器DI提供内容 段基值:偏移量
位移量、基址和变址三个地址分量组合时,若有两个或 两个以上分量时,将进行以216为模的十六位加法运算。 下面是由这三个地址分量的不同组合所形成的四种寻址方式。 3直接寻址 在直接寻址方式的指令中,操作数的有效地址EA只有 位移量地址分量。 指令操作码操作数 内存 EA H 操作数 段寄存器_↑
7 位移量、基址和变址三个地址分量组合时,若有两个或 两个以上分量时,将进行以2 16为模的十六位加法运算。 下面是由这三个地址分量的不同组合所形成的四种寻址方式。 3.直接寻址 在直接寻址方式的指令中,操作数的有效地址EA只有 位移量地址分量。 指令 操作码 操作数 EA 操作数…... …... 内存 段寄存器
在汇编语言源程序中,直接寻址方式用符号或常数来表示。 (1)用符号表示 例: MOV BX,VAR→ MOV BX,DS:MAR 它表示将数据段中,偏移了VAR个字节距离的字单元 内容送到寄存器BX中。 MOV AL, DATA+2=> MOV AL, DS: DATA+2 它表示将数据段偏移了DATA+2的字节单元内容送入AL中。 (2)用常数表示 例:MOⅴAX,DS:[64H 它表示从当前数据段开始,偏移100个字节的字单元内容 送到AX中。不能写为: MOV AX,64H 注意:用常数表示时,必须用方括号括起来。段寄存 器可以省略,如果省略则为数据段,即DS所指段
8 在汇编语言源程序中,直接寻址方式用符号或常数来表示。 (1)用符号表示 例:MOV BX,VAR 它表示将数据段中,偏移了VAR个字节距离的字单元 内容送到寄存器BX中。 它表示将数据段偏移了DATA+2的字节单元内容送入AL中。 MOV AL,DATA+2 (2)用常数表示 它表示从当前数据段开始,偏移100个字节的字单元内容 送到AX中。不能写为:MOV AX,64H 例:MOV AX,DS:[64H] 注意:用常数表示时,必须用方括号括起来。段寄存 器可以省略,如果省略则为数据段,即DS所指段。 =>MOV BX,DS:VAR => MOV AL, DS: DATA+2
4寄存器间接寻址 操作数有效地址EA直接从基址寄存器(BX或BP)或 变址寄存器(S或DI)中获得。 BX 内存 操作码操作数OR BP OR SI + EA OR 操作数 段寄存器 寄存器间接寻址就是事先将偏移量存放在某个寄存器(BX、 BP、S或D中,这些寄存器就如同一个地址指针 在程序运行期间,只要对寄存器内容进行修改,就可以实 现用同一条指令实现对不同存储单元进行操作
9 4.寄存器间接寻址 操作数有效地址EA直接从基址寄存器(BX或BP)或 变址寄存器(SI或DI)中获得。 寄存器间接寻址就是事先将偏移量存放在某个寄存器(BX、 BP、SI或DI)中,这些寄存器就如同一个地址指针。 在程序运行期间,只要对寄存器内容进行修改,就可以实 现用同一条指令实现对不同存储单元进行操作。 操作码 操作数 OR OR OR BX DI BP SI EA 操作数…... …... 内存 段寄存器
指示存储器所在段的段寄存器可以省略,当指令中 使用的是BP寄存器,则隐含表示使用SS段寄存器,其余 情况则隐含使用DS段寄存器。 例如:MOAX,|BX]= MOV AX,DS:BX MOV BH, [BPI=> MOV BH, SS: [ BPI MOV[D,BX→MoDS:ID,BX
10 例如:MOV AX,[BX] MOV BH,[BP] MOV [DI],BX 指示存储器所在段的段寄存器可以省略,当指令中 使用的是BP寄存器,则隐含表示使用SS段寄存器,其余 情况则隐含使用DS段寄存器。 => MOV AX,DS:[BX] => MOV BH,SS:[BP] => MOV DS:[DI],BX