quote:以下是引用流星fly在2012-09-03 09:54:04的发言:
难道是这样的?
1.每级深度的程序都用的同一片L区,不同深度之间是不同的?
2.中断程序用的单独的L区,之所以不能再子程序中再使用子程序,是因为中断程序只有两块L区?
第一点,确实是这样的,早上做了个例子
SBR0
LD SM0.0
MOVW 1, LW0
MOVW 2, LW2
MOVW 3, LW4
MOVW 4, LW6
MOVW 5, LW8
MOVW 6, LW10
MOVW 7, LW12
MOVW 8, LW14
MOVW 9, LW16
MOVW 10, LW18
SBR1
LD SM0.0
MOVW 11, LW0
MOVW 12, LW2
MOVW 13, LW4
MOVW 14, LW6
MOVW 15, LW8
SUB2
LD SM0.0
MOVW LW0, VW0
MOVW LW2, VW2
MOVW LW4, VW4
MOVW LW6, VW6
MOVW LW8, VW8
MOVW LW10, VW10
MOVW LW12, VW12
MOVW LW14, VW14
MOVW LW16, VW16
MOVW LW18, VW18
如果在OB1中执行如下程序
LD SM0.0
CALL SBR_0:SBR0
CALL SBR_1:SBR1
CALL SBR_2:SBR2
那么VW0到VW18分别是11~15,6~10
如果调用SBR0和1的顺序,那么VW0~18就是1~10 。