📜  WebAssembly-示例

📅  最后修改于: 2020-11-02 05:16:18             🧑  作者: Mango


本章讨论有关WebAssembly的示例。

例子1

以下是获得最大Element的C程序示例-

void displaylog(int n);
/* function returning the max between two numbers */ 
int max(int num1, int num2) {
   /* local variable declaration */ int result; 
   if (num1 > num2) 
      result = num1; 
   else result = num2;
      displaylog(result);
   return result; 
}

在wasm小提琴中编译代码,然后下载.wasm和.wat代码。

WASM小提琴

瓦特码

Wat代码如下-

(module 
   (type $FUNCSIG$vi (func (param i32))) 
   (import "env" "displaylog" (func $displaylog (param i32))) 
   (table 0 anyfunc) 
   (memory $0 1) 
   (export "memory" (memory $0)) 
   (export "max" (func $max)) 
   (func $max (; 1 ;) (param $0 i32) (param $1 i32) (result i32) 
      (call $displaylog       
         (tee_local $0 
            (select 
               (get_local $0) 
               (get_local $1) 
               (i32.gt_s (get_local $0) (get_local $1)) 
            )
         )
      )
      (get_local $0) 
   )
)

下载.wasm代码,让我们在.html文件中使用,如下所示-


   
   
       
   

输出

输出如下-

HTML文件

例子2

以下是获取给定数字的斐波那契数列的C++代码。

#include >
void displaylog(int n); 
int fibonacciSeries(int number) {
   int n1=0,n2=1,n3,i; 
   for(i=2;i

我正在使用wasm Explorer来编译代码。下载Wat和Wasm并在浏览器中对其进行测试。

编译代码

您可以使用下面提到的代码-


   
   
       
   

输出

输出如下-

防锈码

例子3

以下是Rust代码,用于在给定数组中添加元素。

fn add_array(x: i32) -> i32 { 
   let mut sum = 0; 
   let mut numbers = [10,20,30]; for i in 0..3 { 
      sum += numbers[i]; 
   } 
   sum 
}

我们将利用WebAssembly Studio将RUST编译为wasm。

下载WASM文件

生成代码并下载wasm文件,然后在浏览器中执行该文件。


   
      
      

输出

输出将如下所示-

浏览器