Pages created and updated by 
Terry Sturtevant 
	 Date Posted: 
	 
	 May 12, 2017
	 
	 
| Subroutine | Max Cyles | Program Memory | Multiply | |||
| Multiplicand | Multiplier | Product | ||||
| FXM0808U | 8 | 7 | AARGB0 | BARGB0 | AARGBO:AARGB1 | |
| FXM1608U | 15 | 14 | AARGBO:AARGB1 | BARGB0 | AARGBO:AARGB1:AARGB2 | |
| FXM1616U | 31 | 30 | AARGBO:AARGB1 | BARGB0:BARGB1 | AARGBO:AARGB1:AARGB2:AARGB3 | |
| FXM2416U | 46 | 45 | AARGBO:AARGB1:AARGB2 | BARGB0:BARGB1 | AARGBO:AARGB1:...:AARGB4 | |
| FXM2424U | 74 | 73 | AARGBO:AARGB1:AARGB2 | BARGB0:BARGB1:BARGB2 | AARGBO:AARGB1:...:AARGB5 | |
| FXM3216U | 61 | 60 | AARGBO:AARGB1:AARGB2:AARGB3 | BARGB0:BARGB1 | AARGBO:AARGB1:...:AARGB5 | |
| FXM3224U | 102 | 100 | AARGBO:AARGB1:AARGB2:AARGB3 | BARGB0:BARGB1:BARGB2 | AARGBO:AARGB1:...:AARGB6 | |
| FXM3232U | 139 | 138 | AARGBO:AARGB1:AARGB2:AARGB3 | BARGB0:BARGB1:BARGB2:BARGB3 | AARGBO:AARGB1:...:AARGB7 | |
| FXM0808S | 13 | 12 | AARGB0 | BARGB0 | AARGBO:AARGB1 | |
| FXM1608S | 24 | 23 | AARGBO:AARGB1 | BARGB0 | AARGBO:AARGB1:AARGB2 | |
| FXM1616S | 45 | 44 | AARGBO:AARGB1 | BARGB0:BARGB1 | AARGBO:AARGB1:AARGB2:AARGB3 | |
| FXM2416S | 64 | 63 | AARGBO:AARGB1:AARGB2 | BARGB0:BARGB1 | AARGBO:AARGB1:...:AARGB4 | |
| FXM2424S | 90 | 89 | AARGBO:AARGB1:AARGB2 | BARGB0:BARGB1:BARGB2 | AARGBO:AARGB1:...:AARGB5 | |
| FXM3216S | 83 | 82 | AARGBO:AARGB1:AARGB2:AARGB3 | BARGB0:BARGB1 | AARGBO:AARGB1:...:AARGB5 | |
| FXM3224S | 120 | 119 | AARGBO:AARGB1:AARGB2:AARGB3 | BARGB0:BARGB1:BARGB2 | AARGBO:AARGB1:...:AARGB6 | |
| FXM3232S | 159 | 158 | AARGBO:AARGB1:AARGB2:AARGB3 | BARGB0:BARGB1:BARGB2:BARGB3 | AARGBO:AARGB1:...:AARGB7 | |
| Divide | ||||||
| Dividend | Divisor | Quotient | Remainder | |||
| FXD0808U | 40 | 327 | AARGB0 | BARGB0 | AARGB0 | REMB0 | 
| FXD1608U | 69 | 354 | AARGBO:AARGB1 | BARGB0 | AARGBO:AARGB1 | REMB0 | 
| FXD2408U | 164 | 379 | AARGBO:AARGB1:AARGB2 | BARGB0 | AARGBO:AARGB1:AARGB2 | REMB0 | 
| FXD3208U | 245 | 391 | AARGBO:AARGB1:AARGB2:AARGB3 | BARGB0 | AARGBO:AARGB1:AARGB2:AARGB3 | REMB0 | 
| FXD1616U | 147 | 445 | AARGBO:AARGB1 | BARGB0:BARGB1 | AARGBO:AARGB1 | REMB0:REMB1 | 
| FXD2416U | 326 | 649 | AARGBO:AARGB1:AARGB2 | BARGB0:BARGB1 | AARGBO:AARGB1:AARGB2 | REMB0:REMB1 | 
| FXD3216U | 458 | 882 | AARGBO:AARGB1:AARGB2:AARGB3 | BARGB0:BARGB1 | AARGBO:AARGB1:AARGB2:AARGB3 | REMB0:REMB1 | 
| FXD2424U | 341 | 797 | AARGBO:AARGB1:AARGB2 | BARGB0:BARGB1:BARGB2 | AARGBO:AARGB1:AARGB2 | REMB0:REMB1:REMB2 | 
| FXD3224U | 459 | 1260 | AARGBO:AARGB1:AARGB2:AARGB3 | BARGB0:BARGB1:BARGB2 | AARGBO:AARGB1:AARGB2:AARGB3 | REMB0:REMB1:REMB2 | 
| FXD3232U | 390 | 1450 | AARGBO:AARGB1:AARGB2:AARGB3 | BARGB0:BARGB1:BARGB2:BARGB3 | AARGBO:AARGB1:AARGB2:AARGB3 | REMB0:REMB1:REMB2:REMB3 | 
| FXD0808S | 59 | 348 | AARGB0 | BARGB0 | AARGB0 | REMB0 | 
| FXD1608S | 92 | 380 | AARGBO:AARGB1 | BARGB0 | AARGBO:AARGB1 | REMB0 | 
| FXD2408S | 191 | 410 | AARGBO:AARGB1:AARGB2 | BARGB0 | AARGBO:AARGB1:AARGB2 | REMB0 | 
| FXD3208S | 276 | 426 | AARGBO:AARGB1:AARGB2:AARGB3 | BARGB0 | AARGBO:AARGB1:AARGB2:AARGB3 | REMB0 | 
| FXD1616S | 176 | 479 | AARGBO:AARGB1 | BARGB0:BARGB1 | AARGBO:AARGB1 | REMB0:REMB1 | 
| FXD2416S | 356 | 686 | AARGBO:AARGB1:AARGB2 | BARGB0:BARGB1 | AARGBO:AARGB1:AARGB2 | REMB0:REMB1 | 
| FXD3216S | 491 | 923 | AARGBO:AARGB1:AARGB2:AARGB3 | BARGB0:BARGB1 | AARGBO:AARGB1:AARGB2:AARGB3 | REMB0:REMB1 | 
| FXD2424S | 362 | 838 | AARGBO:AARGB1:AARGB2 | BARGB0:BARGB1:BARGB2 | AARGBO:AARGB1:AARGB2 | REMB0:REMB1:REMB2 | 
| FXD3224S | 496 | 1306 | AARGBO:AARGB1:AARGB2:AARGB3 | BARGB0:BARGB1:BARGB2 | AARGBO:AARGB1:AARGB2:AARGB3 | REMB0:REMB1:REMB2 | 
| FXD3232S | 422 | 1500 | AARGBO:AARGB1:AARGB2:AARGB3 | BARGB0:BARGB1:BARGB2:BARGB3 | AARGBO:AARGB1:AARGB2:AARGB3 | REMB0:REMB1:REMB2:REMB3 | 
| Floating Point | ||||||
| Operation | Input | Output | ||||
| INT3208 | floating point -> integer | AEXP:AARGB0:AARGB1:AARGB2 | AARGB0 | |||
| INT3216 | floating point -> integer | AEXP:AARGB0:AARGB1:AARGB2 | AARGBO:AARGB1 | |||
| INT3224 | floating point -> integer | AEXP:AARGB0:AARGB1:AARGB2 | AARGBO:AARGB1:AARGB2 | |||
| INT3232 | 89 | 4140 | floating point -> integer | AEXP:AARGB0:AARGB1:AARGB2 | AARGBO:AARGB1:AARGB2:AARGB3 | |
| FLO0832U | unsigned integer -> floating point | AARGB0 | AEXP:AARGB0:AARGB1:AARGB2 | |||
| FLO1632U | unsigned integer -> floating point | AARGBO:AARGB1 | AEXP:AARGB0:AARGB1:AARGB2 | |||
| FLO2432U | 57 | 4140 | unsigned integer -> floating point | AARGBO:AARGB1:AARGB2 | AEXP:AARGB0:AARGB1:AARGB2 | |
| FLO3232U | unsigned integer -> floating point | AARGBO:AARGB1:AARGB2:AARGB3 | AEXP:AARGB0:AARGB1:AARGB2 | |||
| signed integer -> floating point | AARGB0 | AEXP:AARGB0:AARGB1:AARGB2 | ||||
| FLO1632S | signed integer -> floating point | AARGBO:AARGB1 | AEXP:AARGB0:AARGB1:AARGB2 | |||
| FLO2432S | 67 | 4140 | signed integer -> floating point | AARGBO:AARGB1:AARGB2 | AEXP:AARGB0:AARGB1:AARGB2 | |
| FLO3232S | signed integer -> floating point | AARGBO:AARGB1:AARGB2:AARGB3 | AEXP:AARGB0:AARGB1:AARGB2 | |||
| FPA32 | 141 | 4140 | floating point add | AEXP:AARGB0:AARGB1:AARGB2 BEXP:BARGB0:BARGB1:BARGB2 | AEXP:AARGB0:AARGB1:AARGB2 | |
| FPS32 | 142 | 4140 | floating point subtract | AEXP:AARGB0:AARGB1:AARGB2 BEXP:BARGB0:BARGB1:BARGB2 | AEXP:AARGB0:AARGB1:AARGB2 | |
| FPM32 | 121 | 4140 | floating point multiply | AEXP:AARGB0:AARGB1:AARGB2 BEXP:BARGB0:BARGB1:BARGB2 | AEXP:AARGB0:AARGB1:AARGB2 | |
| FPD32 | 365 | 4140 | floating point divide | AEXP:AARGB0:AARGB1:AARGB2 BEXP:BARGB0:BARGB1:BARGB2 | AEXP:AARGB0:AARGB1:AARGB2 | |
| TANEB32 | A =! B | AEXP:AARGB0:AARGB1:AARGB2 BEXP:BARGB0:BARGB1:BARGB2 | TRUE ->  WREG = 0x01 else WREG = 0x00 | |||
| TALTB32 | A < B | AEXP:AARGB0:AARGB1:AARGB2 BEXP:BARGB0:BARGB1:BARGB2 | TRUE ->  WREG = 0x01 else WREG = 0x00 | |||
| TALEB32 | A <= B | AEXP:AARGB0:AARGB1:AARGB2 BEXP:BARGB0:BARGB1:BARGB2 | TRUE ->  WREG = 0x01 else WREG = 0x00 | |||
| TAGTB32 | A > B | AEXP:AARGB0:AARGB1:AARGB2 BEXP:BARGB0:BARGB1:BARGB2 | TRUE ->  WREG = 0x01 else WREG = 0x00 | |||
| TAGEB32 | A >= B | AEXP:AARGB0:AARGB1:AARGB2 BEXP:BARGB0:BARGB1:BARGB2 | TRUE ->  WREG = 0x01 else WREG = 0x00 | |||
| TAEQB32 | A == B | AEXP:AARGB0:AARGB1:AARGB2 BEXP:BARGB0:BARGB1:BARGB2 | TRUE ->  WREG = 0x01 else WREG = 0x00 | |||

 
	 
	 
 

Wilfrid Laurier University
© 2019 Wilfrid Laurier University