i64.store8
Copies the first 8 bits of an i64 value into memory at the required location.

Syntax

i64.store8 offset=n align=n

Parameters

offset Optional
A numeric value that gives an extra offset to the memory location given. Must be a positive value. Can be written as a decimal number or using the 0x00 hexadecimal notation. If the memory location is 8 and you add an extra offset of 2, then the final memory location is 10. This is useful if you are using a data structure with fields at different locations inside.
align Optional
Gives information to the machine running the application about the alignment that could be used when setting the location of the memory. This can only be 0, 1, 2, or 4. You will not see any difference and it may not even be used. It is more of a hint than a command.

Stack In

i32 Memory offset location to copy the data to.
i64 The data to be copied into memory. Only the first 8 bits are copied.

Stack Out

NONE

Examples

;; Push the i32 memory offset value location onto the stack
i32.const 2

;; Push the i64 value to copy into memory onto the stack
i64.const 0x0123456789ABCDEF

;; Pop the memory location and the value off the stack, set the memory
;; at the given location to the data value (only the first 8 bits)
i64.store8

;; Memory is [ 0x00, 0x00, 0xEF, 0x00, 0x00, 0x00 ]
;; Push the i32 memory offset value location onto the stack
i32.const 2

;; Push the i64 value to copy into memory onto the stack
i64.const 0x0123456789ABCDEF

;; Pop the memory location and the value off the stack, set the memory
;; at the given location with an extra offset of 2 bytes to the data
;; value (only the first 8 bits)
i64.store8 offset=2

;; Memory is [ 0x00, 0x00, 0x00, 0x00, 0xEF, 0x00, 0x00, 0x00 ]