Объясните мне

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
Венечка
Сообщения: 5
Зарегистрирован: 14 ноя 2004, 18:38
Откуда: Ульяноск

Нам на паскале задали написать прогу(требуется создать DOS-программу для просмотра фрагментов содержимого оперативной памяти. Основная цель работы – научиться эффективно пользоваться четырехбайтными адресами реального режима процессоров i80x86.
) с такими требованиями:

-программа использует текстовый режим работы монитора;

-весь вывод на экран производится посредством прямой записи в видеопамять (в диапазон памяти адаптера CGA – сегмент $b800);

-программа выполняется в окне. Это окно исчезает после ее исполнения, при этом восстанавливается исходное содержимое экрана;

-окно состоит из двух полей: поля просмотра фрагмента содержимого памяти и -поля ввода базового адреса;

-после нажатия на ключевую комбинацию клавиш (например клавиша 'Ins' для сегментной части адреса и клавиша 'Del' для смещения) программа позволяет ввести базовый адрес (с которого начинается отображаемый диапазон);

-нажатие на стрелки вверх и вниз вызывает прокрутку содержимого оперативной памяти в окне просмотра;

-нажатие на клавиши 'PgUp' и 'PgDn' вызывает ускоренную прокрутку содержимого;

-в окне отображения выводится несколько (не менее четырех) строк формата: <адрес> - <серия слов>;

-детали ввода базового адреса и вывода дампа памяти оговариваются в вариантах.
Ну вот мое задание:

1) Базовый адрес задается в десятеричном виде одним компонентом – абсолютным номером ячейки и 2)Содержимое выводится в символьном виде сериями по 16 однобайтовых слов.

Я сделала все классно, а препод не принял.... :( Прикололся и говорит перепиши используя ассемблерные вставки... И еще требования:
-Программа предоставляет возможность переключать режимы вывода содержимого памяти во время работы.

-По нажатию функциональных клавиш программа должна перемещаться к указанным в варианте задания структурам данных DOS и демонстрировать их содержимое.

-Содержимое структур данных DOS производится как в любом из трех стандартных режимов, так и в режиме специфическом для данной структуры, то есть с интерпретацией данных в контексте их предназначения (в виде записи с именованными полями).

-Программа получает информацию о расположении структур данных DOS посредством системных запросов, выполняемых через программные прерывания.

-В управлении монитором наряду с прямым доступом к видеопамяти используются функции прерывания BIOS 10h. В частности через BIOS выполняется управление положением курсора.

Как, вообще не представляю?! Я в паскале то не ахти, а тут ещё ассемблер... :(
ОБЪЯСНИТЕ, ПОЖАЛУЙСТА!!

[/b]
ДРАЙВ ФОРЕВА!
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Вопрос слишком объемен и носит очень общий характер, чтобы на него можно было ответить в рамках конференции, и не имеет прямого отношения к паскалю...
-Программа предоставляет возможность переключать режимы вывода содержимого памяти во время работы.
Уточните у преподавателя какие должны быть режимы и по нажатию на определеные клавиши переключайте режимы. Скорее всего это относится к выводу на экран с группировкой по байтам, словам, двойным словам или в ASCII-режиме.

-По нажатию функциональных клавиш программа должна перемещаться к указанным в варианте задания структурам данных DOS и демонстрировать их содержимое.
-Содержимое структур данных DOS производится как в любом из трех стандартных режимов, так и в режиме специфическом для данной структуры, то есть с интерпретацией данных в контексте их предназначения (в виде записи с именованными полями).
Какие именно структуры нужны? Давным давно был такой справочник TechHelp (может у кого и остался) - поспрашивайте - там есть много структур DOS и указание как к ним достучаться. Берем описание самой структуры, и выводим на экран ее поля и их значения, каждое значение имеет специфический для него тип (byte, word, LASCII, ASCII$, ASCIIZ и т.д.).
-В управлении монитором наряду с прямым доступом к видеопамяти используются функции прерывания BIOS 10h. В частности через BIOS выполняется управление положением курсора.
В TechHelp были описаны все функции BIOS в том числе и эта. Сейчас уже не помню номер функции, но выглядит это так:

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

X:=...; Y:=...;
asm
  MOV CX, X
  MOV DX, Y
  MOV ah, номер_функции
  INT 10h
asm;
Ответить