A montagem em Sway é opcional, mas está lá quando você precisa extrair cada gota de desempenho e ter controle direto sobre o FuelVM. Vamos analisar isso 🧵
🔧 Por que usar Assembly? → Otimização de Gas: Escrever lógica diretamente em blocos asm reduz os custos de gas ao evitar abstrações de alto nível → Controle de Baixo Nível: Acesso direto ao conjunto de instruções do FuelVM é perfeito para autores de bibliotecas ou usuários avançados que precisam de gerenciamento de memória personalizado ou comportamento a nível de opcode
✅ Assim como o Solidity, o Sway também possui blocos `assembly`: Mas a forma principal voltada para o usuário é `asm {}`.
Aqui está como fica no Sway:
🔍 Compreendendo o bloco asm: Isto simplesmente utiliza a instrução add para adicionar um ao registrador r1 e armazena o resultado no registrador r2, e depois o retorna. O registrador de retorno é especificado no final, após todas as instruções de assembly. Consiste no nome do registrador e no tipo de retorno opcional (r2: u32). Se o tipo de retorno for omitido, o padrão é u64.
Quer retornar múltiplos valores? Você pode modificar uma tupla dentro do bloco de montagem:
49