
Отрицательные числа в массиве
Модератор: Andy
airyashov, благодарю за список функций прерывания, однако никак не разберусь, как же выполнить поставленное условие в коде 

Мне не понятна первая часть фразы Установить стратегию "последний подходящий"
airyashov, вот что смог найти:
Область памяти UMB
Функция DOS 58h — Считать/изменить стратегию выделения памяти
Ввод: АН = 58h
AL = 00h — считать стратегию
AL = 01h — изменить стратегию
ВХ = новая стратегия
биты 2 – 0:
00 — первый подходящий блок
01 — наиболее подходящий блок
11 — последний подходящий блок биты 4 – 3:
00 — обычная память
01 — UMB (DOS 5.0+)
10 — UMB, затем обычная память (DOS 5.0+)
AL = 02h — считать состояние UMB
AL = 03h — установить состояние UMB
ВХ = новое состояние: 00 — не используются, 01 — используются
Вывод: CF = 0, АХ = текущая стратегия для AL = 0, состояние UMB для AL = 2
CF = 1, AX = 01h, если функция не поддерживается (если не запущен менеджер памяти (например, EMM386) или нет строки DOS = UMB в CONFIG.SYS
Если программа изменяла стратегию выделения памяти или состояние UMB, она обязательно должна их восстановить перед окончанием работы.
Только зачем она и для чего в данный момент не имею ни малейшего понятия.
Область памяти UMB
Функция DOS 58h — Считать/изменить стратегию выделения памяти
Ввод: АН = 58h
AL = 00h — считать стратегию
AL = 01h — изменить стратегию
ВХ = новая стратегия
биты 2 – 0:
00 — первый подходящий блок
01 — наиболее подходящий блок
11 — последний подходящий блок биты 4 – 3:
00 — обычная память
01 — UMB (DOS 5.0+)
10 — UMB, затем обычная память (DOS 5.0+)
AL = 02h — считать состояние UMB
AL = 03h — установить состояние UMB
ВХ = новое состояние: 00 — не используются, 01 — используются
Вывод: CF = 0, АХ = текущая стратегия для AL = 0, состояние UMB для AL = 2
CF = 1, AX = 01h, если функция не поддерживается (если не запущен менеджер памяти (например, EMM386) или нет строки DOS = UMB в CONFIG.SYS
Если программа изменяла стратегию выделения памяти или состояние UMB, она обязательно должна их восстановить перед окончанием работы.
Только зачем она и для чего в данный момент не имею ни малейшего понятия.
"Последний подходящий блок" отличается от "Первого подходящего" только адресом блока. "Последний подходящий" будет находится в самом конце кучи, если конечно память не сильно фрагментирована. Не даром функция имеет номер 58h, а это уже говорит о том, что она не является основной и без нее жить можно. По умолчанию MS-DOS использует стратегию "Первый подходящий". Я с ходу даже не могу привести пример где бы ее могли использовать и кому она будет нужна. С UMB все понятно, но вот стратегия...
It's a long way to the top if you wanna rock'n'roll
Что имеется на данный момент, помогите довести до конца

Код: Выделить всё
.386
.MODEL COMPACT
.STACK 4096
.data
.code
main PROC
mov ah,58h ;Код функции
mov al,01h ;Код подфункции
mov bl,02h ;Установка стратегии
INT 21h
mov ah,48h ;Код функции
mov bx,16h ;Выделяем размер памяти объёмом 16П
INT 21h
mov ah,4aH ;Код функции
main ENDP
mov al,4ch
INT 21h
END main