加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 教程 > 正文

asm.js使用实例代码

发布时间:2023-08-05 14:30:41 所属栏目:教程 来源:
导读:代码如下:

function mymodule(global, foreign, buffer) {

"use asm";

// -------------------------------------------------------------------------

// SECTION 1: imports

代码如下:
 
function mymodule(global, foreign, buffer) {
 
    "use asm";
 
    // -------------------------------------------------------------------------
 
    // SECTION 1: imports
 
    var H32 = new global.Int32Array(buffer);
 
    var HU32 = new global.Uint32Array(buffer);
 
    var log = foreign.consoleDotLog;
 
    // -------------------------------------------------------------------------
 
    // SECTION 2: functions
 
    function f(x, y, z, w) {
 
        // SECTION A: parameter type declarations
 
        x = x|0;      // int parameter
 
        y = +y;       // double parameter
 
        // SECTION B: function body
 
        log(x|0);     // call into FFI -- must force the sign
 
        log(y);       // call into FFI -- already know it's a double
 
        x = (x+3)|0;  // signed addition
 
        // SECTION C: unconditional return
 
        return ((((x+1)|0)>>>0)/(x|0))>>>0; // compound expression
 
    }
 
    function g() {
 
        g_f = +g_i; // read/write globals
 
        return;
 
    }
 
    function g2() {
 
        return;
 
    }
 
    function h(i, x) {
 
        i = i|0;
 
        x = x|0;
 
        H32[(i&0xffffffff)>>4] = x; // masked by 2^k-1, shifted by byte count
 
        ftable_2[(x-2)&2]();        // dynamic call of functions in table 2
 
    }
 
    // -------------------------------------------------------------------------
 
    // SECTION 3: function tables
 
    var ftable_1 = [f];
 
    var ftable_2 = [g, g2]; // all of the same type
 
    // -------------------------------------------------------------------------
 
    // SECTION 4: globals
 
    var g_i = 0;   // int global
 
    var g_f = 0.0; // double global
 
    // -------------------------------------------------------------------------
 
    // SECTION 5: exports
 
    return { f_export: f, goop: g };
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章