daily pastebin goal
13%
SHARE
TWEET

Untitled

a guest Oct 27th, 2018 145 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; Q2i=N5i/4-N6i
  2. ; Q2i=(N5i-N6i)*2
  3. ; Q2 = ( sum( i = 1 to N ) of Q2i ) / N + K.
  4.        
  5. N           equ     3           ; Kol-vo chisel v massive, >= 10.
  6. K           equ     0           ; Proizvol'naya konstanta.
  7.  
  8. dseg        at      30h         ; Segment dannih.
  9. N5:         ds      2           ; Adres elementa i v n5.
  10. N6:         ds      2           ; Adres elementa i v n6.
  11. Sum:        ds      2           ; Summa.
  12. Remainder:  ds      2           ; Ostatok.
  13. Remainder4: ds      1           ; Ostatok.pri del na 4
  14. sum_rem:        ds      2           ; Sum ostatok pri del na 4
  15. DivResult:  ds      2           ; Resultat deleniya.
  16.  
  17. xseg                            ; Segment vneshney pamyati.
  18. Q2:         ds      2           ; Finalnyi rezultat.
  19.  
  20. cseg                            ; Segment koda.
  21.             jmp     start       ; Perehod na start.
  22.             org     40h
  23.  
  24.  
  25. N5Arr:      dw      41,42,9
  26. N6Arr:      dw      5,4,4
  27.    
  28. start:
  29.             mov     r2,#N       ; Schetchik iteraciy.
  30.        
  31.             ; Zanesti znacheniya massivov:
  32.             mov     N5,#High(N5Arr)
  33.             mov     N5+1,#Low(N5Arr)
  34.             mov     N6,#High(N6Arr)
  35.             mov     N6+1,#Low(N6Arr)
  36.            
  37.             mov     sum,#0h     ; Obnulenie summy.
  38.             mov     sum+1,#0h
  39.  
  40. division4:
  41.             ; Perenosim N5i v r3r4  
  42.             mov     dph,N5      ; Zanesti adres v registr kosvennoy adresacii.
  43.             mov         dpl,N5+1
  44.             clr     a           ; Ochistit' a.
  45.             movc    a,@a+dptr   ; Peresylka iz pamyati programmy.
  46.             mov     r3,a        ; Zanesenie v r3.
  47.             clr     a           ; Ochistit' a.
  48.             inc     dptr        ; Uvelichit' znachenie ukazatelya.
  49.             movc    a,@a+dptr   ; Peresylka iz pamyati programmy.
  50.             mov     r4,a        ; Zanesenie v r4.
  51.             clr     a           ; Ochistit' a.
  52.             inc     dptr        ; Uvelichit' znachenie ukazatelya.
  53.             mov     N5,dph      ; Peredvinut' ukazatel na massiv.
  54.             mov     N5+1,dpl   
  55.            
  56.             ; Perenosim N6i v r5r6
  57.             mov     dph,n6      ; Zanesti adres v registr kosvennoy adresacii.
  58.             mov     dpl,n6+1
  59.             clr     a           ; Ochistit' a.
  60.             movc    a,@a+dptr   ; Peresylka iz pamyati programmy.
  61.             mov     r5,a        ; Zanesenie v r5.
  62.             clr     a           ; Ochistit' a.
  63.             inc     dptr        ; Uvelichit' znachenie ukazatelya.
  64.             movc    a,@a+dptr   ; Peresylka iz pamyati programmy.
  65.             mov     r6,a        ; Zanesenie v r6.
  66.             clr     a           ; Ochistit' a.
  67.             inc     dptr        ; Uvelichit' znahenie ukazatelya.
  68.             mov     N6,dph      ; Peredvinut' ukazatel na massiv.
  69.             mov     N6+1,dpl
  70.    
  71.             clr c
  72.             mov a,r3
  73.             rrc a
  74.             mov r3,a
  75.             mov a,r4
  76.             rrc a
  77.             mov r4,a
  78.            
  79.             clr a
  80.             addc a,#0
  81.             mov Remainder4,a
  82.  
  83.             clr c
  84.             mov a,r3
  85.             rrc a
  86.             mov r3,a
  87.             mov a,r4
  88.             rrc a
  89.             mov r4,a
  90.            
  91.             mov b,#2
  92.             clr a
  93.             addc a,#0
  94.             mul ab
  95.            
  96.             add a,Remainder4
  97.             mov Remainder4,a
  98.  
  99.             ;mov r7,a
  100.             ;mov a,sum_rem
  101.             ;add a,r7
  102.             ;mov sum_rem,a
  103.  
  104. subtraction:
  105.            
  106.             ; Vichytanie mladshego baita i zanesenie rezul'tata v r4.
  107.             clr     c           ; Ochistka flaga perenosa.
  108.             mov     a,r4        ; Kopirovanie v akkumulyator.
  109.             subb    a,r6        ; Vichytanie.
  110.             mov     r4,a        ; Sohranenie rezul'tata.
  111.  
  112.             ; Vichytanie starshego baita i zaema i zanesenie rezul'tata v r3.
  113.             mov     a,r3        ; Kopirovanie v akkumulyator.
  114.             subb    a,r5        ; Vichytanie.
  115.             mov     r3,a        ; Sohranenie rezul'tata.
  116.  
  117.             jnc nosubrem
  118.            
  119.             ;13.75-14 = -0.25
  120.             ;100 = 4
  121.             ;75 = 3
  122.             ;50 = 2
  123.             ;25 = 1
  124.             ;this is for this
  125.             clr c
  126.             mov a,#4h
  127.             mov r7,Remainder4
  128.             subb a,r7
  129.             mov Remainder4,a
  130.            
  131.             ;srazu vichitaem ego iz obshego ostatka potomuchto otric chislo
  132.             clr c
  133.             mov r7,Remainder4
  134.             mov a,Remainder
  135.             subb a,r7
  136.             mov Remainder,a
  137.             mov r7,a
  138.             mov a,#0
  139.             mov Remainder4,a
  140.            
  141.             ;SLUCHAY ESLI OSTATOK OTRIC
  142.             mov a,r7
  143.             anl a,#80h
  144.             jz poloshostatok
  145.  
  146.             ;vichit 1 iz summ
  147.             clr c
  148.             mov a,sum+1
  149.             subb a,#1
  150.             mov sum+1,a
  151.             mov a,sum
  152.             subb a,#0
  153.             mov sum,a
  154.             ;obnov tek ostatok
  155.             clr c
  156.             mov a,Remainder
  157.             add a,#4
  158.             mov Remainder,a
  159.  
  160. poloshostatok:
  161.             ;mov Remainder,a
  162.            
  163.             mov a,r4
  164.             add a,#1
  165.             mov r4,a
  166.  
  167.             mov a,r3
  168.             addc a,#0
  169.             mov r3,a
  170.  
  171. nosubrem:
  172.             clr c
  173.             mov a,Remainder
  174.             addc a,Remainder4
  175.             mov Remainder,a
  176.            
  177.             subb a,#4
  178.             anl a,#80h
  179.             jnz noaddrem
  180.  
  181.             mov a,r4
  182.             add a,#1
  183.             mov r4,a
  184.            
  185.             mov a,r3
  186.             addc a,#0
  187.             mov r3,a
  188.            
  189.             clr c
  190.             mov a,Remainder
  191.             subb a,#4
  192.             mov Remainder,a
  193.  
  194. noaddrem:
  195.             ; Summirovanie rezul'tata s Q2.
  196.             mov     a,r4        ; Perenos mladhsego baita.
  197.             add     a,sum+1     ; Summa s mladshim baitom.
  198.             mov     sum+1,a     ; Vozvrat rezul'tata.
  199.  
  200.             mov     a,r3        ; Perenos starhego baita.
  201.             addc    a,sum       ; Summa so starshim baitom.
  202.             mov     sum,a       ; Vozvrat rezul'tata.
  203.            
  204.             clr c
  205.             mov a,r2
  206.             subb a,#1
  207.             mov r2,a
  208.             jz  endsub
  209.             jmp division4   ; Provarka okonchaniya cikla.
  210.  
  211. endsub:
  212.    
  213. end
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top