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

Программирование. Форум !!!

Консольное приложение на асме

Здравствуйте, товарищи программисты.

Необходимо написать консольное приложение на ассемблере с использованием
WinAPI, читающее текстовые данные построчно со стандартного ввода, слегка
преобразующее их и записывающее построчно в стандартный вывод.

В связи с этим следующие вопросы:
- как осуществлять чтение/запись на стандартный ввод/вывод? Есть ли в виндах
вообще такое понятие? :-)
- каков наиболее простой способ _построчно_ читать текст? Не охота читать
побайтно до ближайшего CR-LF. :-)
- как в тексте программы указать ассемблеру, что данные функции являются
функциями WinAPI? Кроме того, для линкера, скорее всего, понадобится
какая-то библиотека, в которой описаны функции WinAPI, где мне ее взять?

Номер выпуска : 3514
Возраст листа : 343 (дней)
Количество подписчиков : 469
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/221287
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Адрес подписки:
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписать: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ http://subscribe.ru/feedback

Ответить   Tue, 31 Aug 2004 01:16:25 +0600 (#221287)

 

Ответы:

Судя по улыбке, это шутка. Конечно, такое понятие есть.
Ввод-вывод через ReadFile/WriteFile, получить стандартный дескриптор
можно функцией GetStdHandle, указывая в качестве параметра
STD_INPUT_HANDLE, STD_OUTPUT_HANDLE, ...

Если программа должна работать и с консолью, и с перенаправленными
потоками - придется читать побайтно или организовывать буфер
потока. Не так уж много это займет места - функция на
ассемблере строчек десять - пятнадцать.
Если требуется только работа с консолью, можно воспользоваться функцией
SetConsoleMode для установки режима ENABLE_LINE_INPUT.
Только потребуется проверять тип дескриптора
стандартного ввода с помощью GetFileType.

Специального указания не требуется. Достаточно объявить их как
обычные внешние функции с помощью 'extrn'. Хотя бывает и
более подробное описание, например
в masm конструкция 'proto'.

Библиотеки и inc - файлы обычно устанавливаются с ассемблером
(tasm, masm, ...). В крайнем случае можно взять из
какой-либо совместимой среды разработки.

И в любом случае нужна документация по WinApi
(MSDN или, например, файлы справки,
идущие с продуктами Borland).

Номер выпуска : 3515
Возраст листа : 344 (дней)
Количество подписчиков : 470
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/221516
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Адрес подписки:
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписать: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ http://subscribe.ru/feedback

Ответить   Tue, 31 Aug 2004 09:57:09 +0400 (#221516)

 

Здоровеньки булы, Емельянов Алексей!

31 августа 2004 г., вторник, 10:57:09 (GMT+05:00), пришел ко мне
почтальон Почкин и всучил письмо с пометкой "Консольное приложение на асме",
в котором сообщалось следующее:

Macro Assembler v6.13 - может и больше есть (должно быть) - рульная
штука - 7 mb поищи в инете, только там редактор немного криво сделан -
шрифты иногда глючат и скроль не работает (колесом), но в остальном -
must have - куча примеров, утилит и все такое.

Ответить   "Томилов Александр" Wed, 1 Sep 2004 17:39:48 +0500 (#222818)

 

Спасибо, с т.з. программирования, вроде, все ясно...

У меня есть Builder 6, собственно от него я и взял ассемблер. Но не могу
найти подключаемых файлов с определениями констант вроде STD_INPUT_HANDLE.
Конечно, эти определения я могу найти в соответствующих *.h - файлах и
заботливо перевести необходимые из них на ассемблер, но всех констант и
описаний структур слишком много.

Кроме того, нет библиотеки для линкера. Я пробовал поискать в инете, но не
нашел. На сайте borland тоже побывал, но, конечно, там нет ничего для таких
пустяков как ассемблер. :-) Может, у кого-то есть, просьба послать
библиотеку мне на urchi***@m*****.ru, если она в пределах мегабайта. :-) Или
подскажите URL.

tasm мне очень нравится, в основном из-за поддержки режима ideal.

Номер выпуска : 3521
Возраст листа : 348 (дней)
Количество подписчиков : 471
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/224444
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Подписан адрес:
Код этой рассылки: comp.soft.prog.prog
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписать: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ http://subscribe.ru/feedback

Ответить   Sat, 4 Sep 2004 16:32:12 +0600 (#224444)

 

Библиотеку нашел, спасибо за помощь. Радуюсь жизни. :-)

Номер выпуска : 3522
Возраст листа : 348 (дней)
Количество подписчиков : 471
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/224472
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Подписан адрес:
Код этой рассылки: comp.soft.prog.prog
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписать: mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ http://subscribe.ru/feedback

Ответить   Sat, 4 Sep 2004 19:03:59 +0600 (#224472)