Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ORG 800h
- ##########################
- # program nie potrafi wyświetlać samych liczb i wszystko zamienia na znaki ascii
- # w ascii 0 to 48
- mvi e,48
- # 9 w ascii
- mvi h,57
- # 5 w ascii
- mvi c,53
- # wywołuje flagę prog i zapisuje aktualny progres programu na stos
- call prog
- # przerywa program
- hlt
- ##########################
- ##########################
- prog
- # przenosi rejestr e do akumulatora
- mov a,e
- # porównuje rejestr c z akumulatorem, czyli tak naprawdę od akumulatora odejmuje c
- # w zależności od wyniku ustawia odpowiednia flagę w rejestrze flagowym
- cmp c
- # cm to skrót od call minus, czyli jeżeli flaga minusa jest ustawiona na 1,
- # to uruchamia procedurę typei
- cm typei
- # skrót call zero, jeżeli flaga 0 jest aktywna wywołuje stars
- cz stars
- # call plus - to samo co cz tylko sprawdza czy wynik jest dodatni
- cp stars
- # zwiększa e o 1
- inr e
- # przenosi h do akumulatora
- mov a,h
- # porównuje akumulator z e
- cmp e
- # jump not zero - skacze do procedury prog jeżeli flaga zera nie jest równa 0
- # czyli jest implementacją pętli
- jnz prog
- # skacze do momentu zapisanego na stosie
- ret
- ##########################
- #############################
- # przenosi gwiazdkę do akumulatora
- stars mvi a,'*'
- # wypisuje akumulator
- rst 1
- # powraca do momentu ze stosu
- ret
- ##########################
- ##########################
- # przenosi e do akumulatora i wypisuje
- typei mov a,e
- rst 1
- ret
- ##########################
- # call rożni się od jump tym, ze call zapisuje na stosie stan programu, wiec
- # można potem użyć RET
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement