home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 September / Chip_2002-09_cd1.bin / zkuste / delphi / kompon / d123456 / STR_BIT.ZIP / 16 / LINPR / GAUSS.ASM < prev    next >
Assembly Source File  |  1999-11-14  |  4KB  |  121 lines

  1. CODE      SEGMENT
  2.           ASSUME cs:CODE,ds:NOTHING
  3. ;
  4. adrm      equ     DWORD PTR ss:[bp+10]
  5. Rstr      equ     WORD PTR ss:[bp+8]
  6. N         equ     WORD PTR ss:[bp+6]
  7. ;
  8. Itek      equ     WORD PTR ss:[bp-2]        ; ÆѬπΘ¿Ñ »ÑpѼѡ¡δÑ
  9. Jst       equ     WORD PTR ss:[bp-4]        ; páß»«½«ªÑ¡¡δÑ ó
  10. TdlSt     equ     WORD PTR ss:[bp-6]        ; «í½áßΓ¿ ßΓѬá
  11. Tstr      equ     WORD PTR ss:[bp-8]        ;
  12. ;
  13. ; Function Gauss ( m: pointer ; Rstr, N : word) : word;
  14. ; öπ¡¬µ¿∩ »p¿ó«ñ¿Γ ¬óáñpáΓ¡πε ¼áΓp¿µπ î ¬ ΓpÑπú«½∞¡«¼π ó¿ñπ »« á½ú«p¿Γ¼π
  15. ; âáπßßá ¿ páó¡á pá¡úπ ¼áΓp¿µδ
  16. ; î    - êßσ«ñ¡á∩ ¼áΓp¿µá(ÅpÑ«ípẫóá¡¡á∩ ¼áΓp¿µá)
  17. ; Rstr - pẼÑp¡«ßΓ∞ ó íá⌐Γáσ ßΓp«¬¿ ¼áΓp¿µδ
  18. ; N    - ΓѬπΘá∩ pẼÑp¡«ßΓ∞ ¼áΓp¿µδ ó í¿Γáσ(τ¿ß½« ßΓp«¬)
  19.  
  20. Gauss     PROC FAR
  21.           PUBLIC Gauss
  22.           push    bp
  23.           mov     bp,sp              ;Å«½πτ¿Γ∞ íáºπ ßΓѬá
  24.           sub     sp,8
  25.           push    ds
  26.  
  27.           mov     bx,N
  28.           add     bx,7
  29.           shr     bx,1
  30.           shr     bx,1
  31.           shr     bx,1
  32.           mov     Tstr,bx
  33.           xor     ax,ax
  34.           mov     Itek,ax
  35.           mov     Jst,ax
  36.           jmp     short NWY
  37.  
  38. M310:     jmp     Finis
  39. M240:     inc     Itek
  40.           mov     ax,Itek
  41.           cmp     ax,N
  42.           jae     M310               ; îáΓp¿µá «ípáí«Γá¡á
  43.           mov     bx,Tstr
  44. NWY:      lds     si,adrm            ;Å«½πτ¿Γ∞ áñpÑß ¼áΓp¿µδ
  45.           shr     ax,1
  46.           rcr     ch,1
  47.           shr     ax,1
  48.           rcr     ch,1
  49.           shr     ax,1
  50.           rcr     ch,1
  51.           shr     ch,1
  52.           shr     ch,1
  53.           shr     ch,1
  54.           shr     ch,1
  55.           shr     ch,1
  56.           inc     ch
  57.           sub     bx,ax
  58.           add     si,ax
  59.           mov     ax,Jst
  60.           mul     Rstr
  61.           mov     dx,si           ; ÇñpÑß ¡áτá½á »p¿óÑñÑ¡¿∩ ßΓ«½íµá
  62.           add     si,ax
  63.           mov     es,si           ; ÇñpÑß íẫó«⌐ ßΓp«¬¿
  64.           mov     di,N
  65.           sub     di,Jst
  66. N250:     mov     al,[si]
  67.           mov     cl,ch
  68.           shr     al,cl
  69.           jc      PERST
  70.           add     si,Rstr
  71.           dec     di
  72.           jnz     N250
  73.           jmp     short M240
  74.  
  75. PERST:    mov     TdlSt,bx        ; ÆѬπΘá∩ ñ½¿¡á ßΓp«¬¿
  76.           mov     di,es
  77.           cmp     di,si
  78.           je      BD              ; üẫóá∩ ßΓp«¬á ¡á ßó«Ñ¼ ¼ÑßΓÑ
  79. c_per:    mov     al,[si]
  80.           mov     ah,[di]
  81.           mov     [di],al
  82.           mov     [si],ah
  83.           inc     di
  84.           inc     si
  85.           dec     bx
  86.           jnz     c_per
  87.  
  88. BD:       mov     ax,N
  89. N300:     mov     si,es
  90.           cmp     dx,si
  91.           je      K300            ; ÆѬπΘá∩ ßΓp«¬á ∩ó½∩ÑΓß∩ íẫó«⌐
  92.           mov     di,dx
  93.           mov     bl,[di]
  94.           mov     cl,ch
  95.           shr     bl,cl
  96.           jnc     K300            ; Tek.ßΓp«¬á ¡Ñ ΓpÑíπÑΓ ¬«ppѬµ¿¿
  97.           mov     bx,TdlSt
  98. CM2:      mov     cl,[si]         ; C½«ªÑ¡¿Ñ ΓѬπΘÑ⌐ ßΓp«¬¿
  99.           xor     cl,[di]         ; ß íẫó«⌐
  100.           mov     [di],cl         ; »« ¼«ñπ½ε 2
  101.           inc     si
  102.           inc     di
  103.           dec     bx
  104.           jnz     CM2
  105. K300:     add     dx,Rstr
  106.           dec     ax
  107.           jnz     N300
  108.  
  109.           inc     Jst
  110.           jmp     M240
  111.  
  112. Finis:    mov     ax,Jst          ; pá¡ú ¼áΓp¿µδ
  113.  
  114.           pop     ds
  115.           mov     sp,bp
  116.           pop     bp                ;ÉѺπ½∞ΓáΓ »ÑpÑñáÑΓß∩ τÑpѺ AX
  117.           ret     8
  118. Gauss     ENDP
  119. CODE      ENDS
  120.           END
  121.