.


:




:

































 

 

 

 





, . , , . - , .

. . , . , . , .

. , . . . . , . . .

:

;

out_elem proc far; AX , ..

pusha;

div ten; AL, AH

mov dx,ax;

mov ah,0Eh

mov bh,00h;

mov al,dl; AL

add al,'0'; ASCII

int 10h; ,

mov al,dh

add al,'0'

int 10h;

popa

ret

out_ elem endp

;

xor si,si;

mov cx,n; n

out_massiv:

xor ax,ax

mov AL,Z[si]; Z

call out_elem;

inc si

loop massiv

.

bubble_sort

;

; : DS:DI =

; DX = ( )

bubble_sort proc near

pusha

cld

cmp dx,1

jbe sort_exit; ,

dec dx

sb_loop1:

mov cx,dx;

xor bx,bx; BX

mov si,di; SI

;

sn_loop2:

lodsw;

cmp ax,word ptr [si]

jbe no_swap;

; ,

xchg ax,word ptr [si];

mov word ptr [si-2],ax

inc bx; 1,

no_swap:

loop on_loop2

cmp bx,0; ,

jne sn_loop1;

sort_exit:

popa

ret

bubble_sort endp

, . , , . , . : , . - . . N N2 , - 2n*log2n .

:

; quick_sort

;

; : DS:BX =

; DX =

quicksort proc near

cmp dx,1; 1 0,

jle qsort_done;

xor di,di; (DI = 0)

mov si,dx; (SI = DX)

dec si; SI = DX-1, ,

shl si,1; 2,

mov ax,word ptr [bx]; AX = X1,

step_2:; ,

; , 1

cmp word ptr [bx][si],ax; XDI 1

jle step_3; XSI ,

sub si,2;

jmp short step_2;

step_3:; ,

; 1

;

cmp si,di; ,

je step_5; 5,

add di,2; :

; ,

cmp word ptr [bx][di],ax; 1,

jl step_3; 3

ste_4:

; DI ,

; , SI ,

; .

mov cx,word ptr [bx][di]; CX = XDI

xchg cx,word ptr [bx][si]; CX = XSI, XSI = XDI

mov word ptr [bx][di],cx; XDI = CX

jmp short step_2

step_5:; .

; X1,

; - 1

; 1 :

xchg ,word ptr [bx][di]; = XDI, XDI = X1

mov word ptr [bx],ax; X1 = AX

;

push dx

push di

push bx

 

mov dx,di; X1...XDI-1

shr dx,1; DX

call quick_sort;

 

pop bx

pop di

pop dx

add bx,di; XDI+1...XN

add bx,2; BX

shr di,1; XDI+1...XN

inc di

sub dx,di; DX

call quicksort;

qsort_done: ret

quicksort endp

, - , , . , , , . , , n*log2n , , ; . , , , , , - .

:

;1) Max .

.model small;

.stack 200h; 512

.data;

; 10 5 ( 2

; )

A dw 5 dup (5,2,8,3,1)

Max dw?; 2

MaxStr dw?; Max

db $;

.code;

Begin:

mov ax, @Data;

mov ds, ax

mov ax, A

mov Max, ax

; si

; (..

; 2 , 2 ,

; - 4 ..)

mov si, 2

; loop ,

;

mov cx, 4

for_cycle: mov ax, A[si]; - for_cycle

cmp ax, Max

jle do_else

mov Max, ax

do_else: add si, 2

loop for_cycle

; Max (

;Max , )

add ax, 48; Max

mov MaxStr, ax

mov dx, offset MaxStr

mov ax, 09h

int 21h

mov ax, 4C00h;

int 21h

end Begin

 

;2) A[N] Byte ( 8- ).
; .
;
; . .
; IndMax, ; IndMin.

;
; Mean.
.model small
.386
.stack 100h
.data
N dw 10; .
A db 3, 120, 2, 6, 11, 5, 4, 34, 15, 10
IndMax dw?; A.
IndMin dw?; A.
Mean db?; .
.code

;

cls_all proc;

pusha

mov ax,0003h; 03h (8025)

int 10h;

popa

ret

cls_all endp
Start:
mov ax, @data
mov ds, ax
mov si, 0; .
mov ch, -128; .
mov cl, 127; .
M1: mov al, A[si]
cmp al, ch; .
jle M2
mov ch, al; .
mov IndMax, si; .
inc IndMax; , .. si=i-1.
M2: cmp al, cl; .
jge M3
mov cl, al; .
mov IndMin, si; .
inc IndMin; , .. si=i-1.
M3: inc si; .
cmp si, N
jb M1
; (CL) (CH).
mov al, cl; AL = Min
add al, ch; AL = Min+Max
shr al, 1; AL = AL / 2 .
mov Mean, al; .
mov ax, 4c00h
int 21h
end Start





:


: 2015-10-01; !; : 1032 |


:

:

, - , ; , - .
==> ...

1729 - | 1735 -


© 2015-2024 lektsii.org - -

: 0.021 .