Sway でのアセンブリはオプションですが、パフォーマンスをあらゆる部分まで絞り出し、FuelVM を直接制御する必要がある場合に使用できます。 分解してみましょう 🧵
🔧 アセンブリを使用する理由 → ガスの最適化: asm ブロックに直接ロジックを記述すると、高レベルの抽象化が回避され、ガス コストが削減されます → 低レベル制御:FuelVM命令セットへの直接アクセスは、カスタムメモリ管理やオペコードレベルの動作を必要とするライブラリ作成者やパワーユーザーに最適です
✅ Solidity と同様に、Sway にも 'アセンブリ' ブロックがあります。 しかし、主なユーザー向けフォームは 'asm {}'です。
Sway では次のようになります。
🔍 asm ブロックについて: これは、add 命令を使用してレジスタ r1 に 1 を加算し、結果をレジスタ r2 に格納してから返すだけです。 戻りレジスタは、すべてのアセンブリ命令の後に最後に指定されます。これは、レジスタ名とオプションの戻り値の型 (r2: u32) で構成されます。戻り値の型を省略すると、デフォルトは u64 になります。
複数の値を返したいですか?アセンブリブロック内のタプルを変更できます。
431