Unterprogramme für 36 Bit Arithmetik
Unterprogramme für den SpartanMC 18 in Assembler
- Addition von 36 Bit mit Overflow und Carry
- Subtraktion von 36 bit mit Overflow und Carry
- Multiplikation 18*18 = 36 Bit ohne Vorzeichen
- Division 36/18 = 18 Bit und Carry
- Division 36/18 = 36 Bit und Fehlerstatus
- Konvertierung 36 Bit BIN zu 11 Stellen BCD
- Konvertierung 9 Stellen BCD zu 36 Bit BIN
Alle 8 Unterprogramme aus den 7 Beispielen als Macro in einer Datei
up_36m.incMacro Aufruf | UP Aufruf | In Operanden | Out Operanden | Datenbereich für das UP |
add36m() | jals add36 | S1=(R12/R13) S2=(R14/R15) | Su=(R14/R12/R13) OV=(R15) | |
addu36m() | jals addu36 | S1=(R12/R13) S2=(R14/R15) | Su=(R14/R12/R13) | |
sub36m() | jals sub36 | Mi=(R12/R13) Su=(R14/R15) | Di=(R12/R13) C=(R14) OV=(R15) | |
mulu18m() | jals mulu | F1=(R13) F2=(R15) | Pr=(R12/R13) | op1: .space 6(0) ; 6 Worte |
d361818m() | jals d361818 | Dd=(R12/R13) Dr=(R15) | Qu=(R12) Re=(R13) C=(R14) | |
d361836m() | jals d361836 | Dd=(R12/R13) Dr=(R15) | Qu=(R12/R13) Re=(R15) Err=(R14) | |
bin2bcdm() | jals bin2bcd | Bin=(R12/R13) | BCD=(R13/R14/R15) | |
bcd2binm() | jals bcd2bin | BCD=(R12/R13) | Bin=(R12/R13) Err=(R15) |
Programm Beispiel für die Nutzung der Macros
Division ohne Vorzeichen und dezimaler E/A: Ass-Quelle, Liste, ProtokollSPHO-Format Start mit "G" im Monitor.
Include der Konstanten für das Programm: spartan_equ.inc