ホームページ >ウェブフロントエンド >jsチュートリアル >asm.jsの使い方サンプルコード_基礎知識

asm.jsの使い方サンプルコード_基礎知識

WBOY
WBOYオリジナル
2016-05-16 17:12:081096ブラウズ

复制代码代码如下:

function mymodule(global, external,buffer) {
"asm を使用";

// ------------------------------------------- ----------------------------
// セクション 1: インポート

var H32 = 新しい global.Int32Array(buffer);
var HU32 = new global.Uint32Array(buffer);
var log = external.consoleDotLog;

// ------------------------------------------- ----------------------------
// セクション 2: 関数

function f(x, y, z, w) {
// セクション A: パラメーターの型宣言
x = x|0;      // int パラメータ
y = y;       // ダブルパラメータ

// セクション B: 関数本体
log(x|0);     // FFI を呼び出します -- 符号を強制する必要があります
log(y);       // FFI を呼び出します -- これが double であることはすでにわかっています
x = (x 3)|0;  // 署名付き追加

// セクション C: 無条件リターン
return ((((x 1)|0)>gt;>>>0)/(x|0))>gt;>>>0; // 複合式
}

function g() {
g_f = g_i; // 読み取り/書き込みグローバル
return;
}

function g2() {
return;
}

function h(i, x) {
i = i|0;
x = x|0;
H32[(i&0xffffffff)>gt;>4] = x; // 2^k-1 でマスクされ、バイト数でシフトされます
ftable_2[(x-2)&2]();        // 表 2 の関数の動的呼び出し
}

// ------------------------------------------- ----------------------------
// セクション 3: 関数テーブル

var ftable_1 = [f];
var ftable_2 = [g, g2]; // すべて同じ型

// ------------------------------------------- ----------------------------
// セクション 4: グローバル

var g_i = 0;   // int global
var g_f = 0.0; // ダブルグローバル

// ------------------------------------------- ----------------------------
// セクション 5: エクスポート

return { f_export: f, goop: g };
}

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。