Central Docs
Catálogo Inicio

02. Bloques de función

Un bloque de función debe estar dentro de una función y llevar un dialecto entre comillas:

@assembler
func zero() int32:
    #prep assembler "gas-intel"
        xor eax, eax
    #end
    return asm

#prep se indenta dentro de la función. El bloque puede aparecer una sola vez por función @assembler y se cierra con #end. La función debe tener la declaración @assembler; si el bloque existe sin el decorador, el frontend lo rechaza.

La función solo puede contener el bloque ASM y el retorno que corresponda. No añadas variables, condiciones, llamadas Bagron ni otro bloque dentro de ese cuerpo. Para funciones sin bloque ASM, @assembler sigue exigiendo un único return, pero no permite return asm.

@assembler implica unsafe: una función segura no puede cruzar esta frontera de bajo nivel sin declararlo.