This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Unpredicted behiver of code

Hi All,

I'm experiencing a strange behiver in the following flow:

code compiles ok and run ok:
C:000000H C:000000H C:00FFFFH 000935H CODE
I:000000H I:000000H I:0000FFH 000018H IDATA
I:000000H I:000000H I:00007FH 000048H DATA
C:000000H C:000000H C:00FFFFH 0002C0H CONST
X:000000H X:000000H X:00FFFFH 000024H XDATA

Program Size: data=96.0 xdata=36 const=704 code=2357
LX51 RUN COMPLETE. 4 WARNING(S), 0 ERROR(S)

but adding only another char without even code (DATA incress to 49) results with stack problem that RET is jumping to unused address and programs fails.

C:000000H C:000000H C:00FFFFH 000935H CODE
I:000000H I:000000H I:0000FFH 000018H IDATA
I:000000H I:000000H I:00007FH 000049H DATA
C:000000H C:000000H C:00FFFFH 0002C0H CONST
X:000000H X:000000H X:00FFFFH 000024H XDATA

Program Size: data=97.0 xdata=36 const=704 code=2357
LX51 RUN COMPLETE. 4 WARNING(S), 0 ERROR(S)

Can someone tell me what could be wrong ?

Parents
  • ...as it should be

    Very questionable extension to the sentence. There is no rule that says it MUST be put there. It is only a reasonably sensible option that Keil (amongst others) have chosen.

    You modify that mechanism at your own peril, especially if you don't know exactly what you're doing.

    Absoultely. Someone who knows what they're might have reason to make these changes. It is unlikely that a beginner could conceive a true advantage.

Reply
  • ...as it should be

    Very questionable extension to the sentence. There is no rule that says it MUST be put there. It is only a reasonably sensible option that Keil (amongst others) have chosen.

    You modify that mechanism at your own peril, especially if you don't know exactly what you're doing.

    Absoultely. Someone who knows what they're might have reason to make these changes. It is unlikely that a beginner could conceive a true advantage.

Children