Advertisement
Guest User

Untitled

a guest
Apr 16th, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. LJMP START
  2.                      ORG 100H
  3.                      
  4. START:
  5.                       LCALL LCD_CLR
  6.                       LCALL WAIT_KEY; WCZYTYWANIE Z PLYTKI LICZB
  7.                       MOV R0,A   ; PRZYPISANIE AKUMULATYORA DO R0
  8.                       LCALL WRITE_HEX ; WYPISANIE LICZBY
  9.                       LCALL WAIT_KEY
  10.                       MOV R1,A
  11.                       LCALL WRITE_HEX
  12.                       LCALL WAIT_KEY
  13.                       CJNE A,#10, ODEJM ; POROWNAJ A Z 10 (przycisk a z plytki) JEZELI ROWNE WYKONA DODAWANIE JESLI ROZNE SKOCZY DO ODEJMOWANIA
  14.                       MOV A,#'+' ;PRZYPISANIE DO AKUMUL. +
  15.                       LCALL WRITE_DATA
  16.                       MOV A,#'='
  17.                       LCALL WRITE_DATA
  18.                       MOV A,R0 ; PRZENIESIENIE R0 DO AKUMUL.
  19.                       ADD A,R1   ; DODAWANIE R1 Z AKUMULATOREM
  20.                       ACALL DO_BCD     ; WYWOLANIE PODPROGRAMU
  21.                       LCALL WRITE_HEX
  22.                       LCALL WAIT_KEY
  23.                       CJNE A, #15, START
  24.                       LCALL LCD_CLR
  25.                  
  26.                
  27.                      
  28.                      
  29. ODEJM:
  30.                       CJNE A, #11, MNOZ
  31.                       MOV A,#'-'
  32.                       LCALL WRITE_DATA
  33.                       MOV A,#'='
  34.                       LCALL WRITE_DATA
  35.                       MOV A,R0
  36.                       CLR C ; ZERUJE FLAGE BO DOMYSLNIE NA 1 (odejmowanie: liczby - c)
  37.                       SUBB A,R1 ; odejmuje
  38.                       ACALL DO_BCD
  39.                       LCALL WRITE_HEX
  40.                       LCALL WAIT_KEY
  41.                       CJNE A, #15, START ; CZYLI BYLE JAKI KLAWISZ URUCHOMI OD POCZATKU
  42.                       LCALL LCD_CLR
  43.                       SJMP $
  44.                      
  45.                      
  46.                      
  47.                      
  48.                      
  49.                      
  50. MNOZ:                
  51.                       CJNE A,#12, DZIEL
  52.                       MOV A,#'*'
  53.                       LCALL WRITE_DATA
  54.                       MOV A,#'='
  55.                       LCALL WRITE_DATA
  56.                       MOV A,R0
  57.                       MOV B, R1
  58.                       MUL AB
  59.                       XCH A,B ;zamiana bajtow
  60.                       LCALL WRITE_HEX
  61.                       MOV A,B
  62.                       LCALL WRITE_HEX
  63.                       LCALL WAIT_KEY
  64.                       CJNE A, #15, START
  65.                       LCALL LCD_CLR
  66.                       SJMP $
  67.                      
  68.  
  69.  
  70. DZIEL:              
  71.                      CJNE A, #13, START          
  72.                       MOV A,#'/'
  73.                       LCALL WRITE_DATA
  74.                       MOV A,#'='
  75.                       LCALL WRITE_DATA
  76.                       MOV A,R0
  77.                       MOV B, R1
  78.                       DIV AB
  79.                       LCALL WRITE_HEX ; CZESC CALKOWITA DZIELENIA PRZENIESIONA DO AKUMULATORA
  80.                       MOV A,#'_'
  81.                       LCALL WRITE_DATA
  82.                       MOV A, B ; B RESZTA Z DZIELENIA PRZENIESIONA DO AKUMULATORA
  83.                       LCALL WRITE_HEX
  84.                       LCALL WAIT_KEY
  85.                       CJNE A, #15, DZIEL ; KONCZENIE DZIELENIA, TAK JEST DLA KAZDEJ OPERACJI
  86.                       LCALL LCD_CLR
  87.                       SJMP $
  88.                      
  89.                        
  90.                        
  91. DO_BCD:              
  92.                      MOV B, #10
  93.                      DIV AB
  94.                      SWAP A
  95.                      ADD A,B
  96.                      RET
  97.                        
  98.                        
  99.                           SJMP $
  100.                        END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement