asmscript
Operands
asmscript supports two types of operands: registers and immediates (aka literals).
Registers
You can freely use 15 general purpose registers by refering to their names:
- rax
- rbx
- rcx
- rdx
- rsi
- rdi
- rbp
- r8
- r9
- r10
- r11
- r12
- r13
- r14
- r15
Note that rsp (the stack pointer) is not available. However, you have access to push and pop statements, which do interact with rsp. All registers are assumed to hold a 64-bit signed integer. There is no support for any other registers nor for more narrow versions (e.g. eax, ax, al) of general purpose registers.
Immediates
You can use a 64-bit signed integer literal as an operand. Only decimal literals are supported.
Destination and source operands
Statements can make use of two types of operands: destination operands and source operands. Source operands are read-only, while destination operands can be written to.
You can only use a register as a destination operand.
You can use either a register or an immediate as a source operand.