We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi all, I need some help about assigning two structures.
The simple Function
void CopyStruct(struct A *sSrc, struct A *sDst) { *sDst = *sSrc; }
is translated to
; Variable 'sDst' assigned to Register 'R10/R11' ; Variable 'sSrc' assigned to Register 'R8/R9' 0010 F06A MOV R6,R10 0012 F048 MOV R4,R8 0014 F07B MOV R7,R11 0016 F059 MOV R5,R9 0018 E6F23600 MOV R2,#036H 001C DA000000 E CALLS SEG (?C_WCPYFF),?C_WCPYFF
How is the data copied? Where can I find the implementation of the library Function "C_WCPYFF"? (Keil C166 6.04a)
Thanks for your Help.
Regards, Marcus
Even a simple assignment is not guaranteed to be atomic - so nothing special here
What do you mean by that? In which cases can a 8 or 16 Bit assignment on a 16 Bit Platform like the XC be unsafe? Can you give me an example?
Thanks
"In which cases can a 8 or 16 Bit assignment on a 16 Bit Platform like the XC be unsafe"
I didn't say that!
All I said was, Even a simple assignment is not guaranteed to be atomic"
In fact, as you say, it probably will be safe for 8 or 16 bit assignments on a 16 Bit Platform like the XC - but that is a feature of the target environment, not a guarantee of the language. And what happens if the 16-bit value is not word-aligned...?