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

Copying Structs

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

Parents
  • "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...?

Reply
  • "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...?

Children
No data