... Data Space
Register Banks
Bit Space
Hardware Registers
Stack
Additional RAM (RUPI)
Addressing Modes
REQUIREMENTS
Relocatable and External References
Segment Relocation
Intermodule ...
... dead code elimination and jump tables for 'switch' statements.
MCU specific optimizations, including a global register allocator.
adaptable MCU specific backend that should be well suited for other ...
... Space
Up to 64K Bytes Data Memory Address Space
Up to 256 Bytes Internal Data Memory
Up to 128 Special Function Registers (SFR)
Idle, Power Down Mode
Programmable Clock and ...
... - Clear Register
CPL - Complement Register
DA - Decimal Adjust
DEC - Decrement Register
DIV - Divide Accumulator by B
DJNZ - Decrement Register and Jump if Not Zero
...
... which return String)
All parameters in order in which they were declared
On call to static method the following parameters must be in registers:
R3R2: Self address
On call to virtual method ...
Pascal Compiler for 8051 Microcontrollers
For reentrant procedures all parameters are pushed on XDATA stack. Functions return simple result in first register set (R5R4R3R2). For functions which return ...
... for each parameter declaration.
Register usage
Turbo51 internally uses two register sets: R5R4R3R2 and R9R8R7R6. R8 and R9 are ordinary DATA variables declared in System unit. 8-bit data is stored ...
... to be declared. You don't have to preserve any register and don't assume anything about register content before assembler statement. Byte variables AR0 to AR7 are direct locations for registers R0 to R7 ...
... any procedure we can optionally define register bank to be used in this procedure by Using and number of bank (0 to 3) or we can define bank independent procedure with UsingAny. Such procedure can be called ...
... variables for value storage), by reference (Turbo51 automatically creates static variables for pointer storage) or you can pass values in registers. Procedure's parameters can be accessed as local variables ...
... file variable F. Either ReadFunction or WriteProc can be omitted. Read function must be a non-reentrant function with no parameters which returns Char or Byte result (result must be returned in register ...
Pascal Compiler for 8051 Microcontrollers
System unit implements Turbo51 runtime library and defines some special function registers (SFR), bits and interrupt addresses that are present in all microcontrollers ...
... Register bank 0
$00..$07
Register bank 1
$08..$0F
Register bank 2
$10..$17
...
... that uses register bank n?
By default all procedures (and main program body) use register bank 0. You can modify register bank for any procedure with "using n" directive or use UsingAny directive to ...
... optimization in some rare cases due to register not marked as live
Fix in next release
3
Overflow in arithmetic operation reported in some rare occasions
FIXED in 0.1.3.11
2
Wrong stack ...
... It provides a high level design for a thorough optimizer, code generator, scheduler and register allocator for a generic modern RISC processor. In the process it addresses the small issues that have a ...
... Pascal 7 syntax
Full floating point support
Mixed Pascal and assembler code
Full use of register banks
Advanced multi-pass optimizer
Smart linker
Generates compact high quality code
Output ...