![]() |
|
![]() ![]() ![]() |
|
Dr.No_xXx |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 215 Регистрация: 24.2.2005 Репутация: нет Всего: нет |
ЛАБОРАТОРНАЯ РАБОТА 3 (2005)
II. Программы по пунктам 1), 2), 3) и 4) (см ниже) должны содержать два модуля: М1 и М2, в которых могут быть описаны сегменты кода, данных и стека. Модуль М1 должен выводить значение переменной А1 - строку символов 'ЗНАЧЕНИЕ ПЕРЕМЕННОЙ А1$'процедурой PP1, имя которой представляет точку входа программы. Модуль М2 должен выводить значение переменной А2 - строку символов 'ЗНАЧЕНИЕ ПЕРЕМЕННОЙ А2$' процедурой PP2. НЕ ИЗМЕНЯТЬ ИМЕНА СЕГМЕНТОВ, ПЕРЕМЕННЫХ И МЕТОК! НЕ ИСПОЛЬЗОВАТЬ ДИРЕКТИВЫ EXTRN PUBLIC и КОМАНДЫ ПЕРЕДАЧИ УПРАВЛЕНИЯ! ДЛЯ ПРОВЕРКИ ПОРЯДКА РАЗМЕЩЕНИЯ СЕГМЕНТОВ ИСПОЛЬЗУЙТЕ ФАЙЛ .MAP И ОТЛАДЧИК! ПРОГРАММА НЕ ДОЛЖНА СОДЕРЖАТЬ ЛИШНИХ ПРЕДЛОЖЕНИЙ И ПАРАМЕТРОВ ДИРЕКТИВ. 1) Сделать так, чтобы в каждом модуле были описаны сегмент кода, данных и стека, и исполняемая программа содержала все 6 сегментов (параметр PUBLIC в директивах сегментов не использовать). Программа должна заканчиваться командой RET. 2) Сделать так, чтобы исполняемая программа содержала минимальное число сегментов и заканчивалась функцией DOS 4Ch. Порядок следования описаний сегментов в модулях М1 и М2 должен быть разным. 3) Сделать так, чтобы в модуле М1 сегмент кода был описан перед сегментом данных, переменная А2 была описана в модуле М1, а не в М2, и в описаниях сегментов отсутствовали классы. Программа должна заканчиваться командой RET. -- использовать в сегменте кода параметр PUBLIC 4) Измените программу так, чтобы она не содержала сегментов стека. Проследите в отладчике, где сохраняется адрес команды INT 20h. ДАЛЕЕ: НЕ ИЗМЕНЯТЬ ИМЕНА СЕГМЕНТОВ, ПЕРЕМЕННЫХ И МЕТОК ! ИСПОЛЬЗОВАТЬ ДИРЕКТИВЫ EXTRN и PUBLIC! ПРОГРАММА НЕ ДОЛЖНА СОДЕРЖАТЬ ЛИШНИХ ПРЕДЛОЖЕНИЙ И ПАРАМЕТРОВ ДИРЕКТИВ 5) В модулях М1 и М2 использовать сегмент данных с комбинацией COMMON, в котором байтовая переменная A модуля М1 представляет 12-й байт и описана с помощью директив ORG и LABEL, а в модуле М2 для ее описания используются директивы DB. В модуле М1 в переменную А следует ввести без эха с клавиатуры символ, передать управление в модуль М2, где вывести этот символ на экран из А и завершить работу программы. Процедуры не использовать. 6) Программа должна содержать два модуля: М1 и М2 с одноименными сегментами кода CSEG и одноименными сегментами данных DSEG. Модуль М1 должен иметь переменную D1 со значением 'D' в сегменте DSEG, процедуру PP1 и вызывать процедуру PP2,описанную в М2. Модуль М2 должен иметь переменную D2 со значением 'd' в сегменте DSEG, переменную E2 со значением 'e' в сегменте ESEG, и в сегменте CSEG процедуру PP2, выводящую значение переменной D1 и возвращающую управление в PP1. Сделать так, чтобы в исполняемой программе был один сегмент CSEG, один сегмент DSEG и чтобы программа выводила символ из D1 или из E2 в зависимости от того, находится директива EXTRN, описывающая переменную D1, вне описаний сегментов или внутри описания какого-либо сегмента Если кто знает как решить напищите на [email protected] или стучите в асю 254738876 |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 2 Всего: 34 |
Dr.No_xXx
уважаемый! я так и не понял вам помощь нужна? или за вас лабу написать? если так то вам в раздел работа -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
alexmuz |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 2.4.2006 Репутация: нет Всего: нет |
Хотя бы подскажите по поводу первой задачи. Как сделать не используя команд передачи управления и директив EXTRN PUBLIC???
я не понимаю два модуля - а как их связать??? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Asm для Windows/DOS" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm для Windows/Dos | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |