存储器间接寻址能这样表示L MW [MW0, P#2.0]吗?

1、请问存储器间接寻址能这样表示L MW  [MW0, P#2.0]吗?

不能这样表示。与地址常数P#2.0进行偏移量运算只有在地址寄存器间接寻址时才可,例如L  M  [AR1, P#2.0].。地址寄存器间接寻址的一般格式是:

〖地址标识符〗〖寄存器,P#byte.bit〗,比如:DIX[AR1,P#1.5] 或 M[AR1,P#0.0] 。

2、要弄清存储器间接寻址与地址寄存器寻址的基本概念:

a、存储器间接寻址具有两个指针格式:单字和双字。  

  单字指针是一个16bit的结构,从0-15bit,指示一个从0-65535的数值,这个数值就是被寻址的存储区域的编号。  

  双字指针是一个32bit的结构,从0-2bit,共三位,按照8进制指示被寻址的位编号,也就是0-7;而从3-18bit,共16位,指示一个从0-65535的数值,这个数值就是被寻址的字节编号。 。例: 

A DB[MW100].DBX[MD2] //读入DB10.DBX6.5数据位状态

MW100:为单字指针,其内容为10;MD2双字指针,其内容为6.5。

从上面系列举例我们至少看出来一点:单字指针只应用在地址标识符是非位的情况下,它确定的数值是0-65535。而对于byte.bit这种具体位结构来说,只能用双字指针。

b、地址寄存器寻址: 

 地址寄存器是专门用于寻址的一个特殊指针区域,西门子的地址寄存器共有两个:AR1和AR2,每个32位。

 地址寄存器间接寻址的一般格式是:〖地址标识符〗〖寄存器,P#byte.bit〗,〖寄存器,P#byte.bit〗统称为:寄存器寻址指针。

,1、请问存储器间接寻址能这样表示L MW  [MW0, P#2.0]吗?

不能这样表示。与地址常数P#2.0进行偏移量运算只有在地址寄存器间接寻址时才可,例如L  M  [AR1, P#2.0].。地址寄存器间接寻址的一般格式是:

〖地址标识符〗〖寄存器,P#byte.bit〗,比如:DIX[AR1,P#1.5] 或 M[AR1,P#0.0] 。

2、要弄清存储器间接寻址与地址寄存器寻址的基本概念:

a、存储器间接寻址具有两个指针格式:单字和双字。  

  单字指针是一个16bit的结构,从0-15bit,指示一个从0-65535的数值,这个数值就是被寻址的存储区域的编号。  

  双字指针是一个32bit的结构,从0-2bit,共三位,按照8进制指示被寻址的位编号,也就是0-7;而从3-18bit,共16位,指示一个从0-65535的数值,这个数值就是被寻址的字节编号。 。例: 

A DB[MW100].DBX[MD2] //读入DB10.DBX6.5数据位状态

MW100:为单字指针,其内容为10;MD2双字指针,其内容为6.5。

从上面系列举例我们至少看出来一点:单字指针只应用在地址标识符是非位的情况下,它确定的数值是0-65535。而对于byte.bit这种具体位结构来说,只能用双字指针。

b、地址寄存器寻址: 

 地址寄存器是专门用于寻址的一个特殊指针区域,西门子的地址寄存器共有两个:AR1和AR2,每个32位。

 地址寄存器间接寻址的一般格式是:〖地址标识符〗〖寄存器,P#byte.bit〗,〖寄存器,P#byte.bit〗统称为:寄存器寻址指针。

存储器间接寻址能这样表示L MW [MW0, P#2.0]吗?

相关文章:

你感兴趣的文章:

标签云: