跳转至

类汇编

使用 @asm 属性在函数中启用类汇编模式。

@asm
fn my_func {
    return 0;
}
my_func:
    mov rax, 0
    ret

函数参数必须绑定到寄存器。

@asm
fn syscall($rax size_t a, $rbx size_t b) {
    return a + b;
}
my_func:
    add rax, rbx
    ret

函数内只允许编写三元组命令,如:

a = b + c;
a += b;

复杂表达式(会缓存中间状态的)是不行的,如:

a = b + c + d;

入栈出栈

push my_var;
pop  my_var;

返回值

类汇编函数的返回值只能是能够通过通用寄存器 rax/eax 传递的类型。
例如:char int float void* usize 等。