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 >
Wrap
Assembly Source File
|
1999-11-14
|
4KB
|
121 lines
CODE SEGMENT
ASSUME cs:CODE,ds:NOTHING
;
adrm equ DWORD PTR ss:[bp+10]
Rstr equ WORD PTR ss:[bp+8]
N equ WORD PTR ss:[bp+6]
;
Itek equ WORD PTR ss:[bp-2] ; ÆѬπΘ¿Ñ »ÑpѼѡ¡δÑ
Jst equ WORD PTR ss:[bp-4] ; páß»«½«ªÑ¡¡δÑ ó
TdlSt equ WORD PTR ss:[bp-6] ; «í½áßΓ¿ ßΓѬá
Tstr equ WORD PTR ss:[bp-8] ;
;
; Function Gauss ( m: pointer ; Rstr, N : word) : word;
; öπ¡¬µ¿∩ »p¿ó«ñ¿Γ ¬óáñpáΓ¡πε ¼áΓp¿µπ î ¬ ΓpÑπú«½∞¡«¼π ó¿ñπ »« á½ú«p¿Γ¼π
; âáπßßá ¿ páó¡á pá¡úπ ¼áΓp¿µδ
; î - êßσ«ñ¡á∩ ¼áΓp¿µá(ÅpÑ«ípẫóá¡¡á∩ ¼áΓp¿µá)
; Rstr - pẼÑp¡«ßΓ∞ ó íá⌐Γáσ ßΓp«¬¿ ¼áΓp¿µδ
; N - ΓѬπΘá∩ pẼÑp¡«ßΓ∞ ¼áΓp¿µδ ó í¿Γáσ(τ¿ß½« ßΓp«¬)
Gauss PROC FAR
PUBLIC Gauss
push bp
mov bp,sp ;Å«½πτ¿Γ∞ íáºπ ßΓѬá
sub sp,8
push ds
mov bx,N
add bx,7
shr bx,1
shr bx,1
shr bx,1
mov Tstr,bx
xor ax,ax
mov Itek,ax
mov Jst,ax
jmp short NWY
M310: jmp Finis
M240: inc Itek
mov ax,Itek
cmp ax,N
jae M310 ; îáΓp¿µá «ípáí«Γá¡á
mov bx,Tstr
NWY: lds si,adrm ;Å«½πτ¿Γ∞ áñpÑß ¼áΓp¿µδ
shr ax,1
rcr ch,1
shr ax,1
rcr ch,1
shr ax,1
rcr ch,1
shr ch,1
shr ch,1
shr ch,1
shr ch,1
shr ch,1
inc ch
sub bx,ax
add si,ax
mov ax,Jst
mul Rstr
mov dx,si ; ÇñpÑß ¡áτá½á »p¿óÑñÑ¡¿∩ ßΓ«½íµá
add si,ax
mov es,si ; ÇñpÑß íẫó«⌐ ßΓp«¬¿
mov di,N
sub di,Jst
N250: mov al,[si]
mov cl,ch
shr al,cl
jc PERST
add si,Rstr
dec di
jnz N250
jmp short M240
PERST: mov TdlSt,bx ; ÆѬπΘá∩ ñ½¿¡á ßΓp«¬¿
mov di,es
cmp di,si
je BD ; üẫóá∩ ßΓp«¬á ¡á ßó«Ñ¼ ¼ÑßΓÑ
c_per: mov al,[si]
mov ah,[di]
mov [di],al
mov [si],ah
inc di
inc si
dec bx
jnz c_per
BD: mov ax,N
N300: mov si,es
cmp dx,si
je K300 ; ÆѬπΘá∩ ßΓp«¬á ∩ó½∩ÑΓß∩ íẫó«⌐
mov di,dx
mov bl,[di]
mov cl,ch
shr bl,cl
jnc K300 ; Tek.ßΓp«¬á ¡Ñ ΓpÑíπÑΓ ¬«ppѬµ¿¿
mov bx,TdlSt
CM2: mov cl,[si] ; C½«ªÑ¡¿Ñ ΓѬπΘÑ⌐ ßΓp«¬¿
xor cl,[di] ; ß íẫó«⌐
mov [di],cl ; »« ¼«ñπ½ε 2
inc si
inc di
dec bx
jnz CM2
K300: add dx,Rstr
dec ax
jnz N300
inc Jst
jmp M240
Finis: mov ax,Jst ; pá¡ú ¼áΓp¿µδ
pop ds
mov sp,bp
pop bp ;ÉѺπ½∞ΓáΓ »ÑpÑñáÑΓß∩ τÑpѺ AX
ret 8
Gauss ENDP
CODE ENDS
END