| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm для Windows/Dos > ввод/вывод в консоле FASM под Win7 |
| Автор: res2305 27.6.2012, 09:14 | ||
| У меня установлен Win7 64-разрядная версия. Пытаюсь написать программу, которая должна работать в консольном режиме, но не получается реализовать простой пример ввода/вывода на консоль:
После первого ввода, на консоль выводится какая-то ерунда, а ввести что-нибудь ещё раз уже не получается. Пришлось сделать небольшую задержку во времени, чтобы посмотреть никудышний результат. Что здесь нужно исправить, чтобы можно было что-то вводить/выводить в цикле? Можно небольшой пример? |
| Автор: 500mhz 27.6.2012, 09:19 |
| format PE CONSOLE entry start include '%include%\win32a.inc' section '.data' data readable writeable msg db 'This is a printf example',0 format1 db '%s',0 section '.code' code readable executable start: cinvoke printf,format1,msg invoke ExitProcess,0 section '.idata' import data readable writeable library kernel32,'kernel32.dll',\ crtdll,'crtdll.dll' import kernel32,\ ExitProcess,'ExitProcess' import crtdll,\ printf,'printf' |
| Автор: res2305 27.6.2012, 09:23 |
| Не понял... в чём у меня была проблема? Это попытка вызвать printf? А как насчёт invoke ReadConsole,eax,buffer,80,ns,NULL invoke WriteConsole,[hout],buffer,80,ns,NULL ???? |
| Автор: res2305 27.6.2012, 10:40 | ||
| Мне стало ясно почему программка не вводила с консоли два раза. Правилный код:
Но что нужно сделать, чтобы она выводила правильно введённый текст на экран? |
| Автор: 500mhz 27.6.2012, 10:51 |
| Ну конечно можно работать напрямую через WriteConsole итд но зачем изобретать велосипед? Есть crtdll.dll в которой весь набор стандартных сишных функций и printf и gets и так далее |
| Автор: res2305 27.6.2012, 11:03 | ||
Хорошо, а можно небольшой пример ввода/вывода сишных printf и gets , но в фасме? |
| Автор: res2305 27.6.2012, 11:18 | ||
Всё, разобрался!
|
| Автор: 500mhz 27.6.2012, 11:19 | ||
|
| Автор: res2305 27.6.2012, 11:28 |
| Всем спасибо! |