 |
��������� � �������� - ����� ��������� � ������� � ����� �� �����
- ������:
- ��� �������� ��������� ��� ������ ���������� � ������������� �������� � �������,� ������ � ������� ������� �� �����.��� ��������� ������������ ������� Lea ������ ��������� �������.
- �����:
- ����� �������� ����������� ���� ������� ���
������ ������� ������������ "�������������", ��� ��� ������ ���������� ��� �������� ��������
������ ���� ������ ���������:
�������� ������:12 23 -3 4 0 7
����������� ������� �������: -3
������������ ������� �������: 23
Press any key ..
.model tiny; ����� ����� �������� ����������� ���� ������� ���
.code
org 100h
start:
mov ax, 3
int 10h ; ������������� ��������� �����
lea dx, srcArray
mov ah, 9
int 21h
cld ; ���� ������������ ��������� ����������
; ��������� ���� �����������
mov cx, arsize
lea si, ar
@@_next:
lodsw
CALL writeWordDEC_signed
mov al, ' '
int 29h
int 29h
LOOP @@_next
; ����������� ������������ � �������������
lea si, ar
lodsw
mov min_el, ax
mov max_el, ax
mov cx, arsize
@@_analize_next:
lodsw
cmp ax, min_el
jge @@10
mov min_el, ax
@@10:
cmp ax, max_el
jle @@20
mov max_el, ax
@@20:
LOOP @@_analize_next
lea dx, minElem
mov ah, 9
int 21h
mov ax, min_el
CALL writeWordDEC_signed
lea dx, maxElem
mov ah, 9
int 21h
mov ax, max_el
CALL writeWordDEC_signed
lea dx, PressKey
mov ah,9
int 21h
xor ax, ax
int 16h
int 20h
; ��� ������������ ��� ������ ����� �� �����
writeWordDEC proc near
; ����� �� ����� ����� � AX, �������������� ��� �����������
push ax
push bx
push dx
push cx
mov bx, 10
xor cx, cx
@@1:
xor dx, dx
div bx
push dx
inc cx
or ax, ax
jnz @@1
@@2:
pop ax
add al, '0'
int 29h ; ��� ���������� ����� ������ ������ ���� -
; �������� ������ � AL �� �����
LOOP @@2
pop cx
pop dx
pop bx
pop ax
ret
writeWordDEC endp
WriteWordDEC_signed proc
; ����� �� ����� ����� � AX ��� ���������
; ������, ���� �������������, ������� �����, ���������� �
; ������������� � �������� ������������ writeWordDEC
or ax, ax
jns @@_no_sign
push ax
mov al, '-'
int 29h
pop ax
neg ax ; ��������� ����� �� +
@@_no_sign:
CALL writeWordDEC
ret
WriteWordDEC_signed endp
PressKey db 13,10,10,'Press any key ...$'
srcArray db '�������� ������:',13,10,'$'
maxElem db 13,10,'������������ ������� �������: $'
minElem db 13,10,'����������� ������� �������: $'
ar dw 12, 23, -3, 4, 0, 7 ; ���� ������ ���������� �����, ���� ������
arsize equ ($ - ar)/2 ; ��� ������������ �������� = ������ ������� � ������ (����� ���������)
; $ - �������� ���������� �������� ������
min_el dw ?
max_el dw ?
end start
|  |