Advertisement
Sylv3rWolf

projectv4

Sep 11th, 2015
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;działanie (2+a)^3+(1+b)^3-(c+2*(a+8)*3)*b/4-6-17
  2. ;----------------------------------------------------------------------------------------------------------------
  3.  
  4.     jmp start
  5.  
  6.     db  a   ; rezerwacja a
  7.     db  00  ; adres 00
  8.     db  10  ; adres 10
  9.  
  10. ;----------------------------------------------------------------------------------------------------------------
  11. ; ----- Hardware Timer ------------------------------------------------------------------------------------------
  12.     org a        ;przejscie do zapisywania w komorce o adresie a
  13.     nop      
  14.     nop
  15.     nop
  16.     nop
  17.     nop
  18.     iret
  19.  
  20. ;----------------------------------------------------------------------------------------------------------------
  21.  
  22. ; ----- Keyboard Handler ----------------------------------------------------------------------------------------
  23.     org 10  ; przejscie do zapisywania w 10
  24.     cmp     dl, 0   ; dl==0, jeśli tak to obliczenia, jeśli nie wczytanie liczb
  25.     jz  oblicz  ; jesli ==0 to obliczenia
  26.     CLI     ;
  27.     push    al  ; AL na stos
  28.     pushf       ;
  29.    
  30.     in  08  ; keypad
  31.  
  32. ;-------Game Output----------------------------------------------------------------------------------------------
  33.  
  34.     out 01
  35.     out 05
  36.  
  37. ;-------Game Output----------------------------------------------------------------------------------------------
  38.  
  39.     sub     al, 30  ; na równe obliczenia -30 do każdej wczytanej liczby
  40.     add     cl, 1   ; alokacja pamięci, adresowanie od [06] do [08]
  41.     mov [cl], al    ; wrzucanie liczby do alokacji pamięci
  42.     nop    
  43.     nop
  44.     nop
  45.     nop
  46.     nop
  47.  
  48.     popf           
  49.     pop al  ; AL ze stosu
  50.     dec dl      ; dekrementacja DL, aż do 0 i koniec pętli
  51.     STI     ;
  52.     iret        ; powrot z przerwania
  53.  
  54. ; -----KONIEC OPERACJI powrót do do reszty programu--------------------------------------------------------------
  55.  
  56. ;------PROGRAM START---------------------------------------------------------------------------------------------
  57.  
  58. start:
  59.  
  60. ;-------Game Output Start----------------------------------------------------------------------------------------
  61.  
  62.     mov     al, 24
  63.     out 01  ;światła
  64.  
  65.     mov al, 10
  66.     out 05  ;karuzela
  67.  
  68. ;-------Game Output----------------------------------------------------------------------------------------------
  69.  
  70. ;-------Wartości początkowe--------------------------------------------------------------------------------------
  71.  
  72.     mov     dl, 3   ; 3 liczby do wczytania
  73.     mov     cl, 05  ; od [05] początek zapisywania liczb
  74.     in  00
  75.     cmp     al, 38  ; porowuje czy wcisniety klawisz to 3, PRZERWANIE
  76.     jz  loop    ; jesli wcisnieta 3 to leci do pętli
  77.     call    c0  ; jesli nie to konczy program
  78.  
  79. ;------PROGRAM START END-----------------------------------------------------------------------------------------
  80.  
  81.  
  82. ;----- Idle Loop-------------------------------------------------------------------------------------------------
  83.  
  84. loop:           ;oczekiwanie na dane z keypada
  85.  
  86.     STI     ; Set (I) flag
  87.     out 08  ;
  88. idle:
  89.     nop     ;
  90.     nop
  91.     nop
  92.     jmp idle    ;pętla nieskończoności, dopóki kliknięcie na keypad
  93.  
  94. ;----- Koniec pętli----------------------------------------------------------------------------------------------
  95.  
  96. ;------OBLICZENIE DZIAŁANIA GŁÓWNEGO-----------------------------------------------------------------------------
  97.  
  98. oblicz:
  99.  
  100. ;------WARTOŚCI Z TABLICY----------------------------------------------------------------------------------------
  101.  
  102.     mov al, [06]
  103.     add al, 2
  104.     mov bl, [07]
  105.     inc bl
  106.     mov cl, [08]
  107.  
  108.     call    68
  109.  
  110.     jmp koniec
  111.  
  112. ;------wywołanie procedury do obliczeń---------------------------------------------------------------------------
  113.  
  114.     org 68
  115.  
  116. ;------(2+a)^3---------------------------------------------------------------------------------------------------
  117.  
  118.     push    al
  119.     pop dl
  120.     mul al, dl
  121.     mul al, dl
  122.  
  123. ;-------Game Output----------------------------------------------------------------------------------------------
  124.  
  125.     out 01
  126.     out 05
  127.  
  128. ;-------Game Output----------------------------------------------------------------------------------------------
  129.  
  130. ;------(1+b)^3---------------------------------------------------------------------------------------------------
  131.  
  132.     push    bl
  133.     pop dl
  134.     mul bl, dl
  135.     mul bl, dl
  136.     add al, bl
  137.  
  138. ;------(2+a)^3+(1+b)^3-------------------------------------------------------------------------------------------
  139.  
  140. ;-------Game Output----------------------------------------------------------------------------------------------
  141.  
  142.     out 01
  143.     out 05
  144.  
  145. ;-------Game Output----------------------------------------------------------------------------------------------
  146.  
  147.     push    al             ;WYNIK PIERWSZEJ CZĘSCI NA STOSIE!----------------------------------------
  148.     mov al, [06]
  149.     add al, 8                  ;(a+8)
  150.     mul al, 3                  ;(a+8)*3
  151.     mul al, 2                  ;(2*(a+8)*3)
  152.     add al, cl             ;(c+2*(a+8)*3)
  153.  
  154. ;-------Game Output----------------------------------------------------------------------------------------------
  155.  
  156.     out 01
  157.     out 05
  158.  
  159. ;-------Game Output----------------------------------------------------------------------------------------------
  160.  
  161.     mov dl, [07]
  162.     div dl, 4
  163.     mul al, dl             ;(c+2*(a+8)*3)*b/4
  164.  
  165.     pop bl
  166.     sub bl, al             ;(2+a)^3+(1+b)^3-(c+2*(a+8)*3)*b/4
  167.     push    bl
  168.    
  169.     pop al
  170.         sub     al, 6    
  171.         add     al, ef             ;-17
  172.  
  173.     push    al
  174.     pop bl                 ;wynik działania w BL!
  175.  
  176.     iret
  177.  
  178. ;------PROCEDURA KOŃCA PROGRAMU----------------------------------------------------------------------------------
  179.  
  180. koniec:
  181.  
  182.     call    c0
  183.  
  184.     org c0
  185.  
  186. ;-----DEFINITYWNY KONIEC PROGRAMU--------------------------------------------------------------------------------
  187.  
  188. ;-------Game Output----------------------------------------------------------------------------------------------
  189.  
  190.     mov al, 90
  191.     out 01
  192.    
  193.     mov al, f9
  194.     add al, 6
  195.  
  196.     out 05
  197.  
  198. ;-------Game Output----------------------------------------------------------------------------------------------
  199.  
  200.     end
  201.  
  202. ;----------------------------------------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement