Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Four 32-bit address registers, P0, P1, P2, P3
- All extra instructions use the mask: ........fff1100f
- ------------------- Load/store offset by small constant
- SETB R, [Px+n] : load 8-bit zero extend
- 1100
- rrra annn 000 0
- Register r = [Address register a + n] zero extended
- SETS R, [Px+n] : load 8-bit sign extend
- 1100
- rrra annn 000 1
- Register r = [Address register a + n] sign extended
- SET R, [Px+n] : load 16-bit
- 1100
- rrra annn 001 0
- Register r = [Address register a + n*2]
- SETB [Px+n], R : store 8-bit
- SETS [Px+n], R : store 8-bit
- 1100
- rrra annn 001 1
- [Address register a + n] = Register r
- SET [Px+n], R : store 16-bit
- 1100
- rrra annn 010 0
- [Address register a + n*2] = Register r
- ------------------- Load/store offset by register
- SETB R, [Px+r] : load 8-bit zero extend
- 1100
- rrra aRRR 010 1
- Register r = [Address register a + Register R] zero extended
- SETS R, [Px+r] : load 8-bit sign extend
- 1100
- rrra aRRR 011 0
- Register r = [Address register a + Register R] sign extended
- SET R, [Px+r] : load 16-bit
- 1100
- rrra aRRR 011 1
- Register r = [Address register a + Register R]
- SETB [Px+r], R : store 8-bit
- SETS [Px+r], R : store 8-bit
- 1100
- rrra aRRR 100 0
- [Address register a + Register R] = Register r
- SET [Px+r], R : store 16-bit
- 1100
- rrra aRRR 100 1
- [Address register a + Register R] = Register r
- -------------------
- ADD Px, n : Add small constant to address register
- SUB Px, n : Subtract small constant from address register
- 1100
- aann nnnn 101 0
- Address register a += sign extended N
- B
- C
- D
- E
- -------------------
- SET PxL, R : Load low half of address register with register
- 1100
- 000a aRRR 111 1
- SET PxH, R: Load high half of address register with register
- 1100
- 001a aRRR 111 1
- ADD Px, R : Add register to address register
- 1100
- 010a aRRR 111 1
- SUB Px, R : Subtract register from address register
- 1100
- 011a aRRR 111 1
- 1100
- 100a aRRR 111 1
- 1100
- 101a aRRR 111 1
- 1100
- 110a aRRR 111 1
- ------------------- No-operand address register operations
- SET PUSH, Px : Push address register
- 111 1100
- a a000 111 1
- Pushes an address register to the stack
- SET Px, POP : Pop address register
- 111 1100
- a a001 111 1
- Pops an address register from the stack
- SET Px, constant : Load a 32-bit constant
- 111 1100
- a a010 111 1 nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn
- Px = a constant
- SET Px, [word] : Load address register from memory
- 111 1100
- a a011 111 1 nnnnnnnn nnnnnnnn
- Px = [word]
- SET [word], Px : Store address register to memory
- 111 1100
- a a100 111 1 nnnnnnnn nnnnnnnn
- [word] = Px
- 111 1100
- a a101 111 1
- 111 1100
- a a110 111 1
- 111 1100
- a a111 111 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement