3寄存器寻址 操作数不是立即数,也不是地址,而是一个 寄存器名称,则称为寄存器寻址,例如指令 MOVA,R1。其中R1即寄存器名称 从寄存器R1中取数 片内数据存储器 程序存储器 地址|数据 地址指令码]1 R135H ACO 35H 2008 E9H DB 将R中的数据送ACC
操作数不是立即数,也不是地址,而是一个 寄存器名称,则称为寄存器寻址,例如 指令 MOV A,R1。其中R1即寄存器名称。 从寄存器R1中取数 将R1中的数据送ACC 3 .寄存器寻址
4.寄存器间接寻址 这类指令先从指令上所标明的寄存器中找出存放 数据的地址,然后再从所标明的的地址中取数。由 于存储数据的地址不直接标明在指令中,所以称之 为间接寻址。例如指令MOVA,@R0(注意!只有 RO、R1可以间接寻址) 从寄存器中找出 片内数据存储器 存放数据的地址 地址数据 程序存储器 「地址数据 RO 44H 2008H E6H 从该地址 ACO 44H 07H 中取数 07H 将数送ACC
这类指令先从指令上所标明的寄存器中找出存放 数据的地址,然后再从所标明的的地址中取数。由 于存储数据的地址不直接标明在指令中,所以称之 为间接寻址。例如指令MOV A,@R0 (注意!只有 R0、R1可以间接寻址)。 从寄存器中找出 存放数据的地址 从该地址 中取数 将数送ACC 4 .寄存器间接寻址
5变址间接寻址 这种寻址方式是将基址值(包括寄存器PC或DPTR)加上 变址值(只能是A),并以此为地址,从该地址单元中取数 例如指令 MOVC A,@A+DPTR和 MOVC A,@A+DPTR。 程序存储器 1从ACC中 匚地址指令码 )PTR取出 取出变址 2008H93H====1 值20OH 30H ACC DPYR 2040H 27H 30]27 201OH 4求得2010H+30H=2040H 从2040H中取数27H送ACC
这种寻址方式是将基址值(包括寄存器PC或DPTR)加上 变址值(只能是A),并以此为地址,从该地址单元中取数, 例如指令MOVC A,@A+DPTR和MOVC A,@A+DPTR。 1.从ACC中 取出变址 30H 2.从DPTR .取出 基址值2010H 4.求得2010H+30H=2040H 从2040H中取数27H送ACC 5.变址间接寻址