IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

 
 Ответить  Открыть новую тему 
> Программ на паскале с вставками на ассемблере, как это делать вообще
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 8
Пол: Женский

Репутация: -  0  +


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


--------------------
Драйв FoReVeR!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Венечка
А можно попросить присоединить исходник твоей программы? Посмотрим, чего он хочет...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 8
Пол: Женский

Репутация: -  0  +


Денег, наверно... ;)

Исходник именно для моего задания найти не могу, а вот другой иходник, где задание 1)Базовый адрес задается в десятеричном виде двумя компонентами: сегментом и смещениеми 2)Содержимое выводится в восьмеричном виде сериями по 8 однобайтовых слов.
Оно с моим почти идентично, там чуток поменять - это не проблема, главно хоть в глаза увидеть как должно быть.


Прикрепленные файлы
Прикрепленный файл  Labr1_1.txt ( 6.45 килобайт ) Кол-во скачиваний: 447


--------------------
Драйв FoReVeR!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Цитата
Прикололся и говорит перепиши используя ассемблерные вставки... И еще требования:

Ассемблерные вставки? так надо на пасе писать основной код что-ли???

ЗЫ: однако вы самокритичны...
не надо так... ;)


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





Группа: Пользователи
Сообщений: 8
Пол: Женский

Репутация: -  0  +


Ага, основной код надо на паскале (чтоб его ! sad.gif )
А куда эти вставки? Фиг знает, я поняла что процедуры переписывать надо, там ещё слово "asm" должно быть, какие-то АН, ВН. Я же говорю НУ НЕ ДАНО МНЕ! :ypr:


--------------------
Драйв FoReVeR!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Автооответчик
*****

Группа: Пользователи
Сообщений: 1 188
Пол: Мужской
Реальное имя: Александр

Репутация: -  16  +


Цитата
НУ НЕ ДАНО МНЕ!

прекратить самоуничижение angry.gif lol.gif
Ассемблер Вы (а можно на "ты" ? ) изучали ?


--------------------
Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Цитата
там ещё слово "asm" должно быть

Асм это зарезервированно слово для начала вставки ассемблерной.
Цитата
какие-то АН, ВН.

Это регистры.
AX: AH, AL
BX: BH, BK
и так далее... smile.gif


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8





Группа: Пользователи
Сообщений: 8
Пол: Женский

Репутация: -  0  +


Цитата(GoodWind @ 14.11.04 21:15)
Ассемблер Вы (а можно на "ты" ? ) изучали ?

В том-то и дело в жизни об ассемблере ничего не знаю! (на "ты" можно ;) ) А то что знаю недостаточно для решения этой задачи...
Самое главное время на изучение нет, сдавать в пятницу, в эту... unsure.gif


--------------------
Драйв FoReVeR!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Стоп!
Если вы не изучали асма, то ва мне могут давать такого задания!


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10





Группа: Пользователи
Сообщений: 8
Пол: Женский

Репутация: -  0  +


Цитата
А куда эти вставки? Фиг знает, я поняла что процедуры переписывать надо, там ещё слово "asm" должно быть, какие-то АН, ВН.

Представляю как это смешно - НЕ МОЧЬ СДЕЛАТЬ ТАКУЮ ПРОГУ, ТОЛЬКО ИЗ_ЗА ТОГО, ЧТО ТОЛКОМ РАЗОБРАТЬСЯ ВРЕМЕНИ НЕ ДАЛИ!
Эээх, быть мне дворником :p7:


--------------------
Драйв FoReVeR!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11





Группа: Пользователи
Сообщений: 8
Пол: Женский

Репутация: -  0  +


Цитата(Oleg_Z @ 14.11.04 22:49)
Стоп!
Если вы не изучали асма, то ва мне могут давать такого задания!

В нашем универе всё возможно!!! А так как у нас в группе все ВСЁ понимают, обычным людям никаких объяснений и пояснений не дали. sad.gif Поэтому-то и обидно, и досадно - сижу и парюсь, только толка никакого.


--------------------
Драйв FoReVeR!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Цитата
Эээх, быть мне дворником 

Неа, der Soldaten! lol.gif
:D


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Гость






Oleg_Z

Offtop:
Цитата
Я сделала все классно

Или не только у нас девушки служат?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Блин, Run-Time-Error у меня!
Я и не посмотрел профиль, а ник не дочита, мне показалосьт Ванечка!
Извините.. тогда надо помочь на 100% smile.gif
Щас ТП установлю ...


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15





Группа: Пользователи
Сообщений: 8
Пол: Женский

Репутация: -  0  +


Цитата
Я и не посмотрел профиль, а ник не дочита, мне показалосьт Ванечка!

Цитата
Неа, der Soldaten


Ребят! Ну вы насмешили - хоть настроение подняли! Пасибки rolleyes.gif


--------------------
Драйв FoReVeR!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Бывалый
***

Группа: Пользователи
Сообщений: 180
Пол: Мужской

Репутация: -  2  +


интересно, зачем через BIOS выполняется управление положением курсора, если вывод на экран производится посредством прямой записи в видеопамять (в диапазон памяти адаптера CGA – сегмент $b800) ?
и еще, какие структуры данных DOS подразумеваются?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Бывалый
***

Группа: Пользователи
Сообщений: 180
Пол: Мужской

Репутация: -  2  +


Венечка
можно начать с процедуры вывода на экран (как раз посредством прямой записи в видеопамять)
procedure ShowString(x,y: word; s: string);
assembler;
asm
 push ds; push si;   {сохраняем важные регистры}
 mov  ax,0B800h; mov  es,ax;  {загружаем сегмент видеопамяти}
 mov  ax,y; mov  dx,160; mul  dx;  {умножаем Y на 80 и на 2}
 mov  di,x; shl  di,1;  {умножаем X на 2}
 add  di,ax;  {складываем Х и Y}
 lds  si,s;    {загружаем адрес строки s}
 xor  ch,ch;  {в старшем байте счетчика цикла ноль}
 lodsb; mov  cl,al;  {загружаем из строки ее длину в младший байт счетчика }
@1:lodsb; stosb;  {напечатать один символ}
 inc  di; loop @1;  {пропустить на экране байт атрибутов и продолжить цикл}
 pop  si; pop  ds;  {восстанавливаем важные регистры}
end;


а объекты обязательно использовать в программе? может лучше без них?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18





Группа: Пользователи
Сообщений: 8
Пол: Женский

Репутация: -  0  +


Спасибо, P@sh@! smile.gif
Вот гляньте в ехешник - это он нам пример привел как должна прога выглядеть после компиляции, а сам код должен быть написан с ассемблерными вставками.


Прикрепленные файлы
Прикрепленный файл  OS04_1S.EXE ( 6.34 килобайт ) Кол-во скачиваний: 5


--------------------
Драйв FoReVeR!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 20.04.2024 23:08
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name