A montagem no Sway é opcional, mas está lá quando você precisa extrair cada pedacinho de desempenho e assumir o controle direto do FuelVM. Vamos decompô-lo 🧵
🔧 Por que usar o Assembly? → Otimização de gás: Escrever lógica diretamente em blocos de conjunto reduz os custos de gás, evitando abstrações de alto nível → Controle de baixo nível: acesso direto ao conjunto de instruções FuelVM perfeito para autores de bibliotecas ou usuários avançados que precisam de gerenciamento de memória personalizado ou comportamento de nível de opcode
✅ Assim como o Solidity, o Sway também possui blocos de 'montagem': Mas a principal forma voltada para o usuário é 'asm {}'.
Veja como fica no Sway:
🔍 Entendendo o bloco asm: Isso simplesmente usa a instrução add para adicionar um ao registro r1 e armazena o resultado no registro r2 e, em seguida, o retorna. O registro de retorno é especificado no final, após todas as instruções de montagem. Ele consiste no nome do registro e no tipo de retorno opcional (r2: u32). Se o tipo de retorno for omitido, o padrão será u64.
Deseja retornar vários valores? Você pode modificar uma tupla dentro do bloco de montagem:
500