Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- jmp start
- db a ; rezerwacja a
- db 00 ; adres 00
- db 10 ; adres 10
- ; ===== Hardware Timer =======
- org a ;przejscie do zapisywania w komorce o adresie a
- nop
- nop
- nop
- nop
- nop
- iret
- ; ============================
- ; ===== Keyboard Handler =====
- org 10 ; przejscie do zapisywania w 10
- cmp dl,0 ; dl==0, jeśli tak to obliczenia, jeśli nie wczytanie liczb
- jz end ; jesli ==0 to obliczenia
- CLI ;
- push al ; AL na stos
- pushf ;
- in 08 ; keypad
- out 01
- out 05
- sub al,30 ; na równe obliczenia -30 do każdej wczytanej liczby
- add cl,1 ; alokacja pamięci, adresowanie od [06] do [08]
- mov [cl],al ; wrzucanie liczby do alokacji pamięci
- nop ;
- nop
- nop
- nop
- nop
- popf ;
- pop al ; AL ze stosu
- dec dl ; dekrementacja DL, aż do 0 i koniec pętli
- STI ;
- iret ; powrot z przerwania
- ; ============================
- start:
- mov al, 24
- out 01 ;światła
- mov al, 10
- out 05 ;karuzela
- mov dl,3 ; 3 liczby do wczytania
- mov cl,05 ; od [05] początek zapisywania liczb
- in 00
- cmp al,33 ; porowuje czy wcisniety klawisz to 3
- jz start1 ; jesli wcisnieta 3 to leci do start1
- call c0 ; jesli nie to konczy program
- ; ===== Idle Loop ============
- start1: ;oczekiwanie na dane z keypada
- STI ; Set (I) flag
- out 08 ;
- idle:
- nop ;
- nop
- nop
- jmp idle ;pętla nieskończoności, dopóki kliknięcie na keypad
- ; ============================
- end:
- mov al, [06]
- add al, 2
- mov bl, [07]
- inc bl
- mov cl, [08]
- call 68
- org 68
- push al
- pop dl
- mul al, dl
- mul al, dl
- out 01
- out 05
- push bl
- pop dl
- mul bl, dl
- mul bl, dl
- add al, bl
- out 01
- out 05
- push al
- mov al, [06]
- add al, 8 ;(a+8)
- mul al, 3 ;(a+8)*3
- mul al, 2 ;(2*(a+8)*3)
- add al, cl ;(c+2*(a+8)*3)
- out 01
- out 05
- mov dl, [07]
- div dl, 4
- mul al, dl ;(c+2*(a+8)*3)*b/4
- pop bl
- sub bl, al ;(2+a)^3+(1+b)^3-(c+2*(a+8)*3)*b/4
- push bl
- pop al
- sub al, 6
- add al, ef ;-17
- push al
- pop bl ;wynik działania w BL!
- call c0
- end1:
- org c0
- ;-----DEFINITYWNY KONIEC PROGRAMU----------------------------------------------------------
- mov al, 90
- out 01
- mov al, f9
- add al, 6
- out 05
- end
- ; ============================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement