有关32位指针存储区域交叉寻址的用途,32位指针与访问宽度,没有访问宽度是否应有存储器符号,AR中内容肯定于寄存器区域内间接寻址时,对AR内容的要求,或规定不同。
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。
本站仅提供信息发布平台,文章仅代表作者个人观点。