# Arithmetic The arithmetic operators have a lot of differences between WASM and EVM bytecode, all of the operand requires the order of the stack are reserved... ## Sub, Div, Mod and Bitwise Operand ```wasm i32.const 2 ;; PUSH1 0x02 i32.const 1 ;; PUSH1 0x01 sub ;; SWAP1 ;; SUB ``` This `SWAP1` sticks to all of these reversed order instructions, will introduce macros to optimize it in `v0.3.0`. ## Comparison The order of comparison are reversed as well, but however, they are paired! ```wasm i32.const 1 ;; PUSH1 0x01 i32.const 0 ;; PUSH1 0x00 gt ;; LT ``` This is insane, but works perfectly, don't think too much about it, focus on if the output is `0` or `1` ;)