Исходный массив:
12 23 -3 4 0 7
Минимальный элемент массива: -3
Максимальный элемент массива: 23
Press any key ...
Исходный массив:
12 23 -3 4 0 7
Минимальный элемент массива: -3
Максимальный элемент массива: 23
Press any key ...
; набором символов
; ;@@@@
; отметил то, что существенно изменил
dseg segment "data"
PressKey db 13,10,10,'Press any key ...$'
srcArray db 'Исходный массив:',13,10,'$'
minElem db 13,10,'Минимальный элемент: $'
ar dw 12, 23, -113, 4, 1, 7
arsize equ ($ - ar)
min_el dw ?
max_el dw ?
dseg ends
sseg segment stack "stack"
db 256 dup(?)
sseg ends
cseg segment "code"
main proc near
assume cs:cseg,ds:dseg,ss:sseg
mov ax, dseg ;@@@@
mov ds, ax ;@@@@ установить сегмент DS
mov ax, 3 ;@@@@
int 10h ;@@@@ инициализировать графический режим
lea bx,ar
mov cx,arsize
lea si,min_el
call min_elem
lea dx, minElem ;@@@@
mov ah, 9 ;@@@@
int 21h ;@@@@ сообщение о ...
mov ax,[si]
call WriteWordDEC_signed
lea dx, PressKey ;@@@@
mov ah, 9 ;@@@@
int 21h ;@@@@
xor ax, ax ;@@@@ ждать нажатия клавиши
int 16h ;@@@@
mov ax, 4c00h ;@@@@ и код выхода 0 установить лучше
int 21h
main endp
min_elem proc near
push ax
mov ax,[bx]
mov di,0
c: cmp ax,[bx]
jle m3
mov ax,[bx]
m3: add bx,2
loop c
mov [si],ax
pop ax
ret
min_elem endp
writeWordDEC proc near
push ax
push bx
push dx
push cx
mov bx, 10
xor cx, cx
m1:
xor dx, dx
div bx
push dx
inc cx
or ax, ax
jnz m1
m2:
pop ax
add al, '0'
int 29h
LOOP m2
pop cx
pop dx
pop bx
pop ax
ret
writeWordDEC endp
WriteWordDEC_signed proc
or ax, ax
jns no_sign
push ax
mov al, '-'
int 29h
pop ax
neg ax
no_sign:
CALL writeWordDEC
ret
WriteWordDEC_signed endp
cseg ends
end main
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.