Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как вообще писать на ASM?

724
30 января 2003 года
_anton
100 / / 04.11.2002
Ещё один глупый вопрос!
Как вообще пользоваться Asembler'ом?

Согнал я вобщем TASM5. Как я уже
понял ,для облегчения жизни прогера
можно взять конструктор к ASM'у!
(вроде визуализированной среды).
Согнал парочку , прописал пути на
Tasm32.exe и TLink32.exe -- либо
WIND'a вешается после запуска ASM ,либо
ещё какие приколы!

Как вообще в древности (да и сейчас) писали
на Asembler'e ? Как писать используя только
Tasm32.exe и TLink32.exe (без примочек)?

P.S. : похоже я очень глупый - особенно
после недавней сессии (Чтоб её!!!)
1.8K
31 января 2003 года
Exfector
74 / / 12.10.2002
Цитата:
Originally posted by _anton
Ещё один глупый вопрос!
Как вообще пользоваться 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 . Или, еслиже жалко денег - сходи в библиотеку :)

Успехов!

419
31 января 2003 года
Mitja Gladkih
284 / / 19.12.2002
Как же это - как?
Берешь Нортон, пишешь в редакторе прогу, сохр.,
выходишь, пишешь tasm.exe nameofp.asm и enter.
link nameofp.obj и enter. Получаешь exe, если, конечно, не было ошибок при компиляции.
2.2K
31 января 2003 года
K.O.F.
10 / / 06.01.2003
Цитата:
Originally posted by _anton
Ещё один глупый вопрос!
Как вообще пользоваться 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 - готовая программа

1.8K
01 февраля 2003 года
Lonesome
112 / / 27.01.2003
Цитата:
Originally posted by K.O.F.


Во-первых, если Вы первый раз программируете на ассемблере, то не стоит сразу приниматься за программирование под Windows.



Правильно, начинать надо с Линукса :D

424
01 февраля 2003 года
(C)dragon
307 / / 04.12.2002
Цитата:
Originally posted by Lonesome


Правильно, начинать надо с Линукса :D



Лично я начинал писать на асме под Windows - это немного труднее, чем под дос, но уж точно легче, чем под линукс.

724
01 февраля 2003 года
_anton
100 / / 04.11.2002
Всем спасибо за поддержку!
Я уже разобрался! Полазал по Inet и много
чего нашёл!

Linux у меня щас не стоит - только WIN98
(последствия недавней смены HDD c U5 на
Barracuda) , так что посидев чуток в FAR'e
с tasm взялся за MASM32 v6.14 с настроенным
под это дело QEditor и ещё согнал
Hex Workshop ! Пока всё Ok! Понагонял туториалов-
пока хватит!

P.S. : Linux - хорошо ,но WIND'a привычнее!
1.8K
01 февраля 2003 года
Lonesome
112 / / 27.01.2003
Цитата:
Originally posted by (C)dragon


Лично я начинал писать на асме под Windows - это немного труднее, чем под дос, но уж точно легче, чем под линукс.



Под Windows легче чем под Linux? А ты пробовал, под Линукс-то? ;)

1.8K
01 февраля 2003 года
Lonesome
112 / / 27.01.2003
Цитата:
Originally posted by _anton
Всем спасибо за поддержку!
Я уже разобрался! Полазал по Inet и много
чего нашёл!



Молодец :) Желаю удачи в изучении асма!

Цитата:

P.S. : Linux - хорошо ,но WIND'a привычнее!



Ну это кому как :)

424
01 февраля 2003 года
(C)dragon
307 / / 04.12.2002
У меня сейчас вообще нет линукса и вообще я мало о нём знаю. Но хотя бы - имена API-функций Windows куда легче запоминать, чем номера функций прерывания int 80h.
1.8K
02 февраля 2003 года
Exfector
74 / / 12.10.2002
Цитата:
Originally posted by (C)dragon
Но хотя бы - имена API-функций Windows куда легче запоминать, чем номера функций прерывания int 80h.



Ну ет кому как :)

363
02 февраля 2003 года
Michael
132 / / 20.07.2000
Цитата:
Originally posted by (C)dragon
У меня сейчас вообще нет линукса и вообще я мало о нём знаю. Но хотя бы - имена API-функций Windows куда легче запоминать, чем номера функций прерывания int 80h.




