Subtracts the contents of Rs2 from contents of Rs1,
and moves the result to Rd according to BS (bank
select). Instruction is stack conditioned.
Takes 5 cycles to execute.
Example: ISUB 0xA3 3 0xA0 0xA1
MPC BS3 C3 P3 P1 P0
---------------------
ISUB 0 0 00 A1 A0
- 0 0 00 00 00
- 0 0 00 00 00
- 0 0 00 00 00
- 3 0 A3 00 00
No exceptions.
ISUB 0x20 0 0x22 0x21 ! Subtract content of register 0x21
! from content of register 0x22 and
! don't write the result to
! register file
ISUB 0x20 1 0x22 0x21 ! Subtract content of low bank of
! registers 0x21 from content of
! low bank of register 0x22 and move
! the result in low bank of
! register 0x20
ISUB 0x20 2 0x22 0x21 ! Subtract content of high bank of
! registers 0x21 from content of
! high bank of register 0x22 and move
! the result in high bank of
! register 0x20
IADD 0x20 3 0x22 0x21 ! Subtract content of register 0x21
! from content of register 0x22 and
! move result to register 0x20