Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler

Выпуск № 369
от 11.02.2006, 23:45

Администратор:Калашников О.А.
В рассылке:Подписчиков: 258, Экспертов: 24
В номере:Вопросов: 3, Ответов: 6


Вопрос № 34814: Эта процедура вызывает в цикле вместе с другой проверяющей ALT. После вызова "The Norton Guides, version 1.0" - SHIFT+F1 цикл останавливается на шестой строке. Ошибки не происходит после вызова ascii.com - ALT+A И как вообще одновр...
Вопрос № 34881: Link.exe выдаёт мне такую ошибку: hello.obj : fatal error L1102: unexpected end-of-file...
Вопрос № 34888: Привет наставникам! Почему строка написанная на русском языке, при работе программы (ком-программа в ДОСе) выводит какие-то кракозябры. И как это исправить!!!!!!!!??????????? Спасибо....

Вопрос № 34.814
Эта процедура вызывает в цикле вместе с другой проверяющей ALT. После вызова "The Norton Guides, version 1.0" - SHIFT+F1 цикл останавливается на шестой строке. Ошибки не происходит после вызова ascii.com - ALT+A

И как вообще одновременно проверять ALT и ждать ввода символа

Приложение:

Отправлен: 06.02.2006, 02:14
Вопрос задал: Семенов Алексей Николаевич (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Семенов Алексей Николаевич!
Для начала надо понять, как отрабатываются клавиши ALT, SHIFT, CTRL,...
По нажатию/отпусканию этих клавиш устанавливаюся/сбрасываются
сответствующие битики в специальных служебных байтах по адресам 0:417h и 0:418h
Отсюда ответ на поставленный вопрос: ждем нужный код (тот же F1),
сразу после этого проверяем состояние указанных байт и делаем вывод...
проверить можно как непосредственно прочитав ячейки памяти, так и используя
функции 02h и 12h прерывания клавиатуры.

---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Студент)
Отправлен: 06.02.2006, 10:42

Отвечает: Евгений Иванов
Здравствуйте, Семенов Алексей Николаевич!
Клавиатура передаёт коды нажатия и отжатия клавиш. Поэтому в качестве клавиш Alt, Shift или Ctrl может выступать ЛЮБАЯ клавиша. А делать это так - ждём нажатия клавиши, после этого устанавливаем флажок. После этого ждём нажатия нужной нам клавиши и если флажок установлен, то значит, нажато две клавиши. И т.п.
При отжатии этот флажок сбрасывается.
Таким приёмом можно отслеживать нажатие сразу нескольких клавиш - делаешь массив в 128 (256) байт и там хранишь состояние всех клавиш.
Например, смотри исходник моего эмулятора Zx-Spectrum.

http://eugene-ivanov.narod.ru/research_zxs.htm

А именно:
;------------------------
; Обработчик 9 прерывания
proc Int9Entry
push eax ds DataWork
sub eax,eax
pop ds
Assume DS:DataWork
in al,96
mov [LastKey+dat],al
jmp wptr [cs:eax*2+tKeysJump]

ExitInt9:
in al,97
mov ah,al
or al,128
out 97,al
mov al,ah
jmp $+2
out 97,al

mov al,32
pop ds
out 32,al
pop eax
iret
endp

---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 07.02.2006, 09:29


Вопрос № 34.881
Link.exe выдаёт мне такую ошибку:
hello.obj : fatal error L1102: unexpected end-of-file
Отправлен: 06.02.2006, 20:25
Вопрос задал: Dolgavin Alexey Sergeevich (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Евгений Иванов
Здравствуйте, Dolgavin Alexey Sergeevich!
Вполне возможно, не тот формат объектного файла.
Есть два формата - COFF и OMF.
При ассемблировании выбери тот, которые поддерживает твой LINK, или преобразовывай в COFF.

Успехов.
---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 06.02.2006, 20:51
Оценка за ответ: 5

Отвечает: skif quest
Здравствуйте, Dolgavin Alexey Sergeevich!
В конце файла отсутствует конец линии. МОжет достаточно добавить в исходник enter в самом конце?
Ответ отправил: skif quest (статус: 1-ый класс)
Отправлен: 07.02.2006, 06:30


Вопрос № 34.888
Привет наставникам!

Почему строка написанная на русском языке, при работе программы (ком-программа в ДОСе) выводит какие-то кракозябры.

И как это исправить!!!!!!!!???????????

Спасибо.
Отправлен: 06.02.2006, 22:13
Вопрос задал: Baim (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Евгений Иванов
Здравствуйте, Baim!
Для ДОСа используй кодировку принаписании программ - 866.
удачи!
---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 06.02.2006, 22:32
Оценка за ответ: 5

Отвечает: Sager
Здравствуйте, Baim!
Потому, что ты сохраняешь ее в вин-кодировке. Для этого используй, например, edit.com или far.
Ответ отправил: Sager (статус: Практикант)
Отправлен: 07.02.2006, 11:05
Оценка за ответ: 3


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.14 (бета) от 09.02.2006
Яндекс Rambler's Top100

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.faq
Архив рассылки
Отписаться Вебом Почтой
Вспомнить пароль

В избранное