Отрицательные числа в массиве

Низкоуровневое программирование портов, микроконтроллеров и т.д.

Модератор: Andy

Xariec
Сообщения: 7
Зарегистрирован: 04 апр 2009, 16:09

09 апр 2009, 21:02

airyashov, благодарю за список функций прерывания, однако никак не разберусь, как же выполнить поставленное условие в коде :(
airyashov
Сообщения: 416
Зарегистрирован: 02 ноя 2007, 10:31

10 апр 2009, 07:57

Мне не понятна первая часть фразы Установить стратегию "последний подходящий"
Xariec
Сообщения: 7
Зарегистрирован: 04 апр 2009, 16:09

10 апр 2009, 08:47

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, она обязательно должна их восстановить перед окончанием работы.

Только зачем она и для чего в данный момент не имею ни малейшего понятия.
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

10 апр 2009, 09:38

"Последний подходящий блок" отличается от "Первого подходящего" только адресом блока. "Последний подходящий" будет находится в самом конце кучи, если конечно память не сильно фрагментирована. Не даром функция имеет номер 58h, а это уже говорит о том, что она не является основной и без нее жить можно. По умолчанию MS-DOS использует стратегию "Первый подходящий". Я с ходу даже не могу привести пример где бы ее могли использовать и кому она будет нужна. С UMB все понятно, но вот стратегия...
It's a long way to the top if you wanna rock'n'roll
Xariec
Сообщения: 7
Зарегистрирован: 04 апр 2009, 16:09

12 апр 2009, 21:07

Что имеется на данный момент, помогите довести до конца :confused:

Код: Выделить всё

.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
Ответить