Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.27 KB | None | 0 0
  1. BVJ EQU FFFF1000
  2.  
  3. UVJ EQU FFFF2000
  4. BS_1 EQU FFFF2004
  5.  
  6. P_DATA EQU FFFF3000
  7. BS_2 EQU FFFF3004
  8. OBR EQU FFFF3008
  9. P_STOP EQU FFFF300C
  10.  
  11. ORG 0
  12. MOVE 10000, R7 ;inicijalizacija stoga
  13. JP GLAVNI
  14.  
  15. ORG 8
  16. DW 200
  17.  
  18. GLAVNI MOVE %B 10000, SR ;omogucuje prihvat prekida
  19. MOVE 1, R0
  20. STORE R0, (P_STOP) ;treba rucno postavit da jedinica moze bacit prekid
  21.  
  22. PETLJA LOAD R0,(ZAUSTAVI) ;provjeravamo oce li program nastaviti
  23. OR R0, R0, R0
  24. JR_Z END
  25.  
  26. LOAD R0,(BS_1)
  27. OR R0, R0, R0 ;provjeravamo spremnost uvjetne vj
  28. JR_Z PETLJA
  29.  
  30. LOAD R0, (BROJ)
  31. STORE R0, (UVJ) ;posluzujemo uvjetnu vj
  32. STORE R0, (BS_1) ;nakon posluzivanja brisemo bistabil stanja
  33.  
  34. LOAD R0, (BROJAC)
  35. ADD R0, 1, R0 ;povecam brojac nakon upisa
  36. STORE R0, (BROJAC)
  37.  
  38. JR PETLJA
  39.  
  40. END MOVE %B 00000, SR
  41. HALT
  42.  
  43. BROJ DW 0
  44. BROJAC DW 0
  45. MASKA DW 80000000
  46. ZAUSTAVI DW 1
  47.  
  48. ORG 200
  49.  
  50. PUSH R0
  51. PUSH R1
  52. MOVE SR, R1 ;spremam registar sr
  53. PUSH R1
  54. PUSH R2 ;koristim ga za masku
  55.  
  56. STORE R0, (BS_2) ;javljamo da je prekid prihvacen
  57. LOAD R1, (BROJAC)
  58. STORE R1, (P_DATA) ;posluzivanje prekidne vj
  59.  
  60. LOAD R2, (MASKA) ;ucitam masku
  61. LOAD R0, (BVJ) ;ucitam broj sa bezuvjetne vj
  62. AND R0, R2, R2 ;provjeravam je li broj sa bvj negativan
  63. JR_NZ KRAJ
  64.  
  65. PUSH R0 ;parametar na stog
  66. CALL OBRADI
  67. ADD SP, 4, SP ;brisem parametar
  68. STORE R0,(BROJ) ;spremam broj u memoriju
  69. JR DALJE
  70.  
  71. KRAJ MOVE 0, R0
  72. STORE R0, (P_STOP) ;onemogucujemo da prekidna vise baca prekide
  73. STORE R0, (ZAUSTAVI) ;s ovim ce se zaustaviti i glavni program
  74.  
  75. DALJE STORE R0, (OBR) ;javljamo da je prekid obraden
  76. POP R2 ;obnova konteksta
  77. POP R1
  78. MOVE R1, SR
  79. POP R1
  80. POP R0
  81.  
  82. RETI
  83.  
  84.  
  85. ;potprogram obradi
  86. OBRADI PUSH R1 ;spremanje konteksta
  87. MOVE SR, R1
  88. PUSH R1
  89.  
  90. LOAD R1, (SP + 0C)
  91. MOVE 1, R0
  92. SHL R0, R1, R0 ;rez mora biti u R0
  93.  
  94. POP R1 ;obnova konteksta
  95. MOVE R1, SR
  96. POP R1
  97. RET
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement