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

why does this assembly fail?

Hello,

I have this C code

int value_a, value_b ;
value_a = value_b ;

that translates to this assembly:

0x0002B128  E58D600C  STR       R6,[R13,#0x000C]

but the assignment fails - both variables are allocated on the stack. if I allocate the target variable in RAM (say, using "static") it works. alignment issue? something?

Parents
  • it might fail,

    You're still not making any sense. Either it fails, or it doesn't. So which is it?

    You've been asked what exactly went wrong. Now please look at your answer again and tell us: does that look like you fulfilled that request?

    As others have said, this looks like you're basing your idea of what it means for code like this to "fail" on incorrect assumptions about what a C compiler is required to make of your source code. Just because you define and initialize a variable doesn't mean the compiled code has to perform that initialization. And even if it is performed, it may happen at an unexpected time.

Reply
  • it might fail,

    You're still not making any sense. Either it fails, or it doesn't. So which is it?

    You've been asked what exactly went wrong. Now please look at your answer again and tell us: does that look like you fulfilled that request?

    As others have said, this looks like you're basing your idea of what it means for code like this to "fail" on incorrect assumptions about what a C compiler is required to make of your source code. Just because you define and initialize a variable doesn't mean the compiled code has to perform that initialization. And even if it is performed, it may happen at an unexpected time.

Children