内存寻址

寻址方式指 指令用来指定要访问的对象(常量、寄存器或内存中的数据)的方式。

1.直接寻址

在指令中,操作数直接以单元地址的形式给出,操作数项给出的是参加运算的操作数地址,而不是操作数。

eg.MOV A,30H

30H即为操作数的地址,并非操作数。

2.间接寻址

指令中的地址码字段,给出的是操作数所在的存储单元或寄存器的地址。需根据这个地址取出操作数的有效地址,再去内存中寻找操作数。

eg.load R1,(R2)

将R2寄存器中的值作为一个地址,去内存中找到对应的数据,然后加载到R1寄存器中。

变式:eg.load R1,100(R2)

意为将R2寄存器中的值+100作为一个地址,再找对应的数据,然后加载到R1寄存器中。这就是一个带有偏移量的间接寻址。

3.立即数寻址

指令中的操作数直接以数值的形式给出。

eg.MOV AX,251 将十进制数251送入寄存器AX,其中,251是立即数

4.寄存器寻址

指令中操作数所需的数据存储在寄存器中,指令通过对寄存器的访问来获取这些数据。

eg.MOV AX,BX 将寄存器BX的内容送入AX,其中BX是寄存器

5.基址、变址等

基址寻址:

指令中操作数的地址由基址寄存器的内容和形式地址相加得到。

eg.MOV AX,[BX+1000H] 将基址寄存器BX的内容+1000H得到操作数的地址,再送入AX

变址寻址:

指令中操作数的地址由变址寄存器的内容和形式地址相加得到。

eg.MOV AX,[SI+1000H] 将变址寄存器SI的内容+1000H得到操作数的地址,再送入AX

posted @ 2023-10-27 20:45  yhish  阅读(97)  评论(0)    收藏  举报