Back to Content

rem: Wasm text instruction

files/en-us/webassembly/reference/numeric/rem/index.md

latest1.1 KB
Original Source

The rem instructions, short for remainder, are used to calculate the remainder left over when one integer is divided by another integer, similar to the % operator in other languages. The rem instructions are only available for the integer types and not for the floating point types.

{{InteractiveExample("Wat Demo: rem", "tabbed-taller")}}

wat
(module
  (import "console" "log" (func $log (param i32)))
  (func $main
    ;; load `10` and `3` onto the stack
    i32.const 10
    i32.const 3

    i32.rem_u ;; calculate the remainder
    call $log ;; log the result
  )
  (start $main)
)
js
const url = "{%wasm-url%}";
await WebAssembly.instantiateStreaming(fetch(url), { console });

Syntax

wat
;; load two numbers onto the stack
i32.const 10
i32.const 3

;; calculate the remainder of dividing one number by the other
i32.rem

;; the top item on the stack will now be 1 (10 % 3 = 1)
InstructionBinary opcode
i32.rem_s0x6f
i32.rem_u0x70
i64.rem_s0x81
i64.rem_u0x82