Advertisement
Guest User

Untitled

a guest
Oct 27th, 2018
169
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     4           ; 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      -400,256,302,1000
  26. N6Arr:      dw      50,65,84,0
  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.  
  72.             ;DELENIE NA 4
  73.             clr c
  74.  
  75.             ;
  76.             mov a,r3
  77.             rlc a ; Ciklicheskiy sdvig vlevo s CF dlya sohraneniya znaka.
  78.             ;
  79.             mov a,r3
  80.             rrc a
  81.             mov r3,a
  82.             mov a,r4
  83.             rrc a
  84.             mov r4,a
  85.            
  86.             clr a
  87.             addc a,#0
  88.             mov Remainder4,a
  89.  
  90.             clr c
  91.             ;
  92.             mov a,r3
  93.             rlc a ; Ciklicheskiy sdvig vlevo s CF dlya sohraneniya znaka.
  94.             ;
  95.             mov a,r3
  96.             rrc a
  97.             mov r3,a
  98.             mov a,r4
  99.             rrc a
  100.             mov r4,a
  101.            
  102.             mov b,#2
  103.             clr a
  104.             addc a,#0
  105.             mul ab
  106.            
  107.             add a,Remainder4
  108.             mov Remainder4,a
  109.  
  110.             ;mov r7,a
  111.             ;mov a,sum_rem
  112.             ;add a,r7
  113.             ;mov sum_rem,a
  114.  
  115. subtraction:
  116.            
  117.             ; Vichytanie mladshego baita i zanesenie rezul'tata v r4.
  118.             clr     c           ; Ochistka flaga perenosa.
  119.             mov     a,r4        ; Kopirovanie v akkumulyator.
  120.             subb    a,r6        ; Vichytanie.
  121.             mov     r4,a        ; Sohranenie rezul'tata.
  122.  
  123.             ; Vichytanie starshego baita i zaema i zanesenie rezul'tata v r3.
  124.             mov     a,r3        ; Kopirovanie v akkumulyator.
  125.             subb    a,r5        ; Vichytanie.
  126.             mov     r3,a        ; Sohranenie rezul'tata.
  127.            
  128.  
  129.             mov a,Remainder4
  130.             anl a,#255
  131.             jz nosubrem
  132.            
  133.             ;13.75-14 = -0.25 (primer)
  134.             ;100 = 4
  135.             ;75 = 3
  136.             ;50 = 2
  137.             ;25 = 1
  138.             ;this is for this
  139.             clr c
  140.             mov a,#4h
  141.             mov r7,Remainder4
  142.             subb a,r7
  143.             mov Remainder4,a
  144.            
  145.             ;srazu vichitaem ego iz obshego ostatka potomuchto otric chislo
  146.             clr c
  147.             mov r7,Remainder4
  148.             mov a,Remainder
  149.             subb a,r7
  150.             mov Remainder,a
  151.             mov r7,a
  152.             mov a,#0
  153.             mov Remainder4,a
  154.            
  155.             ;SLUCHAY ESLI OSTATOK OTRIC
  156.             mov a,r7
  157.             anl a,#80h
  158.             jz poloshostatok
  159.  
  160.             ;vichit 1 iz summ
  161.             clr c
  162.             mov a,sum+1
  163.             subb a,#1
  164.             mov sum+1,a
  165.             mov a,sum
  166.             subb a,#0
  167.             mov sum,a
  168.             ;obnov tek ostatok
  169.             clr c
  170.             mov a,Remainder
  171.             add a,#4
  172.             mov Remainder,a
  173.  
  174. poloshostatok:
  175.             ;mov Remainder,a
  176.            
  177.             mov a,r4
  178.             add a,#1
  179.             mov r4,a
  180.  
  181.             mov a,r3
  182.             addc a,#0
  183.             mov r3,a
  184.  
  185. nosubrem:
  186.             clr c
  187.             mov a,Remainder
  188.             addc a,Remainder4
  189.             mov Remainder,a
  190.            
  191.             subb a,#4
  192.             anl a,#80h
  193.             jnz noaddrem
  194.  
  195.             mov a,r4
  196.             add a,#1
  197.             mov r4,a
  198.            
  199.             mov a,r3
  200.             addc a,#0
  201.             mov r3,a
  202.            
  203.             clr c
  204.             mov a,Remainder
  205.             subb a,#4
  206.             mov Remainder,a
  207.  
  208. noaddrem:
  209.             ; Summirovanie rezul'tata s Q2.
  210.             mov     a,r4        ; Perenos mladhsego baita.
  211.             add     a,sum+1     ; Summa s mladshim baitom.
  212.             mov     sum+1,a     ; Vozvrat rezul'tata.
  213.  
  214.             mov     a,r3        ; Perenos starhego baita.
  215.             addc    a,sum       ; Summa so starshim baitom.
  216.             mov     sum,a       ; Vozvrat rezul'tata.
  217.            
  218.             clr c
  219.             mov a,r2
  220.             subb a,#1
  221.             mov r2,a
  222.             jz  endsub
  223.             jmp division4   ; Provarka okonchaniya cikla.
  224.  
  225. endsub:
  226.    
  227. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement