Как вообще писать на ASM?
Как вообще пользоваться Asembler'ом?
Согнал я вобщем TASM5. Как я уже
понял ,для облегчения жизни прогера
можно взять конструктор к ASM'у!
(вроде визуализированной среды).
Согнал парочку , прописал пути на
Tasm32.exe и TLink32.exe -- либо
WIND'a вешается после запуска ASM ,либо
ещё какие приколы!
Как вообще в древности (да и сейчас) писали
на Asembler'e ? Как писать используя только
Tasm32.exe и TLink32.exe (без примочек)?
P.S. : похоже я очень глупый - особенно
после недавней сессии (Чтоб её!!!)
Ещё один глупый вопрос!
Как вообще пользоваться Asembler'ом?
Согнал я вобщем TASM5. Как я уже
понял ,для облегчения жизни прогера
можно взять конструктор к ASM'у!
(вроде визуализированной среды).
Согнал парочку , прописал пути на
Tasm32.exe и TLink32.exe -- либо
WIND'a вешается после запуска ASM ,либо
ещё какие приколы!
Как вообще в древности (да и сейчас) писали
на Asembler'e ? Как писать используя только
Tasm32.exe и TLink32.exe (без примочек)?
P.S. : похоже я очень глупый - особенно
после недавней сессии (Чтоб её!!!)
Купи себе чтонеть вроде этого http://www.abook.ru/browse.php?cmd=describe&id=446 . Или, еслиже жалко денег - сходи в библиотеку :)
Успехов!
Берешь Нортон, пишешь в редакторе прогу, сохр.,
выходишь, пишешь tasm.exe nameofp.asm и enter.
link nameofp.obj и enter. Получаешь exe, если, конечно, не было ошибок при компиляции.
Ещё один глупый вопрос!
Как вообще пользоваться Asembler'ом?
Согнал я вобщем TASM5. Как я уже
понял ,для облегчения жизни прогера
можно взять конструктор к ASM'у!
(вроде визуализированной среды).
Согнал парочку , прописал пути на
Tasm32.exe и TLink32.exe -- либо
WIND'a вешается после запуска ASM ,либо
ещё какие приколы!
Как вообще в древности (да и сейчас) писали
на Asembler'e ? Как писать используя только
Tasm32.exe и TLink32.exe (без примочек)?
P.S. : похоже я очень глупый - особенно
после недавней сессии (Чтоб её!!!)
Во-первых, если Вы первый раз программируете на ассемблере, то не стоит сразу приниматься за программирование под Windows. Для того, чтобы сделать минимальную программу на ассемблере под Windows, нужно написать по крайней мере 20 строчек, не относящихся к основной программе. Иначе Windows будет ругаться, глючить и вешаться. Наверное именно поэтому у Вас TASM не работает так, как нужно.
Для создания простых программ под DOS tasm32 и tlink32 не подходят - для этого предназначены tasm, tlink и rtm. А для того, чтобы не мучаться со всякими средами программирования, удобно делать так:
-зайдите в Windows и запустите Volkov или Norton Commander (хотя лучше всего загружаться в чистый DOS)
-создайте каталог, в котором будет распологаться программа
-скопируйте в этот каталог tasm.exe, tlink.exe и rtm.exe
-создайте файл my_prog.asm и напишите в нём программу
-создайте файл my_prog.bat и напишите в нём следующее:
tasm my_prog.asm
tlink my_prog.obj
-запустите файл my_prog.bat и, если в программе отсутствуют ошибки, в данном каталоге появится файл my_prog.exe - готовая программа
Во-первых, если Вы первый раз программируете на ассемблере, то не стоит сразу приниматься за программирование под Windows.
Правильно, начинать надо с Линукса :D
Правильно, начинать надо с Линукса :D
Лично я начинал писать на асме под Windows - это немного труднее, чем под дос, но уж точно легче, чем под линукс.
Я уже разобрался! Полазал по Inet и много
чего нашёл!
Linux у меня щас не стоит - только WIN98
(последствия недавней смены HDD c U5 на
Barracuda) , так что посидев чуток в FAR'e
с tasm взялся за MASM32 v6.14 с настроенным
под это дело QEditor и ещё согнал
Hex Workshop ! Пока всё Ok! Понагонял туториалов-
пока хватит!
P.S. : Linux - хорошо ,но WIND'a привычнее!
Лично я начинал писать на асме под Windows - это немного труднее, чем под дос, но уж точно легче, чем под линукс.
Под Windows легче чем под Linux? А ты пробовал, под Линукс-то? ;)
Всем спасибо за поддержку!
Я уже разобрался! Полазал по Inet и много
чего нашёл!
Молодец :) Желаю удачи в изучении асма!
P.S. : Linux - хорошо ,но WIND'a привычнее!
Ну это кому как :)
Но хотя бы - имена API-функций Windows куда легче запоминать, чем номера функций прерывания int 80h.
Ну ет кому как :)
У меня сейчас вообще нет линукса и вообще я мало о нём знаю. Но хотя бы - имена API-функций Windows куда легче запоминать, чем номера функций прерывания int 80h.
Действительно, это дело вкуса.
У меня сейчас вообще нет линукса и вообще я мало о нём знаю. Но хотя бы - имена API-функций Windows куда легче запоминать, чем номера функций прерывания int 80h.
Зато функций 0x80-го прерывания раз в десять меньше чем функций WinAPI :)
Зато функций 0x80-го прерывания раз в десять меньше чем функций WinAPI :)
Кстати ДА! Вот это верно!
Меня уже за"№;%:?ло ныкаться по MSDN и
рассматривать тот или иной WinAPI!!!
Ну столько их!
Кстати ДА! Вот это верно!
Меня уже за"№;%:?ло ныкаться по MSDN и
рассматривать тот или иной WinAPI!!!
Ну столько их!
В линуксе в 80h не входят функции графического интерфейса, а только самое главное из ядра ОС. Тогда уж надо только с kernel32.dll сравнивать, а не во всеми функциями!
В линуксе в 80h не входят функции графического интерфейса, а только самое главное из ядра ОС. Тогда уж надо только с kernel32.dll сравнивать, а не во всеми функциями!
Но ведь говорилось о том, чтоб научиться писать на асме, писать на асме для графического интерфейса вобще извращение :)
P.S. А скомпиленный Hello, World под линуксом - 250 байт... В винде такого не добьешся :)
Но ведь говорилось о том, чтоб научиться писать на асме, писать на асме для графического интерфейса вобще извращение :)
P.S. А скомпиленный Hello, World под линуксом - 250 байт... В винде такого не добьешся :)
Какое извращение? Писать для графического интерфейса на асме не сложнее, чем на C без использования компонентов. А размер зависит от формата - просто в линуксе вроде как формат ELF, который более экономичный, чем PE.
... А размер зависит от формата - просто в линуксе вроде как формат ELF, который более экономичный, чем PE.
Так об этом и речь...
В линуксе в 80h не входят функции графического интерфейса, а только самое главное из ядра ОС. Тогда уж надо только с kernel32.dll сравнивать, а не во всеми функциями!
А причем здесь вообще какие-то DLL'ки? :) Мы же не GLIBC и WINAPI сравниваем, а во всех виндах до XP для системного вызова используется прерывание 0x2E.
А причем здесь вообще какие-то DLL'ки? :) Мы же не GLIBC и WINAPI сравниваем, а во всех виндах до XP для системного вызова используется прерывание 0x2E.
Это для драйверов - 2Eh, а в линуксе int 80h вызывается и из пользовательских приложений. И как это причём тут DLL? В них же содержатся код функций.
Это для драйверов - 2Eh,
Хех, как же по твоему пользовательские приложения (с уровнем привилегий 3) вызывают системные функции (у которых он равен 0)? :)
а в линуксе int 80h вызывается и из пользовательских приложений.
В пользовательских приложениях используются функции GLIBC: fork, read, write etc. Другое дело, что *можно* напрямую использовать прерывание для ускорения выполнения
Ты прав, но к ядру системы (которое в ring0) они отношения не имеют :)