PSW4 PSW3
0 0 R0 - R7 为 0 区 地址为 00H - 07H
0 1 R0 - R7 为 1 区 地址为 08H - 0FH
1 0 R0 - R7 为 2 区 地址为 10H - 17H
1 1 R0 - R7 为 3 区 地址为 18H - 1FH
可以 用的 指令 有
SETB PSW3 ; SETB PSW4 ; CLR PSW3 ; CLR PSW4 ;
ANL PSW, #0E7H & ORL PSW, #18H ( 选择不同寄存器组 有所不同)局部静态变量无法定义成寄存器变量。
局部变量的存储类static/auto/register中只能选择一个。static定义的对象具有静态存储期,在进入代码块首次初始化;auto/register定义的对象具有自动存储期,在每次进入代码块首次初始化。两者在逻辑上是互相矛盾的,因此规定不能同时使用。此外,同C++的inline一样,关键字register只是请求而不是命令,生成的目标代码中未必符合register的语义。很多平台上的编译器直接把register当作auto处理。
====
[原创回答团]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)