Home » Archimedes archive » Acorn User » AU 1995-10.adf » !CHelp » CHelp/!StrongHlp/HelpData/Assembly

CHelp/!StrongHlp/HelpData/Assembly

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Acorn User » AU 1995-10.adf » !CHelp
Filename: CHelp/!StrongHlp/HelpData/Assembly
Read OK:
File size: 0C34 bytes
Load address: 0000
Exec address: 0000
File contents
HELP(�����,����$DIR$��$F���z	%!RootLE�������condF����{�Op2�E���7���nPC@	F����[wRd�	F���$p�Rn@
F���tk�S�
F����8?AShiftDATA%Instructions :
#wrap off
#tab
ADC	Add with Carry		MUL	Multiply
ADD	Add			MVN	Move Negative
AND	And			ORR	Inclusive OR
B	Branch			RSB	Reverse Subtract
BIC	Bit Clear		RSC	Reverse Subtract with Carry
CMN	Compare Negative	SBC	Subtract with Carry
CMP	Compare			STM	Store Multiple
EOR	Exlusive OR		STR	Store Register
LDM	Load Multiple		SUB	Subtract
LDR	Load Register		SWI	Software Interrupt
MLA	Multiply with Accumulate	TEQ	Test for Equality
MOV	Move			TST	Test Masked
#tab
   <Condition codes=>cond>      <S suffix=>S>     < Rd >  < Rn >  < Op2 >DATA�Condition codes
All instructions are conditionally executed. If the condition in the top four bits of the instruction is not met, then even illegal instructions will have no effect...

#wrap off; tab
Condition field	 	 	Execute IF
#Line
  0000	EQ	:	 Z		(equal)
  0001	NE	:	~Z		(not equal)
  0010	CS	:	 C		(unsigned higher or same)
  0011	CC	:	~C		(unsigned lower)
  0100	MI	:	 N		(negative)
  0101	PL	:	~N		(positive or zero)
  0110	VS	:	 V		(overflow)
  0111	VC	:	~V		(no overflow)
  1000	HI	:	 C and ~Z	(unsigned higher)
  1001	LS	:	~C or Z		(unsigned lower or same)
  1010	GE	:	 N = V		(signed higher or same)
  1011	LT	:	 N != V		(signed lower)
  1100	GT	:	~Z and (N = V)	(signed higher)
  1101	LE	:	 Z or (N != V)	(signed lower or same)
  1110	AL	:	 1		(always)
  1111	NV	:	 0		(never)
#tab; wrap nojoin

( 1 is true, 0 is false, ~ is NOT )

Note: The NV code shouldn't be used anymore. If you want a no-op, you should use something like MOV R0,R0DATA�Op2
This can take several forms :
   -	Reg
   -	Reg <shift> #constant
   -	Reg <shift> Reg
	(Note: This takes an extra clock cycle)
   -	#constant
	( of the form Byte ROR n*2, n is 0..15 )DATAnR15
  3         2         1
 10987654321098765432109876543210
%NZCOIF....program.counter.....MM
                               00 = User mode
      FIRQ Disable             01 = FIRQ mode
     IRQ Disable               10 = IRQ mode
    Overflow                   11 = Supervisor mode
   Carry / Not borrow / Rotate Extend
  Zero
 Negative / Signed less thanDATAwRd
Rd can be any of the registers from R0 to R15. If Rd = R15 then only the PC bits will be set, not the flags.DATA�Rn
Rn can be any of the registers from R0 to R15. If Rn = R15 then only the PC bits are used. The flag bits will appear cleared.DATA�S
Flags will only be updated if this is present. The S flag is implicit in CMP, CMN, TEQ and TST

  SUBS R1,R1,R2		;
  ADD  R1,R1,R3		; 
  Beq  xxx		; jump if R1-R2 = 0DATAAShift
The shift types are :
  LSL	Logical Shift Left
  LSR	Logical Shift Right
  ASR	Arithmetic Shift Right
  ROR	ROtate Right
  RRX	Rotate Right eXtended

RRX is special. It is a rotate by one, where bit 31 = old carry and new carry = old bit 0.

For all shifts the carry flag is set to the last bit shifted out.
00000000  48 45 4c 50 28 00 00 00  c9 00 00 00 ff ff ff ff  |HELP(...........|
00000010  2c 00 00 00 00 fd ff ff  00 00 00 00 f0 00 00 00  |,...............|
00000020  00 01 00 00 00 00 00 00  24 00 00 00 44 49 52 24  |........$...DIR$|
00000030  f8 00 00 00 f8 00 00 00  24 01 00 00 46 fd ff ff  |........$...F...|
00000040  7a 03 09 00 25 02 00 00  13 00 00 00 00 00 00 00  |z...%...........|
00000050  21 52 6f 6f 74 00 00 00  4c 03 00 00 45 fd ff ff  |!Root...L...E...|
00000060  f8 b3 dd ff c0 03 00 00  13 00 00 00 00 00 00 00  |................|
00000070  63 6f 6e 64 00 00 00 00  0c 07 00 00 46 fd ff ff  |cond........F...|
00000080  85 7b 08 00 c4 00 00 00  13 00 00 00 00 00 00 00  |.{..............|
00000090  4f 70 32 00 d0 07 00 00  45 fd ff ff 37 9d e8 df  |Op2.....E...7...|
000000a0  6e 01 00 00 13 00 00 00  00 00 00 00 50 43 00 00  |n...........PC..|
000000b0  40 09 00 00 46 fd ff ff  b0 5b 08 00 77 00 00 00  |@...F....[..w...|
000000c0  13 00 00 00 00 00 00 00  52 64 00 00 b8 09 00 00  |........Rd......|
000000d0  46 fd ff ff 24 70 08 00  88 00 00 00 13 00 00 00  |F...$p..........|
000000e0  00 00 00 00 52 6e 00 00  40 0a 00 00 46 fd ff ff  |....Rn..@...F...|
000000f0  74 6b 08 00 b0 00 00 00  13 00 00 00 00 00 00 00  |tk..............|
00000100  53 00 00 00 f0 0a 00 00  46 fd ff ff d1 38 3f 03  |S.......F....8?.|
00000110  41 01 00 00 13 00 00 00  00 00 00 00 53 68 69 66  |A...........Shif|
00000120  74 00 00 00 44 41 54 41  25 02 00 00 49 6e 73 74  |t...DATA%...Inst|
00000130  72 75 63 74 69 6f 6e 73  20 3a 0a 23 77 72 61 70  |ructions :.#wrap|
00000140  20 6f 66 66 0a 23 74 61  62 0a 41 44 43 09 41 64  | off.#tab.ADC.Ad|
00000150  64 20 77 69 74 68 20 43  61 72 72 79 09 09 4d 55  |d with Carry..MU|
00000160  4c 09 4d 75 6c 74 69 70  6c 79 0a 41 44 44 09 41  |L.Multiply.ADD.A|
00000170  64 64 09 09 09 4d 56 4e  09 4d 6f 76 65 20 4e 65  |dd...MVN.Move Ne|
00000180  67 61 74 69 76 65 0a 41  4e 44 09 41 6e 64 09 09  |gative.AND.And..|
00000190  09 4f 52 52 09 49 6e 63  6c 75 73 69 76 65 20 4f  |.ORR.Inclusive O|
000001a0  52 0a 42 09 42 72 61 6e  63 68 09 09 09 52 53 42  |R.B.Branch...RSB|
000001b0  09 52 65 76 65 72 73 65  20 53 75 62 74 72 61 63  |.Reverse Subtrac|
000001c0  74 0a 42 49 43 09 42 69  74 20 43 6c 65 61 72 09  |t.BIC.Bit Clear.|
000001d0  09 52 53 43 09 52 65 76  65 72 73 65 20 53 75 62  |.RSC.Reverse Sub|
000001e0  74 72 61 63 74 20 77 69  74 68 20 43 61 72 72 79  |tract with Carry|
000001f0  0a 43 4d 4e 09 43 6f 6d  70 61 72 65 20 4e 65 67  |.CMN.Compare Neg|
00000200  61 74 69 76 65 09 53 42  43 09 53 75 62 74 72 61  |ative.SBC.Subtra|
00000210  63 74 20 77 69 74 68 20  43 61 72 72 79 0a 43 4d  |ct with Carry.CM|
00000220  50 09 43 6f 6d 70 61 72  65 09 09 09 53 54 4d 09  |P.Compare...STM.|
00000230  53 74 6f 72 65 20 4d 75  6c 74 69 70 6c 65 0a 45  |Store Multiple.E|
00000240  4f 52 09 45 78 6c 75 73  69 76 65 20 4f 52 09 09  |OR.Exlusive OR..|
00000250  53 54 52 09 53 74 6f 72  65 20 52 65 67 69 73 74  |STR.Store Regist|
00000260  65 72 0a 4c 44 4d 09 4c  6f 61 64 20 4d 75 6c 74  |er.LDM.Load Mult|
00000270  69 70 6c 65 09 09 53 55  42 09 53 75 62 74 72 61  |iple..SUB.Subtra|
00000280  63 74 0a 4c 44 52 09 4c  6f 61 64 20 52 65 67 69  |ct.LDR.Load Regi|
00000290  73 74 65 72 09 09 53 57  49 09 53 6f 66 74 77 61  |ster..SWI.Softwa|
000002a0  72 65 20 49 6e 74 65 72  72 75 70 74 0a 4d 4c 41  |re Interrupt.MLA|
000002b0  09 4d 75 6c 74 69 70 6c  79 20 77 69 74 68 20 41  |.Multiply with A|
000002c0  63 63 75 6d 75 6c 61 74  65 09 54 45 51 09 54 65  |ccumulate.TEQ.Te|
000002d0  73 74 20 66 6f 72 20 45  71 75 61 6c 69 74 79 0a  |st for Equality.|
000002e0  4d 4f 56 09 4d 6f 76 65  09 09 09 54 53 54 09 54  |MOV.Move...TST.T|
000002f0  65 73 74 20 4d 61 73 6b  65 64 0a 23 74 61 62 0a  |est Masked.#tab.|
00000300  20 20 20 3c 43 6f 6e 64  69 74 69 6f 6e 20 63 6f  |   <Condition co|
00000310  64 65 73 3d 3e 63 6f 6e  64 3e 20 20 20 20 20 20  |des=>cond>      |
00000320  3c 53 20 73 75 66 66 69  78 3d 3e 53 3e 20 20 20  |<S suffix=>S>   |
00000330  20 20 3c 20 52 64 20 3e  20 20 3c 20 52 6e 20 3e  |  < Rd >  < Rn >|
00000340  20 20 3c 20 4f 70 32 20  3e 00 00 00 44 41 54 41  |  < Op2 >...DATA|
00000350  c0 03 00 00 43 6f 6e 64  69 74 69 6f 6e 20 63 6f  |....Condition co|
00000360  64 65 73 0a 41 6c 6c 20  69 6e 73 74 72 75 63 74  |des.All instruct|
00000370  69 6f 6e 73 20 61 72 65  20 63 6f 6e 64 69 74 69  |ions are conditi|
00000380  6f 6e 61 6c 6c 79 20 65  78 65 63 75 74 65 64 2e  |onally executed.|
00000390  20 49 66 20 74 68 65 20  63 6f 6e 64 69 74 69 6f  | If the conditio|
000003a0  6e 20 69 6e 20 74 68 65  20 74 6f 70 20 66 6f 75  |n in the top fou|
000003b0  72 20 62 69 74 73 20 6f  66 20 74 68 65 20 69 6e  |r bits of the in|
000003c0  73 74 72 75 63 74 69 6f  6e 20 69 73 20 6e 6f 74  |struction is not|
000003d0  20 6d 65 74 2c 20 74 68  65 6e 20 65 76 65 6e 20  | met, then even |
000003e0  69 6c 6c 65 67 61 6c 20  69 6e 73 74 72 75 63 74  |illegal instruct|
000003f0  69 6f 6e 73 20 77 69 6c  6c 20 68 61 76 65 20 6e  |ions will have n|
00000400  6f 20 65 66 66 65 63 74  2e 2e 2e 0a 0a 23 77 72  |o effect.....#wr|
00000410  61 70 20 6f 66 66 3b 20  74 61 62 0a 43 6f 6e 64  |ap off; tab.Cond|
00000420  69 74 69 6f 6e 20 66 69  65 6c 64 09 20 09 20 09  |ition field. . .|
00000430  45 78 65 63 75 74 65 20  49 46 0a 23 4c 69 6e 65  |Execute IF.#Line|
00000440  0a 20 20 30 30 30 30 09  45 51 09 3a 09 20 5a 09  |.  0000.EQ.:. Z.|
00000450  09 28 65 71 75 61 6c 29  0a 20 20 30 30 30 31 09  |.(equal).  0001.|
00000460  4e 45 09 3a 09 7e 5a 09  09 28 6e 6f 74 20 65 71  |NE.:.~Z..(not eq|
00000470  75 61 6c 29 0a 20 20 30  30 31 30 09 43 53 09 3a  |ual).  0010.CS.:|
00000480  09 20 43 09 09 28 75 6e  73 69 67 6e 65 64 20 68  |. C..(unsigned h|
00000490  69 67 68 65 72 20 6f 72  20 73 61 6d 65 29 0a 20  |igher or same). |
000004a0  20 30 30 31 31 09 43 43  09 3a 09 7e 43 09 09 28  | 0011.CC.:.~C..(|
000004b0  75 6e 73 69 67 6e 65 64  20 6c 6f 77 65 72 29 0a  |unsigned lower).|
000004c0  20 20 30 31 30 30 09 4d  49 09 3a 09 20 4e 09 09  |  0100.MI.:. N..|
000004d0  28 6e 65 67 61 74 69 76  65 29 0a 20 20 30 31 30  |(negative).  010|
000004e0  31 09 50 4c 09 3a 09 7e  4e 09 09 28 70 6f 73 69  |1.PL.:.~N..(posi|
000004f0  74 69 76 65 20 6f 72 20  7a 65 72 6f 29 0a 20 20  |tive or zero).  |
00000500  30 31 31 30 09 56 53 09  3a 09 20 56 09 09 28 6f  |0110.VS.:. V..(o|
00000510  76 65 72 66 6c 6f 77 29  0a 20 20 30 31 31 31 09  |verflow).  0111.|
00000520  56 43 09 3a 09 7e 56 09  09 28 6e 6f 20 6f 76 65  |VC.:.~V..(no ove|
00000530  72 66 6c 6f 77 29 0a 20  20 31 30 30 30 09 48 49  |rflow).  1000.HI|
00000540  09 3a 09 20 43 20 61 6e  64 20 7e 5a 09 28 75 6e  |.:. C and ~Z.(un|
00000550  73 69 67 6e 65 64 20 68  69 67 68 65 72 29 0a 20  |signed higher). |
00000560  20 31 30 30 31 09 4c 53  09 3a 09 7e 43 20 6f 72  | 1001.LS.:.~C or|
00000570  20 5a 09 09 28 75 6e 73  69 67 6e 65 64 20 6c 6f  | Z..(unsigned lo|
00000580  77 65 72 20 6f 72 20 73  61 6d 65 29 0a 20 20 31  |wer or same).  1|
00000590  30 31 30 09 47 45 09 3a  09 20 4e 20 3d 20 56 09  |010.GE.:. N = V.|
000005a0  09 28 73 69 67 6e 65 64  20 68 69 67 68 65 72 20  |.(signed higher |
000005b0  6f 72 20 73 61 6d 65 29  0a 20 20 31 30 31 31 09  |or same).  1011.|
000005c0  4c 54 09 3a 09 20 4e 20  21 3d 20 56 09 09 28 73  |LT.:. N != V..(s|
000005d0  69 67 6e 65 64 20 6c 6f  77 65 72 29 0a 20 20 31  |igned lower).  1|
000005e0  31 30 30 09 47 54 09 3a  09 7e 5a 20 61 6e 64 20  |100.GT.:.~Z and |
000005f0  28 4e 20 3d 20 56 29 09  28 73 69 67 6e 65 64 20  |(N = V).(signed |
00000600  68 69 67 68 65 72 29 0a  20 20 31 31 30 31 09 4c  |higher).  1101.L|
00000610  45 09 3a 09 20 5a 20 6f  72 20 28 4e 20 21 3d 20  |E.:. Z or (N != |
00000620  56 29 09 28 73 69 67 6e  65 64 20 6c 6f 77 65 72  |V).(signed lower|
00000630  20 6f 72 20 73 61 6d 65  29 0a 20 20 31 31 31 30  | or same).  1110|
00000640  09 41 4c 09 3a 09 20 31  09 09 28 61 6c 77 61 79  |.AL.:. 1..(alway|
00000650  73 29 0a 20 20 31 31 31  31 09 4e 56 09 3a 09 20  |s).  1111.NV.:. |
00000660  30 09 09 28 6e 65 76 65  72 29 0a 23 74 61 62 3b  |0..(never).#tab;|
00000670  20 77 72 61 70 20 6e 6f  6a 6f 69 6e 0a 0a 28 20  | wrap nojoin..( |
00000680  31 20 69 73 20 74 72 75  65 2c 20 30 20 69 73 20  |1 is true, 0 is |
00000690  66 61 6c 73 65 2c 20 7e  20 69 73 20 4e 4f 54 20  |false, ~ is NOT |
000006a0  29 0a 0a 4e 6f 74 65 3a  20 54 68 65 20 4e 56 20  |)..Note: The NV |
000006b0  63 6f 64 65 20 73 68 6f  75 6c 64 6e 27 74 20 62  |code shouldn't b|
000006c0  65 20 75 73 65 64 20 61  6e 79 6d 6f 72 65 2e 20  |e used anymore. |
000006d0  49 66 20 79 6f 75 20 77  61 6e 74 20 61 20 6e 6f  |If you want a no|
000006e0  2d 6f 70 2c 20 79 6f 75  20 73 68 6f 75 6c 64 20  |-op, you should |
000006f0  75 73 65 20 73 6f 6d 65  74 68 69 6e 67 20 6c 69  |use something li|
00000700  6b 65 20 4d 4f 56 20 52  30 2c 52 30 44 41 54 41  |ke MOV R0,R0DATA|
00000710  c4 00 00 00 4f 70 32 0a  54 68 69 73 20 63 61 6e  |....Op2.This can|
00000720  20 74 61 6b 65 20 73 65  76 65 72 61 6c 20 66 6f  | take several fo|
00000730  72 6d 73 20 3a 0a 20 20  20 2d 09 52 65 67 0a 20  |rms :.   -.Reg. |
00000740  20 20 2d 09 52 65 67 20  3c 73 68 69 66 74 3e 20  |  -.Reg <shift> |
00000750  23 63 6f 6e 73 74 61 6e  74 0a 20 20 20 2d 09 52  |#constant.   -.R|
00000760  65 67 20 3c 73 68 69 66  74 3e 20 52 65 67 0a 09  |eg <shift> Reg..|
00000770  28 4e 6f 74 65 3a 20 54  68 69 73 20 74 61 6b 65  |(Note: This take|
00000780  73 20 61 6e 20 65 78 74  72 61 20 63 6c 6f 63 6b  |s an extra clock|
00000790  20 63 79 63 6c 65 29 0a  20 20 20 2d 09 23 63 6f  | cycle).   -.#co|
000007a0  6e 73 74 61 6e 74 0a 09  28 20 6f 66 20 74 68 65  |nstant..( of the|
000007b0  20 66 6f 72 6d 20 42 79  74 65 20 52 4f 52 20 6e  | form Byte ROR n|
000007c0  2a 32 2c 20 6e 20 69 73  20 30 2e 2e 31 35 20 29  |*2, n is 0..15 )|
000007d0  44 41 54 41 6e 01 00 00  52 31 35 0a 20 20 33 20  |DATAn...R15.  3 |
000007e0  20 20 20 20 20 20 20 20  32 20 20 20 20 20 20 20  |        2       |
000007f0  20 20 31 0a 20 31 30 39  38 37 36 35 34 33 32 31  |  1. 10987654321|
00000800  30 39 38 37 36 35 34 33  32 31 30 39 38 37 36 35  |0987654321098765|
00000810  34 33 32 31 30 0a 25 4e  5a 43 4f 49 46 2e 2e 2e  |43210.%NZCOIF...|
00000820  2e 70 72 6f 67 72 61 6d  2e 63 6f 75 6e 74 65 72  |.program.counter|
00000830  2e 2e 2e 2e 2e 4d 4d 0a  20 20 20 20 20 20 20 20  |.....MM.        |
00000840  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000850  20 20 20 20 20 20 20 30  30 20 3d 20 55 73 65 72  |       00 = User|
00000860  20 6d 6f 64 65 0a 20 20  20 20 20 20 46 49 52 51  | mode.      FIRQ|
00000870  20 44 69 73 61 62 6c 65  20 20 20 20 20 20 20 20  | Disable        |
00000880  20 20 20 20 20 30 31 20  3d 20 46 49 52 51 20 6d  |     01 = FIRQ m|
00000890  6f 64 65 0a 20 20 20 20  20 49 52 51 20 44 69 73  |ode.     IRQ Dis|
000008a0  61 62 6c 65 20 20 20 20  20 20 20 20 20 20 20 20  |able            |
000008b0  20 20 20 31 30 20 3d 20  49 52 51 20 6d 6f 64 65  |   10 = IRQ mode|
000008c0  0a 20 20 20 20 4f 76 65  72 66 6c 6f 77 20 20 20  |.    Overflow   |
000008d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000008e0  31 31 20 3d 20 53 75 70  65 72 76 69 73 6f 72 20  |11 = Supervisor |
000008f0  6d 6f 64 65 0a 20 20 20  43 61 72 72 79 20 2f 20  |mode.   Carry / |
00000900  4e 6f 74 20 62 6f 72 72  6f 77 20 2f 20 52 6f 74  |Not borrow / Rot|
00000910  61 74 65 20 45 78 74 65  6e 64 0a 20 20 5a 65 72  |ate Extend.  Zer|
00000920  6f 0a 20 4e 65 67 61 74  69 76 65 20 2f 20 53 69  |o. Negative / Si|
00000930  67 6e 65 64 20 6c 65 73  73 20 74 68 61 6e 00 00  |gned less than..|
00000940  44 41 54 41 77 00 00 00  52 64 0a 52 64 20 63 61  |DATAw...Rd.Rd ca|
00000950  6e 20 62 65 20 61 6e 79  20 6f 66 20 74 68 65 20  |n be any of the |
00000960  72 65 67 69 73 74 65 72  73 20 66 72 6f 6d 20 52  |registers from R|
00000970  30 20 74 6f 20 52 31 35  2e 20 49 66 20 52 64 20  |0 to R15. If Rd |
00000980  3d 20 52 31 35 20 74 68  65 6e 20 6f 6e 6c 79 20  |= R15 then only |
00000990  74 68 65 20 50 43 20 62  69 74 73 20 77 69 6c 6c  |the PC bits will|
000009a0  20 62 65 20 73 65 74 2c  20 6e 6f 74 20 74 68 65  | be set, not the|
000009b0  20 66 6c 61 67 73 2e 00  44 41 54 41 88 00 00 00  | flags..DATA....|
000009c0  52 6e 0a 52 6e 20 63 61  6e 20 62 65 20 61 6e 79  |Rn.Rn can be any|
000009d0  20 6f 66 20 74 68 65 20  72 65 67 69 73 74 65 72  | of the register|
000009e0  73 20 66 72 6f 6d 20 52  30 20 74 6f 20 52 31 35  |s from R0 to R15|
000009f0  2e 20 49 66 20 52 6e 20  3d 20 52 31 35 20 74 68  |. If Rn = R15 th|
00000a00  65 6e 20 6f 6e 6c 79 20  74 68 65 20 50 43 20 62  |en only the PC b|
00000a10  69 74 73 20 61 72 65 20  75 73 65 64 2e 20 54 68  |its are used. Th|
00000a20  65 20 66 6c 61 67 20 62  69 74 73 20 77 69 6c 6c  |e flag bits will|
00000a30  20 61 70 70 65 61 72 20  63 6c 65 61 72 65 64 2e  | appear cleared.|
00000a40  44 41 54 41 b0 00 00 00  53 0a 46 6c 61 67 73 20  |DATA....S.Flags |
00000a50  77 69 6c 6c 20 6f 6e 6c  79 20 62 65 20 75 70 64  |will only be upd|
00000a60  61 74 65 64 20 69 66 20  74 68 69 73 20 69 73 20  |ated if this is |
00000a70  70 72 65 73 65 6e 74 2e  20 54 68 65 20 53 20 66  |present. The S f|
00000a80  6c 61 67 20 69 73 20 69  6d 70 6c 69 63 69 74 20  |lag is implicit |
00000a90  69 6e 20 43 4d 50 2c 20  43 4d 4e 2c 20 54 45 51  |in CMP, CMN, TEQ|
00000aa0  20 61 6e 64 20 54 53 54  0a 0a 20 20 53 55 42 53  | and TST..  SUBS|
00000ab0  20 52 31 2c 52 31 2c 52  32 09 09 3b 0a 20 20 41  | R1,R1,R2..;.  A|
00000ac0  44 44 20 20 52 31 2c 52  31 2c 52 33 09 09 3b 20  |DD  R1,R1,R3..; |
00000ad0  0a 20 20 42 65 71 20 20  78 78 78 09 09 3b 20 6a  |.  Beq  xxx..; j|
00000ae0  75 6d 70 20 69 66 20 52  31 2d 52 32 20 3d 20 30  |ump if R1-R2 = 0|
00000af0  44 41 54 41 41 01 00 00  53 68 69 66 74 0a 54 68  |DATAA...Shift.Th|
00000b00  65 20 73 68 69 66 74 20  74 79 70 65 73 20 61 72  |e shift types ar|
00000b10  65 20 3a 0a 20 20 4c 53  4c 09 4c 6f 67 69 63 61  |e :.  LSL.Logica|
00000b20  6c 20 53 68 69 66 74 20  4c 65 66 74 0a 20 20 4c  |l Shift Left.  L|
00000b30  53 52 09 4c 6f 67 69 63  61 6c 20 53 68 69 66 74  |SR.Logical Shift|
00000b40  20 52 69 67 68 74 0a 20  20 41 53 52 09 41 72 69  | Right.  ASR.Ari|
00000b50  74 68 6d 65 74 69 63 20  53 68 69 66 74 20 52 69  |thmetic Shift Ri|
00000b60  67 68 74 0a 20 20 52 4f  52 09 52 4f 74 61 74 65  |ght.  ROR.ROtate|
00000b70  20 52 69 67 68 74 0a 20  20 52 52 58 09 52 6f 74  | Right.  RRX.Rot|
00000b80  61 74 65 20 52 69 67 68  74 20 65 58 74 65 6e 64  |ate Right eXtend|
00000b90  65 64 0a 0a 52 52 58 20  69 73 20 73 70 65 63 69  |ed..RRX is speci|
00000ba0  61 6c 2e 20 49 74 20 69  73 20 61 20 72 6f 74 61  |al. It is a rota|
00000bb0  74 65 20 62 79 20 6f 6e  65 2c 20 77 68 65 72 65  |te by one, where|
00000bc0  20 62 69 74 20 33 31 20  3d 20 6f 6c 64 20 63 61  | bit 31 = old ca|
00000bd0  72 72 79 20 61 6e 64 20  6e 65 77 20 63 61 72 72  |rry and new carr|
00000be0  79 20 3d 20 6f 6c 64 20  62 69 74 20 30 2e 0a 0a  |y = old bit 0...|
00000bf0  46 6f 72 20 61 6c 6c 20  73 68 69 66 74 73 20 74  |For all shifts t|
00000c00  68 65 20 63 61 72 72 79  20 66 6c 61 67 20 69 73  |he carry flag is|
00000c10  20 73 65 74 20 74 6f 20  74 68 65 20 6c 61 73 74  | set to the last|
00000c20  20 62 69 74 20 73 68 69  66 74 65 64 20 6f 75 74  | bit shifted out|
00000c30  2e 00 00 00                                       |....|
00000c34