Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |
| sd:isa [2026/06/10 04:36] – appledog | sd:isa [2026/06/10 04:36] (current) – appledog |
|---|
| |
| <wrap #call /><wrap #call /><wrap #callr /><wrap #callr /> | <wrap #call /><wrap #call /><wrap #callr /><wrap #callr /> |
| **''CALL / CALLR dest/reg''**\\ CALL pushes the return address of the next instruction and jumps to the location. | **''CALL addr / CALL reg / CALLR reg''**\\ CALL pushes the return address of the next instruction and jumps to the location. |
| |
| The CALLR instruction takes a register operand and dispatches based on the register's size: 16-bit registers use the current bank combined with a 16-bit address, 8-bit registers work similarly, and 24-bit registers provide a full 24-bit address. For function pointers stored in 32-bit register pairs like AB, CALLR will convert the address to 24 bits by discarding the high byte. | The CALLR instruction takes a register operand and dispatches based on the register's size: 16-bit registers use the current bank combined with a 16-bit address, 8-bit registers work similarly, and 24-bit registers provide a full 24-bit address. For function pointers stored in 32-bit register pairs like AB, CALLR will convert the address to 24 bits by discarding the high byte. |