Для массива из слов:
| Код | .model tiny .186 .code org 100h start: call maxp call minp call sort call srednee ret
minp proc near xor bx,bx xor cx,cx mov cl,len shr cx,1 mov ax,massiv[bx] mov min,ax add bx,2 l2: cmp massiv[bx],ax jge l1 mov ax,massiv[bx] l1: add bx,2 loop l2 mov min,ax ret minp endp
maxp proc near xor bx,bx xor cx,cx mov cl,len shr cx,1 mov ax,massiv[bx] mov max,ax add bx,2 l5: cmp massiv[bx],ax jle l4 mov ax,massiv[bx] l4: add bx,2 loop l5 mov max,ax ret maxp endp
sort proc near xor cx,cx
mov i,1 l6: mov cl,len sub cx,2 shr cx,1 l7: mov di,cx mov si,cx shl di,1 shl si,1 sub si,2 mov ax,massiv[si] mov bx,massiv[di] cmp ax,bx jle l8 ;для сортировки по возрастанию ; jbe l8 для сортировки по убыванию mov massiv[si],bx mov massiv[di],ax l8: dec cx mov al,i cbw cmp cx,ax jae l7 inc i mov al,i mov bl,len shr bl,1 cmp al,bl jb l6 ret sort endp
srednee proc near ;с точностью до 0,5 xor bx,bx xor ax,ax xor cx,cx mov cl,len shr cx,1 push cx l9: add ax,massiv[bx] add bx,2 loop l9 pop cx xor dx,dx div cx mov sred,ax ret srednee endp
massiv dw 5612h,345h,645h,789h,6425h,123h,4h,112h ;произвольно len db $-massiv min dw ? max dw ? i db ? sred dw ? end start
|
|