Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ALT1 KICKO FC:4;
- EXT LR:ZX;
- P1 MOVD DR:0,FL:0 ;CLEAR SUM TO ZERO
- MOVD DR:2,FL:0 ;CLEAR SUM TO ZERO
- MOVD DX:1,FL:4 ;SET INDEX TO ZERO
- P2 IRKB DM:XX,DX:1,NW:1 ;READ NEXT XX
- IWSR FM:XX,FX:1,NW:1 ;ECHO XX
- IRKB DM:YY,DX:1,NW:1 ;READ IN NEXT YY
- IWSR FM:YY,FX:1,NW:1 ;ECHO YY
- MOVD DR:2,FM:XX,FX:1 ;FORM XX/YY
- MOVD DR:3,FM:YY,FX:1;
- TREQ FR:3,DM:ER ;IF DIVIDE BY 0, GO PRT MSG AND HALT
- IDIV DR:2,FM:YY,FX:1 ;OTHERWISE DIVIDE
- MOVD FR:2,DM:QQ,DX:1 ;STORE RESULT
- IADD DR:0,FM:QQ,FX:1 ;Add to total in reg 0
- Isub DX:1,FL:-1 ;DECREMENT INDEX REGISTER
- TRDR FX:1,DM:DONE ;Test if Done
- TR DM:P2 ;IF NOT DONE, LOOP BACK
- DONE MOVD FR:0,DM:Q1;
- CWSR FM:M1,NW:3;
- IWSR FM:Q1,NW:1;
- TR DM:E1 ;THEN GO TO THE EXIT ROUTINE
- ER CWSR FM:ME,NW:2 ;ZERO DIVISOR, PRINT 'Y IS 0 '
- DMP FC:3 ;DUMP registers and active memory
- HLT FC:100; ;HALT
- E1 CWSR FM:M2,NW:3;
- MOVD DM:1,FM:ZX;
- HLT FC:200;
- ; CONSTANTS AND TEMPORARIES
- A1 ADRC FM:ZX; ;ADDRESS OF External Reference
- C1 NUM FC:1;
- C4 NUM FC:4;
- ME CHAR ST:'Y IS'; ;MESSAGE IS 'Y IS 0 '
- CHAR ST:' 0';
- M1 CHAR ST:''; MESSAGE IS ' Q='
- CHAR ST:'';
- CHAR ST:' Q=';
- M2 CHAR ST:'END ';
- CHAR ST:'PROG';
- CHAR ST:'';
- QQ SKIPS FC:4;
- Q1 SKIPS FC:1;
- TP NUM FC:0;
- XX SKIPS FC:4;
- YY SKIPS FC:4;
- ; END LR:ALT1;
- ; alt2.txt
- ALT2 KICKO FC:4;
- NUM fc:17;
- NUM fc:9;
- newlc fc:20;
- MOVD DR:0,FM:5;
- IMUL DR:0,FM:9 ;
- MOVD FR:0,DM:13;
- MOVDN DR:1,FM:5;
- IDIV DR:1,FM:9;
- MOVD FR:1,DM:17;
- MOVD DR:2,FM:5;
- iADD DR:2,FM:9;
- MOVD FR:2,DM:18;
- MOVD DR:3,FM:5;
- OR DM:3,FM:9;
- MOVD FR:3,DM:19;
- MOVD DR:4,FM:5;
- ISUB DR:4,FM:9;
- MOVD FR:4,DM:20;
- MOVD DR:5,FM:5;
- ISLA DR:5,FC:100;
- MOVD FR:5,DM:21;
- MOVD DR:6,FM:5;
- PWR DR:6,FC:2;
- MOVD FR:6,DM:22;
- MOVD DR:7,FM:5;
- AND DR:7,FM:9;
- MOVD FR:7,DM:23;
- DMP FC:3;
- HLT FC:0;
- ; END LR:ALT2;
- ; alt3.txt
- ALT3 KICKO FC:0;
- MOVD DR:1,FM:AB; :place AB in register 1 0 00400005 R
- IADD DR:1,FM:CD; :add (AB+CD) 1 20400006 R
- MOVD FR:1,DM:RES; :store AB+CD into RES 2 00400007 R
- IWSR FM:RES,NW:1; :output RES 3 A0008007 R
- HLT FC:0; :halt program display code 0 4 FC000000 A
- AB num FC:10; :define data element 5 0000000A A
- CD num FC:111; :define data element 6 0000006F A
- RES num FC:0; :define data element 7 00000000 A
- END LR:ALT3; :end of program E
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement