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的值压入栈。