Скачиваний:
50
Добавлен:
01.05.2014
Размер:
306.18 Кб
Скачать

Idiv bx

mov word ptr [bp-6],dx

;

; if ((j-i)>5)

;

mov ax,word ptr [bp-2]

sub ax,di

cmp ax,5

jg @@2

jmp @2@422

@@2:

;

; if (((x[mid]<pivot) && (x[mid]>x[i])) || ((x[mid]>pivot) && (x[mid]<x[i])))

;

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:

;

; swap(x[mid],x[j]);

;

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:

;

; else

; if (((x[i]<x[mid]) && (x[i]>pivot)) || ((x[i]>x[mid]) && (x[i]<pivot)))

;

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:

;

; swap(x[i],x[j]);

;

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:

;

; pivot = x[j];

;

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:

;

; while (i<j)

; {

; while (x[i]<pivot)

; { i = i+1; }

;

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:

;

; j = j-1;

; while ((i<j) && (pivot<x[j]))

; { j = j-1; }

;

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:

;

; if (i<j)

;

cmp di,word ptr [bp-2]

jge short @2@702

;

; { swap(x[i],x[j]); }

;

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

;

; } // while

; j = right[sp]; // pivot to i

;

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

;

; swap(x[i],x[j]);

;

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

;

; if (i-left[sp]>=right[sp]-i)

;

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

;

; { // put shorter part first

; left[sp+1] = left[sp];

;

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

;

; right[sp+1] = i-1;

;

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

;

; left[sp] = i+1;

;

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:

;

; }

; else

; {

; left[sp+1] = i+1;

;

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

;

; right[sp+1] = right[sp];

;

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

;

; right[sp] = i-1;

;

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

;

; }

; sp = sp+1; // push stack

;

?debug L 71

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:

;

; } // if

; } // while

;

;

; }

;

pop di

pop si

mov sp,bp

pop bp

ret

;

; int main()

;

assume cs:_TEXT

_main proc near

push bp

mov bp,sp

sub sp,36

?debug B

;

; {

; float array[] = {0, 1, 3, 2, 12, 5, 9, 7, 14};

;

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@

;

;

; quicksort(array, 8);

;

mov ax,8

push ax

lea ax,word ptr [bp-36]

push ax

call near ptr @quicksort$qpfi

pop cx

pop cx

;

;

; return 0;

;

Соседние файлы в папке Лабораторная работа №1
  • #
    01.05.2014306.18 Кб50lab1.doc
  • #
    01.05.201419.46 Кб55Метрики.xls