|
| Previous: 4.12 Predicates | TOC | Index | Back | Next: 4.14 Flow Control |
| 0x0039 | DEREF | - | DEREFerence word |
|---|
Remove two values S0 and S1, load a machine word from memory[S1/BPW+S0], zero-extend it, and push it. See also NORM.
| 0x003A | DREFB | - | DeREFerence Byte |
|---|
Remove two values S0 and S1, load a single byte from memory::(S1+S0), zero-extend it, and push it. See also NORMB.
| 0xA030 | LDG | A | - | LoaD Global |
|---|
Push the value stored in the memory cell with the address A: memory[A/BPW].
| 0xA031 | LDGV | A | - | LoaD Global Vector |
|---|
Push the address A.
| 0xA034 | LDI | N | - | LoaD Instance variable |
|---|
Push the value located at memory[(SELF/BPW)+N]. This instruction is used to load the content of an instance variable. N specifies the offset of the variable relative to the beginning of the object's data area.
| 0xA035 | LDIV | N | - | LoaD Instance Vector |
|---|
Push the address SELF+N*BPW. This instruction is used to load the address of an instance variable. N specifies the offset of the variable relative to the beginning of the object's data area.
| 0xA032 | LDL | N | - | LoaD Local |
|---|
Push the value stored at the N'th position `below' the stack frame base. The address of the cell is computed as follows:
FP - N*BPW
Consequently, negative values of N may be used to access locations `above' the frame base.
| 0xA036 | LDLAB | N | - | LoaD LABel |
|---|
Push the address A. This instruction is similar to LDGV, but more general. It may also be used to reference procedures.
| 0xA033 | LDLV | N | - | LoaD Local Vector |
|---|
Push the absolute address of a local object. N specifies the offset of the object relative to the stack frame base. The absolute address is computed using the formula FP - N*BPW.
| 0x003B | NORM | - | NORMalize reference |
|---|
Remove two elements S0 and S1 and compute the absolute address of the S0'th member of the vector pointed to by S1: S1 + S0*BPW. Push the computed address. This instruction converts a pointer/offset pair into a pure pointer which references the same location.
| 0x003C | NORMB | - | NORMalize Byte reference |
|---|
Remove two elements S0 and S1 and compute the absolute address of the S0'th byte of the vector pointed to by S1 (S0+S1). Push the computed address. This instruction converts a pointer/offset pair into a pure pointer which references the same location.
| 0xA037 | NUM | N | - | load NUMber |
|---|
Push the value N.
| 0xA03D | SAVG | A | - | SAVe Global |
|---|
Pop one element and save it in the memory cell with the address A: memory[A/BPW] := S0.
| 0xA03F | SAVI | N | - | SAVe Instance variable |
|---|
Pop one element and save it in the memory cell
memory[(SELF/BPW)+N]
This instruction is used to alter the state of an instance variable. N specifies the offset of the variable relative to the beginning of the object's data area.
| 0xA03E | SAVL | N | - | SAVe Local |
|---|
Pop one element and save it in the storage cell with the address FP-N*BPW. See also LDL.
| 0x0038 | SELF | - | SELF reference |
|---|
Push the content of the SELF register on the stack.
| 0x0041 | STORB | - | STORe Byte |
|---|
Pop two elements S0 and S1 and store the least significant 8 bits of S0 in the byte pointed to by S1: memory::S1 := S0.
| 0x0040 | STORE | - | STORE word |
|---|
Pop two elements S0 and S1 and store the value S0 in the memory cell pointed to by S1: memory[S1/BPW] := S0.
| Previous: 4.12 Predicates | TOC | Index | Back | Next: 4.14 Flow Control |