在程序中,一个存储单元的地址是采用逻辑地址形式表示的,即:
段基址:偏移量
1、 直接寻址
这种寻址方式是在指令中直接给出存储器操作数的偏移地址。有效地址EA可直接由偏移地址得到。
(1) 用常数表示。
MOV AX , DS : [100H]
该指令把当前数据量便宜100H的数字存储单元的数据送至AX。用常数表示时,段寄存器必须指明,不能缺省。
(2) 用变量名表示。
MOV BX , VAR
MOV AH , DA+2
第一条指令将由变量名VAR所指的存储单元内容传送给BX。
第二条指令将由变量名DA代表的地址偏移量再加2的那个字节单元内容送给AH。
假设VAR的偏移量为1000H,DA的偏移量为2000H,则上述两条指令等效为:
MOV BX , DS:[1000H]
MOV AH , DS:[2002H]
2、 寄存器间接寻址
寄存器间接寻址表示的偏移地址由三个地址分量的某种组合形式表示,这三个地址分量为:
(1)基址。由基址寄存器BX或基址指针BP提供的偏移地址。
(2)变址。由源变址寄存器SI或目的变址寄存器DI提供的偏移地址。
(3)位移量。一个8为或16位常数。
1)基址寻址。格式:
[基址寄存器]
[基址寄存器+位移量]
位移量[基址寄存器]
例:
MOV AH , [BX+VAR]
MOV AH , VAR[BX]
2)变址寻址。例:
MOV AX , ARRY[SI]
MOV [DI] ,BX
MOV DX