Действительно, это дело вкуса.

1.8K
02 февраля 2003 года
Lonesome
112 / / 27.01.2003
Цитата:
Originally posted by (C)dragon
У меня сейчас вообще нет линукса и вообще я мало о нём знаю. Но хотя бы - имена API-функций Windows куда легче запоминать, чем номера функций прерывания int 80h.



Зато функций 0x80-го прерывания раз в десять меньше чем функций WinAPI :)

724
05 февраля 2003 года
_anton
100 / / 04.11.2002
Цитата:
Originally posted by Lonesome


Зато функций 0x80-го прерывания раз в десять меньше чем функций WinAPI :)



Кстати ДА! Вот это верно!
Меня уже за"№;%:?ло ныкаться по MSDN и
рассматривать тот или иной WinAPI!!!
Ну столько их!

424
09 февраля 2003 года
(C)dragon
307 / / 04.12.2002
Цитата:
Originally posted by _anton


Кстати ДА! Вот это верно!
Меня уже за"№;%:?ло ныкаться по MSDN и
рассматривать тот или иной WinAPI!!!
Ну столько их!



В линуксе в 80h не входят функции графического интерфейса, а только самое главное из ядра ОС. Тогда уж надо только с kernel32.dll сравнивать, а не во всеми функциями!

1.9K
10 февраля 2003 года
kswapd
93 / / 08.02.2003
Цитата:
Originally posted by (C)dragon


В линуксе в 80h не входят функции графического интерфейса, а только самое главное из ядра ОС. Тогда уж надо только с kernel32.dll сравнивать, а не во всеми функциями!



Но ведь говорилось о том, чтоб научиться писать на асме, писать на асме для графического интерфейса вобще извращение :)

P.S. А скомпиленный Hello, World под линуксом - 250 байт... В винде такого не добьешся :)

424
10 февраля 2003 года
(C)dragon
307 / / 04.12.2002
Цитата:
Originally posted by kswapd


Но ведь говорилось о том, чтоб научиться писать на асме, писать на асме для графического интерфейса вобще извращение :)

P.S. А скомпиленный Hello, World под линуксом - 250 байт... В винде такого не добьешся :)



Какое извращение? Писать для графического интерфейса на асме не сложнее, чем на C без использования компонентов. А размер зависит от формата - просто в линуксе вроде как формат ELF, который более экономичный, чем PE.

1.9K
11 февраля 2003 года
kswapd
93 / / 08.02.2003
Цитата:
Originally posted by (C)dragon


... А размер зависит от формата - просто в линуксе вроде как формат ELF, который более экономичный, чем PE.



Так об этом и речь...

1.8K
25 февраля 2003 года
Lonesome
112 / / 27.01.2003
Цитата:
Originally posted by (C)dragon


В линуксе в 80h не входят функции графического интерфейса, а только самое главное из ядра ОС. Тогда уж надо только с kernel32.dll сравнивать, а не во всеми функциями!



А причем здесь вообще какие-то DLL'ки? :) Мы же не GLIBC и WINAPI сравниваем, а во всех виндах до XP для системного вызова используется прерывание 0x2E.

424
25 февраля 2003 года
(C)dragon
307 / / 04.12.2002
Цитата:
Originally posted by Lonesome


А причем здесь вообще какие-то DLL'ки? :) Мы же не GLIBC и WINAPI сравниваем, а во всех виндах до XP для системного вызова используется прерывание 0x2E.



Это для драйверов - 2Eh, а в линуксе int 80h вызывается и из пользовательских приложений. И как это причём тут DLL? В них же содержатся код функций.

1.8K
26 февраля 2003 года
Lonesome
112 / / 27.01.2003
Цитата:
Originally posted by (C)dragon


Это для драйверов - 2Eh,



Хех, как же по твоему пользовательские приложения (с уровнем привилегий 3) вызывают системные функции (у которых он равен 0)? :)

Цитата:

а в линуксе int 80h вызывается и из пользовательских приложений.



В пользовательских приложениях используются функции GLIBC: fork, read, write etc. Другое дело, что *можно* напрямую использовать прерывание для ускорения выполнения

Цитата:
И как это причём тут DLL? В них же содержатся код функций.



Ты прав, но к ядру системы (которое в ring0) они отношения не имеют :)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог