WebAssembly标准入门txt电子书

简介: 适读人群 :本书适合从事高性能Web前端开发、跨语言Web应用开发的技术人员学习参考,也可以作为WebAssembly标准参考手册随时查阅。 作为一种新颖的网页前端技术,WebAssembly的发展日新月异。本书基于已受浏览器普遍支持的WebAssembly极小可用特征集,致力于通过简单易懂的方式,从使用方法到虚拟机设计,讲解WebAssembly的运行原理。极小可用特征集只是快速迭代的起点,SIMD、多线程等更多特性将逐渐被添加到WebAssembly标准中。 在WebAssembly 大潮来临之际,希望本书能为该技术在国内的推广贡献绵薄之力。 本书内容要点: WebAssembly 简要介绍; 在JavaScript 中使用WebAssembly 模块的方法; WebAssembly 汇编语言及二进制格式; 使用高级语言开发WebAssembly 模块; WebAssembly 指令参考。

i32:32位整型数。

i64:64位整型数。

f32:32位浮点数,IEEE 754标准。

f64:64位浮点数,IEEE 754标准。

i32.const x:在栈上压入值为x的i32值。

i64.const x:在栈上压入值为x的i64值。

f32.const x:在栈上压入值为x的f32值。

f64.const x:在栈上压入值为x的f64值。

算术运算指令的返回值(即运算后压入栈上的值)的类型都与其指令前缀类型一致,即以“i32.”为前缀的指令返回值类型均为i32,其他类型类似。

i32.add:i32求和。从栈顶依次弹出1个i32的值a、1个i32的值b,计算a+b的值压入栈。

i32.sub:i32求差。从栈顶依次弹出1个i32的值a、1个i32的值b,计算b−a的值压入栈。

i32.mul:i32求积。从栈顶依次弹出1个i32的值a、1个i32的值b,计算a*b的值压入栈。

i32.div_s:i32有符号求商。从栈顶依次弹出1个i32的值a、1个i32的值b,按有符号整数计算b/a的值压入栈。

i32.div_u:i32无符号求商。从栈顶依次弹出1个i32的值a、1个i32的值b,按无符号整数计算b/a的值压入栈。

i32.rem_s:i32有符号求余。从栈顶依次弹出1个i32的值a、1个i32的值b,按有符号整数计算b%a的值压入栈。

i32.rem_u:i32无符号求余。从栈顶依次弹出1个i32的值a、1个i32的值b,按无符号整数计算b%a的值压入栈。

i64.add:i64求和。从栈顶依次弹出1个i64的值a、1个i64的值b,计算a+b的值压入栈。

i64.sub:i64求差。从栈顶依次弹出1个i64的值a、1个i64的值b,计算b−a的值压入栈。

i64.mul:i64求积。从栈顶依次弹出1个i64的值a、1个i64的值b,计算a*b的值压入栈。

i64.div_s:i64有符号求商。从栈顶依次弹出1个i64的值a、1个i64的值b,按有符号整数计算b/a的值压入栈。

i64.div_u:i64无符号求商。从栈顶依次弹出1个i64的值a、1个i64的值b,按无符号整数计算b/a的值压入栈。

i64.rem_s:i64有符号求余。从栈顶依次弹出1个i64的值a、1个i64的值b,按有符号整数计算b%a的值压入栈。

i64.rem_u:i64无符号求余。从栈顶依次弹出1个i64的值a、1个i64的值b,按无符号整数计算b%a的值压入栈。

f32.abs:f32求绝对值。从栈顶弹出1个f32的值v,将其符号位置为0后压入栈。

f32.neg:f32求反。从栈顶弹出1个f32的值,将其符号位取反后压入栈。

f32.ceil:f32向上取整。从栈顶弹出1个f32的值v,将最接近v且不小于v的整数值转为f32后压入栈。

f32.floor:f32向下取整。从栈顶弹出1个f32的值v,将最接近v且不大于v的整数值转为f32后压入栈。

f32.trunc:f32向0取整。从栈顶弹出1个f32的值v,丢弃其小数部分,保留整数部分转为f32后压入栈。

f32.nearest:f32向最接近的整数取整。从栈顶弹出1个f32的值v,将最接近v的整数值转为f32后压入栈。

f32.sqrt:f32求平方根。从栈顶弹出1个f32的值v,将其平方根压入栈。

f32.add:f32求和。从栈顶依次弹出1个f32的值a、1个f32的值b,计算a+b的值压入栈。

f32.sub:f32求差。从栈顶依次弹出1个f32的值a、1个f32的值b,计算b−a的值压入栈。

f32.mul:f32求积。从栈顶依次弹出1个f32的值a、1个f32的值b,计算a*b的值压入栈。

版权:人民邮电出版社