直接寻址

指令的地址码部分给出操作数在存储器中的地址,比如给出一个操作数的字段为3位,则寻址方式为有8种。如下图
直接寻址
注意:立即寻址方式和直接寻址方式的书写格式的不同,直接寻址的地址要写在括号“[”,“]”内。在程序中,直接地址通常用内存变量名来表示,如:MOV BX, VARW,其中,VARW是内存字变量。
试比较下列指令中源操作数的寻址方式(VARW是内存字变量):

1
2
MOV AX, 1234H; MOV AX, [1234H] ;前者是立即寻址,后者是直接寻址
MOV AX, VARW; MOV AX, [VARW] ;两者是等效的,均为直接寻址

间接寻址

在寻址是,有时根据指令的地址码所取出的内容既不是操作数,也不是下一条要执行的指令,而是操作数的地址或指令的地址,这种方式成为间接寻址。根据地址码指的是寄存器地址还是存储器地址,间接寻址又可以分为寄存器间接寻址和存储器间接寻址两种方式。间接寻址有一次间接寻址和间接寻址两种情况,大多数计算机只允许一次间接寻址。对于存储器一次间接寻址情况,许访问两次存储器才能取得数据,第一次从存储器读出操作数地址,第二次读出操作数。如下图所示
存储器间接寻址

寄存器间接寻址
寄存器间接寻址