Збірка в Sway необов'язкова, але вона є, коли вам потрібно вичавити максимум продуктивності та взяти на себе безпосереднє управління FuelVM. Давайте розберемо все 🧵 по поличках
🔧 Навіщо використовувати Assembly? → Оптимізація газу: Написання логіки безпосередньо в блоках asm знижує витрати на газ за рахунок уникнення високорівневих абстракцій → Низькорівневий контроль: прямий доступ до набору інструкцій FuelVM ідеально підходить для авторів бібліотек або досвідчених користувачів, яким потрібне керування пам'яттю або поведінка на рівні коду операції
✅ Так само, як і Solidity, Sway також має «монтажні» блоки: Але основною формою, що стикається з користувачем, є 'asm {}'.
Ось як це виглядає в Sway:
🔍 Розуміння Блоку ASM: Він просто використовує інструкцію add для додавання одиниці до регістра r1 і зберігає результат у регістрі r2, а потім повертає його. Регістр повернення вказується в кінці, після всіх інструкцій по збірці. Він складається з імені регістра та необов'язкового типу повернення (r2: u32). Якщо тип повернення пропущено, за замовчуванням використовується u64.
Хочете повернути кілька значень? Ви можете змінити кортеж у блоці асемблера:
33