2017-06-22 17 views

答えて

2

uintN,varuintNおよびvarintNはWebAssemblyのbinary formatを除く概念です。純粋にWebAssemblyをコンパクトで機械可読な形式でエンコードしています。

i32友人はlanguage typesです。 semantics of WebAssemblyには、これらのタイプとその相互作用の仕組みがより詳しく説明されています。基本的に、それらは言語レベルで存在し、WebAssemblyプログラムで使用可能な基本データ型を形成します。

2つのレベルが全く異なります。これは、Cソースコードに使用されるASCIIエンコードとC intのようなものです。 1つは純粋に言語レベルで、もう1つはその言語を安定した形式(C:ソース.cファイル、WebAssembly:バイナリ.wasmファイル)で表すときに純粋に使用されます。

"型コンストラクタ"は、バイナリ形式の特定のバイナリ値に対応する型です。各型をエンコードするバイナリ値が必要です。私のCソースの例に戻って、ソース文字の大文字Bは、ASCIIで0x42とエンコードされます。ここでWebAssembly i32タイプはバイト0x7fとしてエンコードされています。

+0

wasmバイナリファイルでバイト '0x7f'が見つかった場合、この場所の周りにある種の整数値が必要であることを意味しますか? – YHSPY

+0

ありがとう!私はこれを理解していると思う。 :) – YHSPY

+0

いいえ、あなたが '0x7f'を見つけたら、WebAssemblyフォーマットが可変長エンコーディングなので、多くのことを意味する可能性があります。 '0x7f'はコンテキストに応じて異なることを意味します。これは、x86と同じです。ここで、各バイトは、デコードされる命令に応じて異なるものを意味することができます。 –

関連する問題