| bread | |||
| · Operation | Read int8 from pointer | ||
| · Format |
| ||
| · Direct Format |
| ||
| · Forms | bread = 33 (0x21) | ||
| · Stack | ..., pointer => ..., value | ||
| · Description | Pop pointer from the stack as type
ptr. Read the 8 bit value at pointer in
memory, sign-extend it to int32 and push it onto
the stack. |
| bwrite | |||
| · Operation | Write int8 to pointer | ||
| · Format |
| ||
| · Direct Format |
| ||
| · Forms | bwrite = 42 (0x2A) | ||
| · Stack | ..., pointer, value => ... | ||
| · Description | Pop pointer and value from the stack as
the types ptr and int32 respectively.
Truncate value to 8 bits and write it to pointer in
memory. | ||
| · Notes | This instruction can also be used to write values of
type uint8 to memory. |
| bwrite_r | |||
| · Operation | Write int8 to pointer with reversed
arguments | ||
| · Format |
| ||
| · Direct Format |
| ||
| · Forms | bwrite_r = 49 (0x31) | ||
| · Stack | ..., value, pointer => ... | ||
| · Description | Pop value and pointer from the stack as
the types int32 and ptr respectively.
Truncate value to 8 bits and write it to pointer in
memory. | ||
| · Notes | This instruction can also be used to write values of
type uint8 to memory. |
| dread | |||
| · Operation | Read float64 from pointer | ||
| · Format |
| ||
| · Direct Format |
| ||
| · Forms | dread = 39 (0x27) | ||
| · Stack | ..., pointer => ..., value | ||
| · Description | Pop pointer from the stack as type
ptr. Read the 64 bit float64 value
at pointer in memory, extend it to native float,
and push it onto the stack. |
| dwrite | |||
| · Operation | Write float64 to pointer | ||
| · Format |
| ||
| · Direct Format |
| ||
| · Forms | dwrite = 46 (0x2E) | ||
| · Stack | ..., pointer, value => ... | ||
| · Description | Pop pointer and value from the stack as
the types ptr and native float respectively.
Truncate value to float64 and write it
to pointer in memory. |
| dwrite_r | |||
| · Operation | Write float64 to pointer with reversed
arguments | ||
| · Format |
| ||
| · Direct Format |
| ||
| · Forms | dwrite_r = 53 (0x35) | ||
| · Stack | ..., value, pointer => ... | ||
| · Description | Pop value and pointer from the stack as
the types native float and ptr respectively.
Truncate value to float64 and write it
to pointer in memory. |
| fread | |||
| · Operation | Read float32 from pointer | ||
| · Format |
| ||
| · Direct Format |
| ||
| · Forms | fread = 38 (0x26) | ||
| · Stack | ..., pointer => ..., value | ||
| · Description | Pop pointer from the stack as type
ptr. Read the 32 bit float32 value
at pointer in memory, extend it to native float,
and push it onto the stack. |
| fwrite | |||
| · Operation | Write float32 to pointer | ||
| · Format |
| ||
| · Direct Format |
| ||
| · Forms | fwrite = 45 (0x2D) | ||
| · Stack | ..., pointer, value => ... | ||
| · Description | Pop pointer and value from the stack as
the types ptr and native float respectively.
Truncate value to float32 and write it
to pointer in memory. |
| fwrite_r | |||
| · Operation | Write float32 to pointer with reversed
arguments | ||
| · Format |
| ||
| · Direct Format |
| ||
| · Forms | fwrite_r = 52 (0x34) | ||
| · Stack | ..., value, pointer => ... | ||
| · Description | Pop value and pointer from the stack as
the types native float and ptr respectively.
Truncate value to float32 and write it
to pointer in memory. |
| iread | |||
| · Operation | Read int32 from pointer | ||
| · Format |
| ||
| · Direct Format |
| ||
| · Forms | iread = 37 (0x25) | ||
| · Stack | ..., pointer => ..., value | ||
| · Description | Pop pointer from the stack as type
ptr. Read the 32 bit int32 value
at pointer in memory, and push it onto the stack. | ||
| · Notes | This instruction can also be used to read uint32
values from memory. |
| iwrite | |||
| · Operation | Write int32 to pointer | ||
| · Format |
| ||
| · Direct Format |
| ||
| · Forms | iwrite = 44 (0x2C) | ||
| · Stack | ..., pointer, value => ... | ||
| · Description | Pop pointer and value from the stack as
the types ptr and int32 respectively.
Write value to pointer in memory. | ||
| · Notes | This instruction can also be used to write values of
type uint32 to memory. |
| iwrite_r | |||
| · Operation | Write int32 to pointer with reversed
arguments | ||
| · Format |
| ||
| · Direct Format |
| ||
| · Forms | iwrite_r = 51 (0x33) | ||
| · Stack | ..., value, pointer => ... | ||
| · Description | Pop value and pointer from the stack as
the types int32 and ptr respectively.
Write value to pointer in memory. | ||
| · Notes | This instruction can also be used to write values of
type uint32 to memory. |
| mread | ||||||||
| · Operation | Read multiple bytes from pointer | |||||||
| · Format |
| |||||||
| · Direct Format |
| |||||||
| · Forms | mread = 41 (0x29) | |||||||
| · Stack | ..., pointer => ..., value | |||||||
| · Description | Pop pointer from the stack as type
ptr. Read N bytes from pointer
in memory, and push them onto the stack, aligned on a word
boundary. | |||||||
| · Notes | The exact number of stack words that is pushed depends upon the underlying platform. |
| mwrite | ||||||||
| · Operation | Write multiple bytes to pointer | |||||||
| · Format |
| |||||||
| · Direct Format |
| |||||||
| · Forms | mwrite = 48 (0x30) | |||||||
| · Stack | ..., pointer, value => ... | |||||||
| · Description | Pop pointer and value from the stack as
the types ptr and uint8[N] (i.e. N
bytes of data, aligned on a stack word) respectively. Write
value to pointer in memory. |
| mwrite_r | ||||||||
| · Operation | Write multiple bytes to pointer with reversed arguments | |||||||
| · Format |
| |||||||
| · Direct Format |
| |||||||
| · Forms | mwrite_r = 55 (0x37) | |||||||
| · Stack | ..., value, pointer => ... | |||||||
| · Description | Pop value and pointer from the stack as
the types uint8[N] (i.e. N bytes of data,
aligned on a stack word) and ptr respectively.
Write value to pointer in memory. |
| padd_i4 | |||
| · Operation | Add int32 value to pointer | ||
| · Format |
| ||
| · Direct Format |
| ||
| · Forms | padd_i4 = 135 (0x87) | ||
| · Stack | ..., pointer, value => ..., newpointer | ||
| · Description | Pop pointer and value from the stack
as the types ptr and int32 respectively.
Compute newpointer = pointer + value and push
newpointer onto the stack. | ||
| · Notes | The padd_offset instruction is more efficient if value is constant and less than 256. |
| padd_i4_r | |||
| · Operation | Add int32 value to pointer with
reversed arguments | ||
| · Format |
| ||
| · Direct Format |
| ||
| · Forms | padd_i4_r = 136 (0x88) | ||
| · Stack | ..., value, pointer => ..., newpointer | ||
| · Description | Pop value and pointer from the stack
as the types int32 and ptr respectively.
Compute newpointer = pointer + value and push
newpointer onto the stack. |
| padd_i8 | |||
| · Operation | Add int64 value to pointer | ||
| · Format |
| ||
| · Direct Format |
| ||
| · Forms | padd_i8 = 137 (0x89) | ||
| · Stack | ..., pointer, value => ..., newpointer | ||
| · Description | Pop pointer and value from the stack
as the types ptr and int64 respectively.
Compute newpointer = pointer + value and push
newpointer onto the stack. | ||
| · Notes | The value will be truncated to 32 bits on platforms with 32 bit pointers. |
| padd_i8_r | |||
| · Operation | Add int64 value to pointer with
reversed arguments | ||
| · Format |
| ||
| · Direct Format |
| ||
| · Forms | padd_i8_r = 138 (0x8A) | ||
| · Stack | ..., value, pointer => ..., newpointer | ||
| · Description | Pop value and pointer from the stack
as the types int64 and ptr respectively.
Compute newpointer = pointer + value and push
newpointer onto the stack. | ||
| · Notes | The value will be truncated to 32 bits on platforms with 32 bit pointers. |
| padd_offset | ||||
| · Operation | Add a literal byte offset to a pointer | |||
| · Format |
| |||
| · Direct Format |
| |||
| · Forms | padd_offset = 133 (0x85) | |||
| · Stack | ..., pointer => ..., newpointer | |||
| · Description | Pop pointer from the stack as type ptr.
Compute newpointer = pointer + N and push newpointer
onto the stack. |
| padd_offset_n | ||||||||||
| · Operation | Add a literal byte offset to a pointer that is several words down the stack | |||||||||
| · Format |
| |||||||||
| · Direct Format |
| |||||||||
| · Forms | padd_offset_n = 134 (0x86) | |||||||||
| · Stack | ..., pointer, val1, ..., valN => ..., newpointer, val1, ..., valN | |||||||||
| · Description | Read pointer from the N positions
down the stack as type ptr. Compute
newpointer = pointer + M and replace pointer
with newpointer. A value of N == 0 indicates the
top-most stack word. | |||||||||
| · Notes | The padd_offset instruction is more efficient if N == 0 and M < 256. |
| pread | |||
| · Operation | Read ptr from pointer | ||
| · Format |
| ||
| · Direct Format |
| ||
| · Forms | pread = 40 (0x28) | ||
| · Stack | ..., pointer => ..., value | ||
| · Description | Pop pointer from the stack as type
ptr. Read the ptr value
at pointer in memory, and push it onto the stack. | ||
| · Notes | This instruction must not be confused with iread.
Values of type int32 and ptr do not
necessarily occupy the same amount of memory space on all
platforms. |
| psub | |||
| · Operation | Subtract pointer values | ||
| · Format |
| ||
| · Direct Format |
| ||
| · Forms | psub = 139 (0x8B) | ||
| · Stack | ..., value1, value2 => ..., result | ||
| · Description | Pop value1 and value2 from the stack
as type ptr. Compute result = value1 - value2
and push result onto the stack. The type of result
will be either int32 or int64, depending
upon the platform. |
| psub_i4 | |||
| · Operation | Subtract int32 from pointer | ||
| · Format |
| ||
| · Direct Format |
| ||
| · Forms | psub_i4 = 140 (0x8C) | ||
| · Stack | ..., pointer, value => ..., newpointer | ||
| · Description | Pop pointer and value from the stack
as the types ptr and int32 respectively.
Compute newpointer = pointer - value and push
newpointer onto the stack. |
| psub_i8 | |||
| · Operation | Subtract int64 from pointer | ||
| · Format |
| ||
| · Direct Format |
| ||
| · Forms | psub_i8 = 141 (0x8D) | ||
| · Stack | ..., pointer, value => ..., newpointer | ||
| · Description | Pop pointer and value from the stack
as the types ptr and int64 respectively.
Compute newpointer = pointer - value and push
newpointer onto the stack. | ||
| · Notes | The value will be truncated to 32 bits on platforms with 32 bit pointers. |
| pwrite | |||
| · Operation | Write ptr to pointer | ||
| · Format |
| ||
| · Direct Format |
| ||
| · Forms | pwrite = 47 (0x2F) | ||
| · Stack | ..., pointer, value => ... | ||
| · Description | Pop pointer and value from the stack as
type ptr. Write value to pointer
in memory. | ||
| · Notes | This instruction must not be confused with iwrite.
Values of type int32 and ptr do not
necessarily occupy the same amount of memory space on all
platforms. |
| pwrite_r | |||
| · Operation | Write ptr to pointer with reversed
arguments | ||
| · Format |
| ||
| · Direct Format |
| ||
| · Forms | pwrite_r = 54 (0x36) | ||
| · Stack | ..., value, pointer => ... | ||
| · Description | Pop value and pointer from the stack as
type ptr. Write value to pointer
in memory. | ||
| · Notes | This instruction must not be confused with iwrite_r.
Values of type int32 and ptr do not
necessarily occupy the same amount of memory space on all
platforms. |
| sread | |||
| · Operation | Read int16 from pointer | ||
| · Format |
| ||
| · Direct Format |
| ||
| · Forms | sread = 35 (0x23) | ||
| · Stack | ..., pointer => ..., value | ||
| · Description | Pop pointer from the stack as type
ptr. Read the 16 bit value at pointer in
memory, sign-extend it to int32 and push it onto
the stack. |
| swrite | |||
| · Operation | Write int16 to pointer | ||
| · Format |
| ||
| · Direct Format |
| ||
| · Forms | swrite = 43 (0x2B) | ||
| · Stack | ..., pointer, value => ... | ||
| · Description | Pop pointer and value from the stack as
the types ptr and int32 respectively.
Truncate value to 16 bits and write it to pointer in
memory. | ||
| · Notes | This instruction can also be used to write values of
type uint16 to memory. |
| swrite_r | |||
| · Operation | Write int16 to pointer with reversed
arguments | ||
| · Format |
| ||
| · Direct Format |
| ||
| · Forms | swrite_r = 50 (0x32) | ||
| · Stack | ..., value, pointer => ... | ||
| · Description | Pop value and pointer from the stack as
the types int32 and ptr respectively.
Truncate value to 16 bits and write it to pointer in
memory. | ||
| · Notes | This instruction can also be used to write values of
type uint16 to memory. |
| ubread | |||
| · Operation | Read uint8 from pointer | ||
| · Format |
| ||
| · Direct Format |
| ||
| · Forms | ubread = 34 (0x22) | ||
| · Stack | ..., pointer => ..., value | ||
| · Description | Pop pointer from the stack as type
ptr. Read the 8 bit value at pointer in
memory, zero-extend it to int32 and push it onto
the stack. |
| usread | |||
| · Operation | Read uint16 from pointer | ||
| · Format |
| ||
| · Direct Format |
| ||
| · Forms | usread = 36 (0x24) | ||
| · Stack | ..., pointer => ..., value | ||
| · Description | Pop pointer from the stack as type
ptr. Read the 16 bit value at pointer in
memory, zero-extend it to int32 and push it onto
the stack. |
Copyright © Southern
Storm Software Pty Ltd 2002
Licensed under GNU FDL