Advertisement
Guest User

Untitled

a guest
Nov 6th, 2018
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.      ORG 800H  
  2.      LXI H,ZACH1  
  3.      RST 3  
  4.      CALL PIERW  
  5. ZLYZNAK  
  6.      CALL ZNAK  
  7.      CALL LICZ  
  8.      CALL WYNIK  
  9. PIERW  
  10.      LXI H,ZACH2  
  11.      RST 3  
  12.      RST 5 ;z klawy do D E  
  13.      MOV B,D ; D -> B  
  14.      MOV C,E ; E -> C  
  15.      RET  
  16. ZNAK  
  17.      LXI H,ZACH3  
  18.      RST 3  
  19.      RST 2 ; znak do A  
  20.      RET  
  21. DRUG  
  22.      LXI H,ZACH4  
  23.      RST 3  
  24.      RST 5 ;z klawy do D E  
  25.      LXI H,ZACH5  
  26.      RST 3  
  27.      XCHG ;zamiana D E z H L  
  28.      RET  
  29. LICZ  
  30.      CPI 'n' ; A - 'n'  
  31.      JZ NEG ; if Flaga Z = 1  
  32.      CPI '+' ;Odjecie od A wart chara  
  33.      JZ DODAJ ;if Z = 1 then do  
  34.      CPI '-' ;Odjecie od A wart chara  
  35.      JZ ODEJMIJ ;if Z = 1 then do  
  36.      JMP ZLYZNAK  
  37.      HLT  
  38. NEG  
  39.      LXI H,ZACH5  
  40.      RST 3  
  41.      MOV A,B ; B ->A  
  42.      CMA  
  43.      RST 4  
  44.      MOV A,C ; B ->A  
  45.      CMA  
  46.      RST 4  
  47.      HLT  
  48. DODAJ  
  49.      CALL DRUG  
  50.      DAD B ; dodaj do H L pare B = B C  
  51.      JC PRZEPDOD ; if CY = 1 to skok  
  52.      CALL WYNIK  
  53. ODEJMIJ  
  54.      CALL DRUG  
  55.      MOV A,C ; C -> A  
  56.      CMC ; CY <- 0  
  57.      SUB L ; A - L  
  58.      JC ODEJMIJPORZMLOD ; if CY = 1  
  59.      MOV E,A ; A - > E  
  60.      MOV A,B ; B -> A  
  61.      SUB H ; A - H  
  62.      JC ODEJMIJPORZSTAR ; if CY = 1  
  63.      MOV H,A ; A - > H  
  64.      MOV L,E ; E - > L  
  65.      CALL WYNIK ; skok do wynik  
  66. ODEJMIJPORZMLOD  
  67.      CMC ; CY <- 0  
  68.      MOV E,A ; A -> E  
  69.      MOV A,B ;B -> A  
  70.      SUB H ;A - H  
  71.      JZ ZZMW ;jesli wynik 0 to negacja  
  72.      DCR A  
  73.      JC ODEJMIJPORZSTAR ; if CY = 1 to skok  
  74.      MOV H,A ;A -> H  
  75.      MOV L,E ; E - > L  
  76.      JM MINUS ; if S = 1 to skok  
  77.      CALL WYNIK  
  78. ODEJMIJPORZSTAR  
  79.      CMC ; CY <- 0  
  80.      MOV A,L ; L -> A  
  81.      SUB C ; A - C  
  82.      MOV L,A ; A -> L  
  83.      MOV A,H ; H -> A  
  84.      SBB B ; A - B  
  85.      MOV H,A ; A -> H  
  86.      JMP MINUS ; if S = 1 to skok  
  87. WYNIK  
  88.      MOV A,H ; H - > A  
  89.      RST 4 ; wydruk pary hex z A na monitro  
  90.      MOV A,L ; L - > A  
  91.      RST 4 ; wydruk pary hex z A na monitro  
  92.      HLT  
  93. MINUS  
  94.      MVI A,'-' ; '-' - > A  
  95.      RST 1 ; wydruk znaku z A na monitor  
  96.      JMP WYNIK  
  97. PRZEPDOD  
  98.      MVI A,'1' ; A <- '1'  
  99.      RST 1 ; wydruk znaku z A na monitor  
  100.      RET  
  101. ZZMW  
  102.      MOV H,A ; A -> H  
  103.      MOV A,E ; E -> A  
  104.      CMA  
  105.      INR A ; konieczne zwiekszenie A o 1  
  106.      MOV L,A ; A -> L  
  107.      JMP MINUS  
  108. ZACH1    DB 'kalkulator liczb hex',10,13,'@'                              
  109. ZACH2    DB 'podaj pierwsza liczbe',10,13,'@'                            
  110. ZACH3    DB 10,13,'podaj operator (+,-,n)',10,13,'@'                            
  111. ZACH4    DB 10,13,'podaj druga liczbe'10,13,'@'                      
  112. ZACH5    DB 10,13,'wynik wynosi:',10,13,'@'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement