Advertisement
JoshDreamland

Untitled

Apr 16th, 2012
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ALT1    KICKO FC:4;
  2.     EXT LR:ZX;
  3. P1  MOVD    DR:0,FL:0   ;CLEAR SUM TO ZERO
  4.     MOVD    DR:2,FL:0   ;CLEAR SUM TO ZERO
  5.     MOVD    DX:1,FL:4   ;SET INDEX TO ZERO
  6. P2  IRKB    DM:XX,DX:1,NW:1 ;READ NEXT XX
  7.     IWSR    FM:XX,FX:1,NW:1 ;ECHO XX
  8.     IRKB    DM:YY,DX:1,NW:1 ;READ IN NEXT YY
  9.     IWSR    FM:YY,FX:1,NW:1 ;ECHO YY
  10.     MOVD    DR:2,FM:XX,FX:1 ;FORM XX/YY
  11.     MOVD    DR:3,FM:YY,FX:1;   
  12.     TREQ    FR:3,DM:ER  ;IF DIVIDE BY 0, GO PRT MSG AND HALT
  13.     IDIV    DR:2,FM:YY,FX:1 ;OTHERWISE  DIVIDE
  14.     MOVD    FR:2,DM:QQ,DX:1 ;STORE RESULT
  15.     IADD    DR:0,FM:QQ,FX:1 ;Add to total in reg 0
  16.     Isub    DX:1,FL:-1  ;DECREMENT INDEX REGISTER
  17.     TRDR    FX:1,DM:DONE    ;Test if Done
  18.     TR  DM:P2   ;IF NOT DONE, LOOP BACK
  19. DONE    MOVD  FR:0,DM:Q1;
  20.     CWSR    FM:M1,NW:3;
  21.     IWSR    FM:Q1,NW:1;
  22.     TR  DM:E1   ;THEN GO TO THE EXIT ROUTINE
  23. ER  CWSR    FM:ME,NW:2  ;ZERO DIVISOR, PRINT 'Y IS 0  '
  24.     DMP FC:3    ;DUMP registers and active memory
  25.     HLT FC:100; ;HALT
  26. E1  CWSR    FM:M2,NW:3;
  27.     MOVD    DM:1,FM:ZX;
  28.     HLT FC:200;
  29. ; CONSTANTS AND TEMPORARIES
  30. A1  ADRC    FM:ZX;  ;ADDRESS OF External Reference
  31. C1  NUM FC:1;
  32. C4  NUM FC:4;
  33. ME  CHAR    ST:'Y IS';  ;MESSAGE IS 'Y IS 0  '
  34.     CHAR    ST:' 0';
  35. M1  CHAR    ST:'';  MESSAGE IS '      Q='
  36.     CHAR    ST:'';
  37.     CHAR    ST:' Q=';
  38. M2  CHAR    ST:'END ';
  39.     CHAR    ST:'PROG';
  40.     CHAR    ST:'';
  41. QQ  SKIPS   FC:4;
  42. Q1  SKIPS   FC:1;
  43. TP  NUM FC:0;
  44. XX  SKIPS   FC:4;
  45. YY  SKIPS   FC:4;
  46. ;   END LR:ALT1;
  47.  
  48.  
  49. ; alt2.txt
  50.  
  51. ALT2 KICKO FC:4;
  52.       NUM   fc:17;
  53.      NUM   fc:9;
  54.      newlc fc:20;
  55.      MOVD  DR:0,FM:5;
  56.      IMUL  DR:0,FM:9 ;
  57.      MOVD  FR:0,DM:13;
  58.      MOVDN DR:1,FM:5;
  59.      IDIV  DR:1,FM:9;
  60.      MOVD  FR:1,DM:17;
  61.      MOVD  DR:2,FM:5;
  62.      iADD  DR:2,FM:9;
  63.      MOVD  FR:2,DM:18;
  64.      MOVD  DR:3,FM:5;
  65.      OR    DM:3,FM:9;
  66.      MOVD  FR:3,DM:19;
  67.      MOVD  DR:4,FM:5;
  68.      ISUB  DR:4,FM:9;
  69.      MOVD  FR:4,DM:20;
  70.      MOVD  DR:5,FM:5;
  71.      ISLA  DR:5,FC:100;
  72.      MOVD  FR:5,DM:21;
  73.      MOVD  DR:6,FM:5;
  74.      PWR   DR:6,FC:2;
  75.      MOVD  FR:6,DM:22;
  76.      MOVD  DR:7,FM:5;
  77.      AND   DR:7,FM:9;
  78.      MOVD  FR:7,DM:23;
  79.      DMP   FC:3;
  80.      HLT   FC:0;
  81. ;     END   LR:ALT2;
  82.  
  83.  
  84. ; alt3.txt
  85.  
  86. ALT3    KICKO   FC:0;              
  87.     MOVD    DR:1,FM:AB; :place AB in register 1 0   00400005    R
  88.     IADD    DR:1,FM:CD; :add (AB+CD)    1   20400006    R
  89.     MOVD    FR:1,DM:RES;    :store AB+CD into RES   2   00400007    R
  90.     IWSR    FM:RES,NW:1;    :output RES     3   A0008007    R
  91.     HLT FC:0;   :halt program display code 0    4   FC000000    A
  92. AB  num FC:10;  :define data element    5   0000000A    A
  93. CD  num FC:111; :define data element    6   0000006F    A
  94. RES num FC:0;   :define data element    7   00000000    A
  95.     END LR:ALT3;    :end of program     E
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement