Вопрос № 153979: Здравствуйте эксперты. Я читатель книги "Assembler это просто. Учимся програмировать". У меня такой вопрос. В этой книке я столкнулся с проблемой вывода символа на экран прямым отображением в видеобуфер. Программа выполняется, но с...
Вопрос № 154007: Добрый вечер, необходима помощь в программе... Задание: разработать алгоритм и написать резидентную программу, выводящую на экран текущую дату. Принажатии комбинации
клавиш ctrl/S - выводить на экран;ctrl/E - удалять с экрана;ctrl/x - выгружать из...
Вопрос № 153.979
Здравствуйте эксперты. Я читатель книги "Assembler это просто. Учимся програмировать". У меня такой вопрос. В этой книке я столкнулся с проблемой вывода символа на экран прямым отображением в видеобуфер. Программа выполняется, но символа нет. Для гарантии я с ассемблировал исходный код самого автора программы из файлов приложении и получается тоже самое. Все пусто. Хотя я сам уже дальше но сейчас мне это нужно стало. Незнаю что делать. Win XP SP2.
Отправлен: 11.12.2008, 19:06
Вопрос задал: Алексей2 (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 3)
Отвечает: Systemnick
Здравствуйте, Алексей2! Скорее всего у вас не переключается видеорежим и видеостраница: mov ax, 3 ;видео режим 3 + очистка экрана int 10h mov ax, 500h ;видеостраница 0 int 10h Хорошо было бы приложить Ваш код. Попробуйте скомпилировать как в приложении.
Приложение:
Ответ отправил: Systemnick (статус: 1-й класс)
Ответ отправлен: 11.12.2008, 19:34
Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 238327 на номер 1151 (Россия) | Еще номера >>
Отправить WebMoney:
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5 Комментарий оценки: Спасибо
Вопрос № 154.007
Добрый вечер, необходима помощь в программе... Задание: разработать алгоритм и написать резидентную программу, выводящую на экран текущую дату. Принажатии комбинации клавиш ctrl/S - выводить на экран;ctrl/E - удалять с экрана;ctrl/x - выгружать из оперативной памяти... моя программа ниже и она работает у меня на пк, но в компьютерном классе при выведении даты на экран она повисает, и при выгрузке, преподаватель сказал что дело в 21ом прерывании, и сказал чтобы переделал программу на bios прерывание..(я
так понял необходимо использовать прерывание 1Ah и функцию 04h) Пожалуйста, помоги переделать программу.. проверьте ее на ошибки, если ее можно сделать покороче обьясните пожалуйста..или напишите комменты для программы.
Приложение:
Отправлен: 11.12.2008, 21:58
Вопрос задал: Nobodyl (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 4)
Отвечает: Лысков Игорь Витальевич
Здравствуйте, Nobodyl! Я вижу только одну принципиальную ошибку, она влияет только на выгрузку. Это:
Код:
push CS pop ES ; Функция 49h требует, чтобы начало осбождаемого блока памяти MCB было по адресу ES:0 (а не DS) mov AH,49h ; Освобождаем память int 21h;... sti
MOV CX,EXIT_LEN
;длинна сообщения MOV SI,OFFSET EXIT
Дальше должно работать и так. Можно,конечно, поменять вывод в OUT_CHAR
Код:
or ax,30h ;выводим mov ah, 0eh int 10h ; int 29
h loop isOut ;выводим разделяющий пробел mov al,20h mov ah, 0eh int 10h ; int 29h popa ret
У меня работает и с int 29h И последнее, хочу порекомендовать после выгрузки резидента и вывода сообщения "запихнуть" в буфер клавиатуры код клавиши Enter, чтобы командный интерпретатор перешел на новую строчку..
Код:
BEG_OUT_5: LODSB MOV AH,0EH MOV BX,7 INT 10H LOOP BEG_OUT_5
mov ah, 05 mov cx, 1c0dh ; скан- и ASCII-код клавиши Enter int 16h JMP IRET_09H
--------- Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Специалист)
Ответ отправлен: 12.12.2008, 16:19
Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 238422 на номер 1151 (Россия) | Еще номера >>
Отправить WebMoney:
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5 Комментарий оценки: Спасибо...
Вы имеете возможность оценить этот выпуск рассылки. Нам очень важно Ваше мнение!
* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.
Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!
Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.
Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.