Лабораторная работа №1 / ASM Version / asm_clear
.doc
assume cs:_TEXT
push bp
mov bp,sp
sub sp,4
push si
push di
mov si,word ptr [bp+4]
mov di,word ptr [bp+6]
fld dword ptr [si]
fstp dword ptr [bp-4]
fld dword ptr [di]
fstp dword ptr [si]
fwait
mov ax,word ptr [bp-2]
mov dx,word ptr [bp-4]
mov word ptr [di+2],ax
mov word ptr [di],dx
pop di
pop si
mov sp,bp
pop bp
ret
assume cs:_TEXT
push bp
mov bp,sp
sub sp,92
push si
push di
mov si,word ptr [bp+4]
mov word ptr [bp-50],1
mov ax,word ptr [bp+6]
mov word ptr [bp-90],ax
mov word ptr [bp-4],1
jmp @2@898
@2@58:
mov bx,word ptr [bp-4]
shl bx,1
lea ax,word ptr [bp-52]
add bx,ax
mov ax,word ptr [bx]
mov bx,word ptr [bp-4]
shl bx,1
lea dx,word ptr [bp-92]
add bx,dx
cmp ax,word ptr [bx]
jl short @2@114
mov ax,word ptr [bp-4]
dec ax
jmp @2@870
@2@114:
mov bx,word ptr [bp-4]
shl bx,1
lea ax,word ptr [bp-52]
add bx,ax
mov di,word ptr [bx]
mov bx,word ptr [bp-4]
shl bx,1
lea ax,word ptr [bp-92]
add bx,ax
mov ax,word ptr [bx]
mov word ptr [bp-2],ax
mov bx,word ptr [bp-2]
mov cl,2
shl bx,cl
fld dword ptr [bx+si]
fstp dword ptr [bp-10]
mov ax,di
fwait
add ax,word ptr [bp-2]
mov bx,2
cwd
idiv bx
mov word ptr [bp-6],dx
mov ax,word ptr [bp-2]
sub ax,di
cmp ax,5
jg @@2
jmp @2@422
mov bx,word ptr [bp-6]
mov cl,2
shl bx,cl
fld dword ptr [bx+si]
fcomp dword ptr [bp-10]
fstsw word ptr [bp-12]
fwait
mov ax,word ptr [bp-12]
sahf
jae short @2@198
mov bx,word ptr [bp-6]
mov cl,2
shl bx,cl
fld dword ptr [bx+si]
mov bx,di
mov cl,2
shl bx,cl
fcomp dword ptr [bx+si]
fstsw word ptr [bp-12]
fwait
mov ax,word ptr [bp-12]
sahf
ja short @2@254
@2@198:
mov bx,word ptr [bp-6]
mov cl,2
shl bx,cl
fld dword ptr [bx+si]
fcomp dword ptr [bp-10]
fstsw word ptr [bp-12]
fwait
mov ax,word ptr [bp-12]
sahf
jbe short @2@282
mov bx,word ptr [bp-6]
mov cl,2
shl bx,cl
fld dword ptr [bx+si]
mov bx,di
mov cl,2
shl bx,cl
fcomp dword ptr [bx+si]
fstsw word ptr [bp-12]
fwait
mov ax,word ptr [bp-12]
sahf
jae short @2@282
@2@254:
mov ax,word ptr [bp-2]
mov cl,2
shl ax,cl
mov dx,si
add dx,ax
push dx
mov ax,word ptr [bp-6]
mov cl,2
shl ax,cl
mov dx,si
add dx,ax
push dx
call near ptr @swap$qrft1
pop cx
pop cx
jmp @2@422
@2@282:
mov bx,di
mov cl,2
shl bx,cl
fld dword ptr [bx+si]
mov bx,word ptr [bp-6]
mov cl,2
shl bx,cl
fcomp dword ptr [bx+si]
fstsw word ptr [bp-12]
fwait
mov ax,word ptr [bp-12]
sahf
jae short @2@338
mov bx,di
mov cl,2
shl bx,cl
fld dword ptr [bx+si]
fcomp dword ptr [bp-10]
fstsw word ptr [bp-12]
fwait
mov ax,word ptr [bp-12]
sahf
ja short @2@394
@2@338:
mov bx,di
mov cl,2
shl bx,cl
fld dword ptr [bx+si]
mov bx,word ptr [bp-6]
mov cl,2
shl bx,cl
fcomp dword ptr [bx+si]
fstsw word ptr [bp-12]
fwait
mov ax,word ptr [bp-12]
sahf
jbe short @2@422
mov bx,di
mov cl,2
shl bx,cl
fld dword ptr [bx+si]
fcomp dword ptr [bp-10]
fstsw word ptr [bp-12]
fwait
mov ax,word ptr [bp-12]
sahf
jae short @2@422
@2@394:
mov ax,word ptr [bp-2]
mov cl,2
shl ax,cl
mov dx,si
add dx,ax
push dx
mov ax,di
mov cl,2
shl ax,cl
mov dx,si
add dx,ax
push dx
call near ptr @swap$qrft1
pop cx
pop cx
@2@422:
mov bx,word ptr [bp-2]
mov cl,2
shl bx,cl
fld dword ptr [bx+si]
fstp dword ptr [bp-10]
fwait
jmp short @2@702
@2@450:
jmp short @2@506
@2@478:
mov ax,di
inc ax
mov di,ax
@2@506:
mov bx,di
mov cl,2
shl bx,cl
fld dword ptr [bx+si]
fcomp dword ptr [bp-10]
fstsw word ptr [bp-12]
fwait
mov ax,word ptr [bp-12]
sahf
jb short @2@478
jmp short @2@562
@2@562:
mov ax,word ptr [bp-2]
dec ax
mov word ptr [bp-2],ax
cmp di,word ptr [bp-2]
jge short @2@646
mov bx,word ptr [bp-2]
mov cl,2
shl bx,cl
fld dword ptr [bx+si]
fcomp dword ptr [bp-10]
fstsw word ptr [bp-12]
fwait
mov ax,word ptr [bp-12]
sahf
ja short @2@562
@2@646:
cmp di,word ptr [bp-2]
jge short @2@702
mov ax,word ptr [bp-2]
mov cl,2
shl ax,cl
mov dx,si
add dx,ax
push dx
mov ax,di
mov cl,2
shl ax,cl
mov dx,si
add dx,ax
push dx
call near ptr @swap$qrft1
pop cx
pop cx
@2@702:
cmp di,word ptr [bp-2]
jl short @2@450
mov bx,word ptr [bp-4]
shl bx,1
lea ax,word ptr [bp-92]
add bx,ax
mov ax,word ptr [bx]
mov word ptr [bp-2],ax
mov ax,word ptr [bp-2]
mov cl,2
shl ax,cl
mov dx,si
add dx,ax
push dx
mov ax,di
mov cl,2
shl ax,cl
mov dx,si
add dx,ax
push dx
call near ptr @swap$qrft1
pop cx
pop cx
mov bx,word ptr [bp-4]
shl bx,1
lea ax,word ptr [bp-52]
add bx,ax
mov ax,di
sub ax,word ptr [bx]
mov bx,word ptr [bp-4]
shl bx,1
lea dx,word ptr [bp-92]
add bx,dx
mov dx,word ptr [bx]
sub dx,di
cmp ax,dx
jl short @2@786
mov bx,word ptr [bp-4]
shl bx,1
lea ax,word ptr [bp-52]
add bx,ax
mov ax,word ptr [bx]
mov bx,word ptr [bp-4]
shl bx,1
lea dx,word ptr [bp-50]
add bx,dx
mov word ptr [bx],ax
mov bx,word ptr [bp-4]
shl bx,1
lea ax,word ptr [bp-90]
add bx,ax
mov ax,di
dec ax
mov word ptr [bx],ax
mov bx,word ptr [bp-4]
shl bx,1
lea ax,word ptr [bp-52]
add bx,ax
mov ax,di
inc ax
jmp short @2@814
@2@786:
mov bx,word ptr [bp-4]
shl bx,1
lea ax,word ptr [bp-50]
add bx,ax
mov ax,di
inc ax
mov word ptr [bx],ax
mov bx,word ptr [bp-4]
shl bx,1
lea ax,word ptr [bp-92]
add bx,ax
mov ax,word ptr [bx]
mov bx,word ptr [bp-4]
shl bx,1
lea dx,word ptr [bp-90]
add bx,dx
mov word ptr [bx],ax
mov bx,word ptr [bp-4]
shl bx,1
lea ax,word ptr [bp-92]
add bx,ax
mov ax,di
dec ax
@2@814:
mov word ptr [bx],ax
mov ax,word ptr [bp-4]
inc ax
@2@870:
mov word ptr [bp-4],ax
@2@898:
cmp word ptr [bp-4],0
jle @@3
jmp @2@58
@@3:
pop di
pop si
mov sp,bp
pop bp
ret
assume cs:_TEXT
_main proc near
push bp
mov bp,sp
sub sp,36
?debug B
lea ax,word ptr [bp-36]
push ss
push ax
mov ax,offset DGROUP:d@w+0
push ds
push ax
mov cx,36
call near ptr N_SCOPY@
mov ax,8
push ax
lea ax,word ptr [bp-36]
push ax
call near ptr @quicksort$qpfi
pop cx
pop cx
xor ax,ax
jmp short @3@58
@3@58:
mov sp,bp
pop bp
ret
end