# Changeset 94 for C-semantics/8051-Memory/memory.tex

Ignore:
Timestamp:
Sep 21, 2010, 11:49:04 AM (10 years ago)
Message:

 r82 \put(164,324){\makebox(80,0){paged access}} \put(164,310){\makebox(80,0){direct/indirect}} \put(163,235){\makebox(0,0)[r]{100h}} \put(163,235){\makebox(0,0)[r]{80h}} \put(164,228){\makebox(80,0){\vdots}} \put(164,210){\makebox(80,0){direct/indirect}} variables' which access the \emph{Special Function Registers} (SFR). Pointers to these types are not allowed. [Does this match the 8051 instruction set?] set? CSC: in what sense? you cannot indirectly address any SFR register nor an SFR bit in 8051, so maybe this is the reason; it makes sense anyway.] These are all defined in Section~3.4.1 of the \sdcc\ manual. explicit addresses except for \lstinline'volatile' variables. \item Leave out bit variables(?), provide external functions' in the CompCert sense for bit access to SFRs but compile them to the corresponding instruction. sense for bit access to SFRs but compile them to the corresponding instruction.\\ CSC: this is unclear to me. In order to address SFR's bits, this is easily achieved. But for the first half of the bit address space (the real bits), this is not the case since only a few bytes can be accessed this way. Thus, if the compiler wants to exploit bit variables, it must do some spilling and keep the bits in the right memory area. \item Allow casting (and automatic promotion?) to generic pointer types. \item Only provide equality, ordering and subtraction operations on pointer