In order to simplify the code, the assembly code is interfaced through macros.
|
#define | CLASSB_RegClear_IO(reg) |
| Clear IO-register. More...
|
|
#define | CLASSB_RegClear_R(reg) |
| Clear R register. More...
|
|
#define | CLASSB_RegRestore_IO(reg) |
| Restore IO-register content. More...
|
|
#define | CLASSB_RegRestore_R(reg) |
| Load R register content from R31. More...
|
|
#define | CLASSB_RegSet_IO(reg, value) |
| Set IO-register to specified value. More...
|
|
#define | CLASSB_RegSet_R_HI(reg, value) |
| Set high R-register to specified value. More...
|
|
#define | CLASSB_RegSet_R_LO(reg, value) |
| Set low R-register to specified value. More...
|
|
#define | CLASSB_RegStore_IO(reg) |
| Store IO-register content. More...
|
|
#define | CLASSB_RegStore_R(reg) |
| Save R register content to R31. More...
|
|
#define | CLASSB_RegTest_IO(reg, value, label) |
| Test IO register with specified value, jump to specified label on fault. More...
|
|
#define | CLASSB_RegTest_R_HI(reg, value, label) |
| Test R16-31 with specified value, jump to specified label on fault. More...
|
|
#define | CLASSB_RegTest_R_LO(reg, value, label) |
| Test R0-15 with specified value, jump to specified label on fault. More...
|
|
#define CLASSB_RegClear_IO |
( |
|
reg | ) |
|
Value:
"clr r30 \n" \
"out " #reg ", r30 \n" \
)
#define ASSEMBLY
Definition: classb_cpu.h:48
Clear IO-register.
- Parameters
-
reg | IO-address of register to clear. |
- Note
- The IO-register is cleared via R30.
#define CLASSB_RegClear_R |
( |
|
reg | ) |
|
Value:
"clr " #reg " \n" \
)
#define ASSEMBLY
Definition: classb_cpu.h:48
Clear R register.
- Parameters
-
- Note
- This macro works for any R-register (R0-R31).
#define CLASSB_RegRestore_IO |
( |
|
reg | ) |
|
Value:
"out " #reg ", r31 \n" \
)
#define ASSEMBLY
Definition: classb_cpu.h:48
Restore IO-register content.
- Parameters
-
reg | IO-address of register to restore. |
- Note
- The value of the IO-register is restored from R31.
Referenced by classb_register_test().
#define CLASSB_RegRestore_R |
( |
|
reg | ) |
|
Value:
"mov " #reg ", r31 \n" \
)
#define ASSEMBLY
Definition: classb_cpu.h:48
Load R register content from R31.
- Parameters
-
reg | R-register to restore from R31. |
Referenced by classb_register_test().
#define CLASSB_RegSet_IO |
( |
|
reg, |
|
|
|
value |
|
) |
| |
Value:
"ldi r30, " #value " \n" \
"out " #reg ", r30 \n" \
)
#define ASSEMBLY
Definition: classb_cpu.h:48
Set IO-register to specified value.
- Parameters
-
reg | IO-address of register to set. |
value | Value to set register to. |
- Note
- The value is copied into the specified register via R30.
Referenced by classb_register_test().
#define CLASSB_RegSet_R_HI |
( |
|
reg, |
|
|
|
value |
|
) |
| |
Value:
"ldi " #reg ", " #value " \n" \
)
#define ASSEMBLY
Definition: classb_cpu.h:48
Set high R-register to specified value.
- Parameters
-
reg | R-register to set (R16-R31). |
value | Value to set R-register to. |
Referenced by classb_register_test().
#define CLASSB_RegSet_R_LO |
( |
|
reg, |
|
|
|
value |
|
) |
| |
Value:
"ldi r30, " #value " \n" \
"mov " #reg ", r30 \n" \
)
#define ASSEMBLY
Definition: classb_cpu.h:48
Set low R-register to specified value.
- Parameters
-
reg | R-register to set (R0-R15). |
value | Value to set R-register to. |
- Note
- The value is copied into the specified register via R30.
Referenced by classb_register_test().
#define CLASSB_RegStore_IO |
( |
|
reg | ) |
|
Value:
"in r31, " #reg " \n" \
)
#define ASSEMBLY
Definition: classb_cpu.h:48
Store IO-register content.
- Parameters
-
reg | IO-address of register to store. |
- Note
- The value of the IO-register is stored in R31.
Referenced by classb_register_test().
#define CLASSB_RegStore_R |
( |
|
reg | ) |
|
Value:
"mov r31, " #reg " \n" \
)
#define ASSEMBLY
Definition: classb_cpu.h:48
Save R register content to R31.
- Parameters
-
reg | R-register to store in R31. |
Referenced by classb_register_test().
#define CLASSB_RegTest_IO |
( |
|
reg, |
|
|
|
value, |
|
|
|
label |
|
) |
| |
Value:
"ldi r30, " #value " \n" \
"out " #reg ", r30 \n" \
"in r30, " #reg " \n" \
"cpi r30, " #value " \n" \
)
#define LABEL(X, Y, Z)
Definition: classb_cpu.h:60
#define STRINGIZE(X)
Definition: classb_cpu.h:58
#define ASSEMBLY
Definition: classb_cpu.h:48
Test IO register with specified value, jump to specified label on fault.
- Note
- R30 is used in the copying of values to the register.
- Parameters
-
reg | Address of IO register to test. |
value | Value to test register with. |
label | Label to jump to if test fails. |
Referenced by classb_register_test().
#define CLASSB_RegTest_R_HI |
( |
|
reg, |
|
|
|
value, |
|
|
|
label |
|
) |
| |
Value:
"ldi " #reg ", " #value " \n" \
"cpi " #reg ", " #value " \n" \
)
#define LABEL(X, Y, Z)
Definition: classb_cpu.h:60
#define STRINGIZE(X)
Definition: classb_cpu.h:58
#define ASSEMBLY
Definition: classb_cpu.h:48
Test R16-31 with specified value, jump to specified label on fault.
- Parameters
-
reg | Register to test (R16..R31). |
value | Value to test register with. |
label | Label to jump to if test fails. |
Referenced by classb_register_test().
#define CLASSB_RegTest_R_LO |
( |
|
reg, |
|
|
|
value, |
|
|
|
label |
|
) |
| |
Value:
"ldi r30, " #value " \n" \
"mov " #reg ", r30 \n" \
"mov r30, " #reg " \n" \
"cpi r30, " #value " \n" \
)
#define LABEL(X, Y, Z)
Definition: classb_cpu.h:60
#define STRINGIZE(X)
Definition: classb_cpu.h:58
#define ASSEMBLY
Definition: classb_cpu.h:48
Test R0-15 with specified value, jump to specified label on fault.
- Note
- R30 is used in the copying values to the register.
- Parameters
-
reg | Register to test (R0..R15). |
value | Value to test register with. |
label | Label to jump to if test fails. |
Referenced by classb_register_test().