Where as all defined SFR's (IE ones that aren't reserved) fit within the range of S:080-S:0FF. So (considering the available IP variants) how can one address or even access S:000-S:07F or S:100-S:1FF? There doesn't appear to be a mechanism listed in the manuals I've looked at (IE the only instructions that can access the SFR's are direct 8bit address byte instructions and they have the range of S:080-S:0FF). Am I missing something or does that sum up the fact although said to exist no SFR's can be really addressed beyond the MCS51 range in the MCS251 architecture?
Stephen
The sfr's with addresses 0x1nn are usually accessed by using instruction extensions, that is - for example on a C51MX device by using a prefixed mov instruction:
0xE5,0xF0: MOV A,0xF0 - regular 51 sfr. 0xA5,0xE5,0xF0: MOV A,0xF0 - actually accesses S:0x1F0
Such extensions exist on 80C51MX/MXP, SmartMX and also some C251 devices.
Really? So basically it would be up to the compiler and the way it handled sfr definition? This makes sense but, Intel and Temic/Atmel user guides really were vague about what the instruction encoding was (really vague).
So for S:000 - S:07F likely it is a different extension, OK that makes sense I'll have to recheck the instruction matrix and information it has regarding that. Thank you now I have an idea of where to look.
Your assumption is correct: the compiler/assembler (for example CX51) decides when to use a prefixed instruction based on the sfr address. The same is true for bits of extended sfrs.
From what I recall of the 251 (I was at Keil when we started working with Intel on tools for it), Intel never specified a way to access these "extended" SFRs. There was no instruction in the instruction set for it and none were ever defined. After the 80C251Sx and the 930 devices, Intel gave up on further 251 development.
Jon
I think Intel in general has given up on micro controllers. I guess the mystery will remain, a mystery. I suppose they designed in the ability to have 512 SFR bytes but never implemented it.
I think Intel now see the 386 and 486 as "microcontrollers"
Don't forget i960 or XScale or the StrongARM that they bought and produced.