存储器间接寻址能这样表示L MW [MW0, P#2.0]吗?
时间:2023-03-18来源:佚名
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〗统称为:寄存器寻址指针。 |