Программ на паскале с вставками на ассемблере, как это делать вообще |
1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
Программ на паскале с вставками на ассемблере, как это делать вообще |
Венечка |
14.11.2004 18:58
Сообщение
#1
|
Группа: Пользователи Сообщений: 8 Пол: Женский Репутация: 0 |
Нам на паскале задали написать прогу(требуется создать DOS-программу для просмотра фрагментов содержимого оперативной памяти. Основная цель работы – научиться эффективно пользоваться четырехбайтными адресами реального режима процессоров i80x86.
) с такими требованиями: -программа использует текстовый режим работы монитора; -весь вывод на экран производится посредством прямой записи в видеопамять (в диапазон памяти адаптера CGA – сегмент $b800); -программа выполняется в окне. Это окно исчезает после ее исполнения, при этом восстанавливается исходное содержимое экрана; -окно состоит из двух полей: поля просмотра фрагмента содержимого памяти и -поля ввода базового адреса; -после нажатия на ключевую комбинацию клавиш (например клавиша 'Ins' для сегментной части адреса и клавиша 'Del' для смещения) программа позволяет ввести базовый адрес (с которого начинается отображаемый диапазон); -нажатие на стрелки вверх и вниз вызывает прокрутку содержимого оперативной памяти в окне просмотра; -нажатие на клавиши 'PgUp' и 'PgDn' вызывает ускоренную прокрутку содержимого; -в окне отображения выводится несколько (не менее четырех) строк формата: <адрес> - <серия слов>; -детали ввода базового адреса и вывода дампа памяти оговариваются в вариантах. Ну вот мое задание: 1) Базовый адрес задается в десятеричном виде одним компонентом – абсолютным номером ячейки и 2)Содержимое выводится в символьном виде сериями по 16 однобайтовых слов. Я сделала все классно, а препод не принял.... Прикололся и говорит перепиши используя ассемблерные вставки... И еще требования: -Программа предоставляет возможность переключать режимы вывода содержимого памяти во время работы. -По нажатию функциональных клавиш программа должна перемещаться к указанным в варианте задания структурам данных DOS и демонстрировать их содержимое. -Содержимое структур данных DOS производится как в любом из трех стандартных режимов, так и в режиме специфическом для данной структуры, то есть с интерпретацией данных в контексте их предназначения (в виде записи с именованными полями). -Программа получает информацию о расположении структур данных DOS посредством системных запросов, выполняемых через программные прерывания. -В управлении монитором наряду с прямым доступом к видеопамяти используются функции прерывания BIOS 10h. В частности через BIOS выполняется управление положением курсора. Как, вообще не представляю?! Я в паскале то не ахти, а тут ещё ассемблер... ОБЪЯСНИТЕ, ПОЖАЛУЙСТА!! -------------------- Драйв FoReVeR!
|
volvo |
14.11.2004 19:13
Сообщение
#2
|
Гость |
Венечка
А можно попросить присоединить исходник твоей программы? Посмотрим, чего он хочет... |
Венечка |
14.11.2004 19:48
Сообщение
#3
|
Группа: Пользователи Сообщений: 8 Пол: Женский Репутация: 0 |
Денег, наверно... ;)
Исходник именно для моего задания найти не могу, а вот другой иходник, где задание 1)Базовый адрес задается в десятеричном виде двумя компонентами: сегментом и смещениеми 2)Содержимое выводится в восьмеричном виде сериями по 8 однобайтовых слов. Оно с моим почти идентично, там чуток поменять - это не проблема, главно хоть в глаза увидеть как должно быть. Прикрепленные файлы Labr1_1.txt ( 6.45 килобайт ) Кол-во скачиваний: 296 -------------------- Драйв FoReVeR!
|
Altair |
14.11.2004 20:52
Сообщение
#4
|
Ищущий истину Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Цитата Прикололся и говорит перепиши используя ассемблерные вставки... И еще требования: Ассемблерные вставки? так надо на пасе писать основной код что-ли??? ЗЫ: однако вы самокритичны... не надо так... ;) -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Венечка |
14.11.2004 21:10
Сообщение
#5
|
Группа: Пользователи Сообщений: 8 Пол: Женский Репутация: 0 |
Ага, основной код надо на паскале (чтоб его ! )
А куда эти вставки? Фиг знает, я поняла что процедуры переписывать надо, там ещё слово "asm" должно быть, какие-то АН, ВН. Я же говорю НУ НЕ ДАНО МНЕ! :ypr: -------------------- Драйв FoReVeR!
|
GoodWind |
14.11.2004 21:15
Сообщение
#6
|
Автооответчик Группа: Модераторы Сообщений: 1 188 Пол: Мужской Реальное имя: Александр Репутация: 16 |
Цитата НУ НЕ ДАНО МНЕ! прекратить самоуничижение Ассемблер Вы (а можно на "ты" ? ) изучали ? -------------------- Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
|
Altair |
14.11.2004 21:48
Сообщение
#7
|
Ищущий истину Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Цитата там ещё слово "asm" должно быть Асм это зарезервированно слово для начала вставки ассемблерной. Цитата какие-то АН, ВН. Это регистры. AX: AH, AL BX: BH, BK и так далее... -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Венечка |
14.11.2004 22:39
Сообщение
#8
|
Группа: Пользователи Сообщений: 8 Пол: Женский Репутация: 0 |
Цитата(GoodWind @ 14.11.04 21:15) Ассемблер Вы (а можно на "ты" ? ) изучали ? В том-то и дело в жизни об ассемблере ничего не знаю! (на "ты" можно ;) ) А то что знаю недостаточно для решения этой задачи... Самое главное время на изучение нет, сдавать в пятницу, в эту... -------------------- Драйв FoReVeR!
|
Altair |
14.11.2004 22:49
Сообщение
#9
|
Ищущий истину Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Стоп!
Если вы не изучали асма, то ва мне могут давать такого задания! -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Венечка |
14.11.2004 22:50
Сообщение
#10
|
Группа: Пользователи Сообщений: 8 Пол: Женский Репутация: 0 |
Цитата А куда эти вставки? Фиг знает, я поняла что процедуры переписывать надо, там ещё слово "asm" должно быть, какие-то АН, ВН. Представляю как это смешно - НЕ МОЧЬ СДЕЛАТЬ ТАКУЮ ПРОГУ, ТОЛЬКО ИЗ_ЗА ТОГО, ЧТО ТОЛКОМ РАЗОБРАТЬСЯ ВРЕМЕНИ НЕ ДАЛИ! Эээх, быть мне дворником :p7: -------------------- Драйв FoReVeR!
|
Венечка |
14.11.2004 22:55
Сообщение
#11
|
Группа: Пользователи Сообщений: 8 Пол: Женский Репутация: 0 |
Цитата(Oleg_Z @ 14.11.04 22:49) Стоп! Если вы не изучали асма, то ва мне могут давать такого задания! В нашем универе всё возможно!!! А так как у нас в группе все ВСЁ понимают, обычным людям никаких объяснений и пояснений не дали. Поэтому-то и обидно, и досадно - сижу и парюсь, только толка никакого. -------------------- Драйв FoReVeR!
|
Altair |
14.11.2004 23:03
Сообщение
#12
|
Ищущий истину Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Цитата Эээх, быть мне дворником Неа, der Soldaten! :D -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
volvo |
14.11.2004 23:11
Сообщение
#13
|
Гость |
Oleg_Z
Offtop: Цитата Я сделала все классно Или не только у нас девушки служат? |
Altair |
14.11.2004 23:16
Сообщение
#14
|
Ищущий истину Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Блин, Run-Time-Error у меня!
Я и не посмотрел профиль, а ник не дочита, мне показалосьт Ванечка! Извините.. тогда надо помочь на 100% Щас ТП установлю ... -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Венечка |
14.11.2004 23:32
Сообщение
#15
|
Группа: Пользователи Сообщений: 8 Пол: Женский Репутация: 0 |
Цитата Я и не посмотрел профиль, а ник не дочита, мне показалосьт Ванечка! Цитата Неа, der Soldaten Ребят! Ну вы насмешили - хоть настроение подняли! Пасибки -------------------- Драйв FoReVeR!
|
P@sh@ |
15.11.2004 19:38
Сообщение
#16
|
Бывалый Группа: Пользователи Сообщений: 180 Пол: Мужской Репутация: 2 |
интересно, зачем через BIOS выполняется управление положением курсора, если вывод на экран производится посредством прямой записи в видеопамять (в диапазон памяти адаптера CGA – сегмент $b800) ?
и еще, какие структуры данных DOS подразумеваются? |
P@sh@ |
15.11.2004 20:06
Сообщение
#17
|
Бывалый Группа: Пользователи Сообщений: 180 Пол: Мужской Репутация: 2 |
Венечка
можно начать с процедуры вывода на экран (как раз посредством прямой записи в видеопамять) procedure ShowString(x,y: word; s: string); а объекты обязательно использовать в программе? может лучше без них? |
Венечка |
15.11.2004 22:58
Сообщение
#18
|
Группа: Пользователи Сообщений: 8 Пол: Женский Репутация: 0 |
Спасибо, P@sh@!
Вот гляньте в ехешник - это он нам пример привел как должна прога выглядеть после компиляции, а сам код должен быть написан с ассемблерными вставками. Прикрепленные файлы OS04_1S.EXE ( 6.34 килобайт ) Кол-во скачиваний: 5 -------------------- Драйв FoReVeR!
|
Текстовая версия | 29.04.2024 2:53 |