Pages created and updated by Terry Sturtevant Date Posted: May 12, 2017

CP316: Microprocessor Systems and Interfacing

Math Subroutine Chart

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
Creative Commons License

Information on this site which is produced by Terry Sturtevant is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 2.5 Canada License.

Resources

To view pdf documents, you can download Adobe Acrobat Reader .
get Acrobat Reader
If you need to update a browser, you might try Firefox which is Get Firefox!
Since this page uses cascading style sheets for its layout, it will look best with a browser which supports the specifications as fully as possible.

If you are looking for an office package, with a word processor, spreadsheet, etc., you might try LibreOffice which is Get LibreOffice!

Go to the main page for the Department of Physics and Computer Science.

Valid XHTML 1.1

Valid CSS!

WCAG
2.0
(Level AA)

Wilfrid Laurier University