32位指针存储区域交叉寻址主要是用在哪些方面?

比如交叉区域寻址表示为:访问宽度[ARX,偏移量] 中的访问宽度应该多少? 这里没有访问宽度不应该有存储器符号吗?

最佳答案

1、32位指针与访问宽度应该多少?
  其0-2bit,指定bit位,3-18bit指定byte字节。其第31bit固定为0。  
  AR:  
  0000 0000 0000 0BBB BBBB BBBB BBBB BXXX  
  这样规定,就意味着AR的取值只能是:0.0 ——65535.7 
2、这里没有访问宽度不应该有存储器符号吗?
、上述32位指针形式只是指明数值单元。
、 而在区域间寄存器间接寻址中,由于要寻址的区域也要在AR中指定,显然这时的AR中内容肯定于寄存器区域内间接寻址时,对AR内容的要求,或者说规定不同。  
  AR: 
  1000 0YYY 0000 0BBB BBBB BBBB BBBB BXXX 
比较一下两种格式的不同,我们发现,这里的第31bit被固定为1,同时,第24、25、26位有了可以取值的范围。聪明的你,肯定可以联想到,这是用于指定存储区域的。对,bit24-26的取值确定了要寻址的区域,它的取值是这样定义的: 
  26、25、24位 
  P(外部输入输出):  000
  I(输入映像区)   :  001 
  Q(输出映像区) :  010  
  M(位存储区)  :  011   
  DB(数据块) :  100 
  DI(背景数据块):  101 
  L(暂存数据区,也叫局域数据) :  111      
  如果我们把这样的AR内容,用HEX表示的话,那么就有:  
  当是对P区域寻址时,AR=800xxxxx
  当是对I区域寻址时,AR=810xxxxx
  当是对Q区域寻址时,AR=820xxxxx
  当是对M区域寻址时,AR=830xxxxx
  当是对DB区域寻址时,AR=840xxxxx
  当是对DI区域寻址时,AR=850xxxxx
  当是对L区域寻址时,AR=870xxxxx
 经过列举,:如果AR中的内容是8开头,那么就一定是区域间寻址;如果要在DB区中进行寻址,只需在8后面跟上一个40。84000000-840FFFFF指明了要寻址的范围是:  DB区的0.0——65535.7。

提问者对于答案的评价:
谢谢

专家置评

已阅,最佳答案正确。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc231226.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日
下一篇 2018年12月1日

相关推荐