Is it possible to assign a structure (in C) with defined bit-fields to a SFR that is not bit addressable to gain bit addressability ?
So if you have multiple times been reading the relevant manual pages, you'll just have to use your impeccable grammar and write a better question, letting other forum users know that you do know about that manual section and know exactly where you are stuck.
I wasn't answering a question with a question when I did tell you that an SFR can't be moved. So the way to get a struct on top of an SFR is obviously to move that struct to the correct location. The 8051 is lousy with pointers, so initializing a pointer to the address of the SFR bank and then access the registers indirectly through the pointer will give truly lousy results. Having a struct statically located on top of the SFR allows the compiler to ignore the offset of individual fields in the struct and use best possible addressing modes.
What information did you found lacking in the linked manual page.
so initializing a pointer to the address of the SFR bank and then access the registers indirectly through the pointer will give truly lousy results the SFRs in a '51 is only directly addressable
I would call that truly lousy results ;)
The thing with many programming books is that they are often written for more general-purpose processors even when they claim to be about embedded programming. Embedded is everything for a 4-bit processor with assembler software to a Linux-based system 100 times faster than the original PC.
Structures are heavilly used for ARM Cortex processors. But it does have full generic addressing modes. 8051 compilers normally doesn't even use normal stack space for parameters and local variables. Everything to try to get the best out of the chip with the instructions and addressing modes that exists.