![]() |
|
|
![]()
|
|
| oskarmt |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 30.5.2010 Репутация: нет Всего: нет |
спасибо большое друг))....ты мне очень помог...
вот ещё вопросик: тоесть в любом случае мне нужна дискета с досом? я просто не представляю как я буду сдавать преподу...тк у него на ноуте стоит dos box |
|||
|
||||
| iff |
|
|||
![]() Администратор ![]() ![]() Профиль Группа: Участник Сообщений: 949 Регистрация: 23.3.2007 Репутация: 4 Всего: 16 |
Я скажу про себя: у меня стоит фридос (он полностью совместим с мс-дос)и виндовс экспи.
Я зохожу во фридос. Нажимаю Preent Screen и принтер начинает печатать содержимое экрана (в винде так не сделаешь). Допустим я запускаю эту прогу - она благополучно загружает в память обработчик прерывания и завершает работу. Теперь я например запускаю нортон командер. Нажимаю Preent Screen, но принтер ничего не печатает, а зато в текущей директории появляется файл SCREEN00.TXT, который содержит текст с дисплея. При нажатии Preent Screen выполняется 5-ое прерывание. Но в винде оно не выполняется при нажатии этой кнопки. Т.к. в винде совсем другая подпрограмма: при нажатии Preent Screen она (винда) копирует в буфер обмена изображения экрана. И соответственно при нажатии Preent Screen принтер не печатает ничего. Однако обработчик прерывания там есть: если (как я показывал уже выше) при помощи debug программным способом вызвать прерывание 5, то принтер начинает печатать. А если перед этим запустить мою программу, то тогда появляется файл SCREEN00.TXT, который содержит текст с дисплея. Кнопка Preent Screen активирует прерывание 5 "из-нутри", а инструкция int 05h - "снаружи". Только вот винде это прерывание не активируется "из-нутри". П.С. Ты откомпилировал эту прогу в СОМ-файл? Добавлено @ 20:27 Так и скажи преподу: что мы пишем под дос, а эмулятор не может эмулировать обсолютно все функции и нюансы этой ОС. И загрузочную дискету мс-дос с прогой и нортоном сделай на всякий случай))) Это сообщение отредактировал(а) iff - 1.6.2010, 20:40 -------------------- DOS... Синей пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое мастдайное окно, И поставил DOS, и тогда увидел: Это счастье, — вот оно. |
|||
|
||||
| oskarmt |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 30.5.2010 Репутация: нет Всего: нет |
у меня тут нарисовывается ещё проблемка)флопик не работает)
лабу я откомпилировал) а вот допустим из альтернативных вариантов....: нельзя ли повесить эту программу на 9ое прерывание,чтобы при нажатии определённой кнопки данная программа выполнялась...или я немного не в ту степь? |
|||
|
||||
| oskarmt |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 30.5.2010 Репутация: нет Всего: нет |
вообщем я всё сделал,скрин получился)спасибо огромное за помощь
|
|||
|
||||
| iff |
|
|||
![]() Администратор ![]() ![]() Профиль Группа: Участник Сообщений: 949 Регистрация: 23.3.2007 Репутация: 4 Всего: 16 |
Можно, но зачем. Для пользователя логичней, что при нажатии кнопки PrtSc возникает скрин экрана. Да и тем более, если при нажатии определённой кнопки данная программа выполняется, то это определенная кнопка теряет свои функции. (например если такая-же компюинация клавишь используется в другой программе, то при использовании этой комбинации будет создоваться ненужный скрин). Да и тем более там (с 9-ым прерыванием) ещё нужно ещё сохранить прежний вектор прерывания, и при хаврешении программы отдавать управление туда. (а это всё время выполнения программы...) Молодец Через 5-ое прерывание? Запустил его программно при помощи инструкции int 5? П.С. А вот скрин нортона: Это сообщение отредактировал(а) iff - 2.6.2010, 13:29 Присоединённый файл ( Кол-во скачиваний: 5 )
screennc.txt 2,00 Kb-------------------- DOS... Синей пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое мастдайное окно, И поставил DOS, и тогда увидел: Это счастье, — вот оно. |
|||
|
||||
| oskarmt |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 30.5.2010 Репутация: нет Всего: нет |
просто хотелось бы чтобы она работала не только под dos,но ещё и под винду.....
)))у друга запустил дос и всё сделал) а вот ещё вопрос)расскажи пож что за крутой способ оставить программу резидентом? MOV AH, 31H MOV DX, OFFSET INT05END INT 21H ... INT05END: чёта я его не сильно втыкаю....да и функцию 31h никогда не встречал.... Это сообщение отредактировал(а) oskarmt - 2.6.2010, 15:46 |
||||
|
|||||
| iff |
|
|||
![]() Администратор ![]() ![]() Профиль Группа: Участник Сообщений: 949 Регистрация: 23.3.2007 Репутация: 4 Всего: 16 |
Функция 31 прерывания 21 - завершить работу и остаться в памяти резидентной
-------------------- DOS... Синей пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое мастдайное окно, И поставил DOS, и тогда увидел: Это счастье, — вот оно. |
|||
|
||||
| oskarmt |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 30.5.2010 Репутация: нет Всего: нет |
а ну всё)))
вопросов больше нету) ещё раз спасибо огромное за помощь) |
|||
|
||||
![]()
|
| Правила форума "Asm для начинающих" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm для начинающих | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |