•  Back 
  •  %main 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  %main 
  •  Show info about hypertext 
  •  View a new file 
Topic       : MC68030 - Instruction Assembler Syntax
Author      : Bjørn Ove Årthun/Jiri Kucik
Version     : mc68030.hyp 0.01 (29/02/96)
Subject     : Programming/Others
Nodes       : 120
Index Size  : 2440
HCP-Version : 2
Compiled on : Atari
@charset    : atarist
@lang       : 
@default    : 
@help       : %main
@options    : +g -i -s +z
@width      : 75
View Ref-FileNAME      SUBI -- Subtract immediate

SYNOPSIS  SUBI      #<data>,<ea>

          Size = (Byte, Word, Long)

FUNCTION  Subtracts the immediate data to the destination operand, and
          stores the result in the destination location. The size of the
          operation may be specified as byte, word, or long.
          The size of the immediate data matches the operation size.

FORMAT                                                      <ea>
          ----------------------------------------=========================
          |15 |14 |13 |12 |11 |10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
          |---|---|---|---|---|---|---|---|-------|-----------|-----------|
          | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | SIZE  |   MODE    |  REGISTER |
          |---------------------------------------------------------------|
          | 16 BITS DATA (with last Byte) |          8 BITS DATA          |
          |---------------------------------------------------------------|
          |             32 BITS DATA (included last Word)                 |
          -----------------------------------------------------------------

SIZE      00->one Byte operation
          01->one Word operation
          10->one Long operation

REGISTER  <ea> is always destination, addressing modes are the following:
          --------------------------------- -------------------------------
          |Addressing Mode|Mode| Register | |Addressing Mode|Mode|Register|
          |-------------------------------| |-----------------------------|
          |      Dn       |000 |Nã reg. Dn| |    Abs.W      |111 |  000   |
          |-------------------------------| |-----------------------------|
          |      An       | -  |     -    | |    Abs.L      |111 |  001   |
          |-------------------------------| |-----------------------------|
          |     (An)      |010 |Nã reg. An| |   (d16,PC)    | -  |   -    |
          |-------------------------------| |-----------------------------|
          |     (An)+     |011 |Nã reg. An| |   (d8,PC,Xi)  | -  |   -    |
          |-------------------------------| |-----------------------------|
          |    -(An)      |100 |Nã reg. An| |   (bd,PC,Xi)  | -  |   -    |
          |-------------------------------| |-----------------------------|
          |    (d16,An)   |101 |Nã reg. An| |([bd,PC,Xi],od)| -  |   -    |
          |-------------------------------| |-----------------------------|
          |   (d8,An,Xi)  |110 |Nã reg. An| |([bd,PC],Xi,od)| -  |   -    |
          |-------------------------------| |-----------------------------|
          |   (bd,An,Xi)  |110 |Nã reg. An| |    #data      | -  |   -    |
          |-------------------------------| -------------------------------
          |([bd,An,Xi]od) |110 |Nã reg. An|
          |-------------------------------|
          |([bd,An],Xi,od)|110 |Nã reg. An|
          ---------------------------------

RESULT    X - Set the same as the carry bit.
          N - Set if the result is negative. Cleared otherwise.
          Z - Set if the result is zero. Cleared otherwise.
          V - Set if an overflow is generated. Cleared otherwise.
          C - Set if a carry is generated. Cleared otherwise.