Advertisement
Guest User

Untitled

a guest
Oct 27th, 2018
168
0
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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement