Сейчас на форуме: hgdagon, asfa (+5 невидимых)

 eXeL@B —› Программирование —› изучать асм под винду или дос?
Посл.ответ Сообщение

Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 12 апреля 2006 21:58
· Личное сообщение · #1

в прошлом году летом читал калаша про асм под дос, интересно пишет. потом занимался учебой( и сейчас правда тоже), сейчас думаю-начать(т.е. как бы продолжить) изучать асм для дос(по зубкову например) или для винды сразу? некая основа ведь у меня есть, думаю, надо винду изучать. как думаете? или надо сначала по-нормальному выучить асм в досе?



Ранг: 15.0 (новичок)
Активность: 0.010
Статус: Участник

Создано: 12 апреля 2006 22:09
· Личное сообщение · #2

если калашникова хорошо изучил и помнишь, можешь начинать и под винду.
На www.wasm.ru тебе дорога.



Ранг: 79.6 (постоянный), 2thx
Активность: 0.080
Статус: Участник
алХимик

Создано: 12 апреля 2006 22:25
· Личное сообщение · #3

Зачем изучать то, что не пригодиться?

Да и асм не под винду или дос, а под проц архитектуры Интел

ЗЫ у меня дежавю, я на такой вопрос раз 20 отвечал %))

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

-----
Все говорят что мы вместе. Но не многие знают в каком.





Ранг: 122.3 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 12 апреля 2006 23:13
· Личное сообщение · #4

под линукс. без шуток. nasm+ld - и можно юзать привычную intel мнемонику.
во-первых простота ввода-вывода(можно не заморачиваясь на деталях изучать именно асм)
во-вторых, в отличие от дос, который сдох безнадежно, это все-таки 32-бит архитектура.

а под винду имхо писать графические аппл на асме изврат, выигрыша нет, гемороя больше, чем на том же си. если чисто из эстетических соображений только, но это быстро проходит, проверено

и вообще стоило бы озвучить свою цель изучения?



Ранг: 79.6 (постоянный), 2thx
Активность: 0.080
Статус: Участник
алХимик

Создано: 12 апреля 2006 23:35
· Личное сообщение · #5

intty пишет:
а под винду имхо писать графические аппл на асме изврат


А зачем ГУИ? Можно спокойно консольки лепить =)), для изучения асма больше и не надо.

-----
Все говорят что мы вместе. Но не многие знают в каком.





Ранг: 199.6 (ветеран), 12thx
Активность: 0.10
Статус: Участник
www.uinc.ru

Создано: 13 апреля 2006 01:54
· Личное сообщение · #6

> Можно спокойно консольки лепить =))

Консольку на асме под винду имхо сложнее сделать чем простенький гуй, благо шаблонов полно готовых.



Ранг: 79.6 (постоянный), 2thx
Активность: 0.080
Статус: Участник
алХимик

Создано: 13 апреля 2006 02:17
· Личное сообщение · #7

DrGolova пишет:
консольку на асме под винду имхо сложнее сделать чем простенький гуй


Я вообще-то не имел ввиду создание пользовательского интерфейса в консоли, для изучения циклов, массивов и тп. достаточно стандартного консольного ввода/вывода

-----
Все говорят что мы вместе. Но не многие знают в каком.




Ранг: 15.3 (новичок)
Активность: 0.020
Статус: Участник

Создано: 13 апреля 2006 16:16
· Личное сообщение · #8

intty пишет:
а под винду имхо писать графические аппл на асме изврат, выигрыша нет, гемороя больше, чем на том же си.

а под линукс если использовать libc(которая писана на си) то тоже выигрыша мало
а при использовании int 80h тот же гимор с регистрами, номерами вызовов и пр. что и под дос
и если под виндой можно писать драйвера на асме без особых проблем с заголовочными файлами,
то под лунь все, кроме inline-вставок, геморрой




Ранг: 122.3 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 13 апреля 2006 17:18
· Личное сообщение · #9

>>а при использовании int 80h тот же гимор с регистрами, номерами вызовов и пр. что и под дос
дос это 16 бит, никому нах ненужные сегменты, 16 разрядные регистры и т.д.
>>и если под виндой можно писать драйвера на асме без особых проблем с заголовочными файлами,
тебе не кажется, что драйвера это как-то для начала, для изучения асма, не очень )
>>то под лунь все, кроме inline-вставок, геморрой
в смысле?

и вообще я никого не агитирую, просто предложил альтернативный вариант




Ранг: 85.7 (постоянный)
Активность: 0.110
Статус: Участник

Создано: 13 апреля 2006 17:21
· Личное сообщение · #10

Как делал я. Под дос калашников уроков 8-10. С программой Emu 8086. Потом "Низкоуровневое програмирование для дзенствующих" на васме. Потом уроки Iczelion'a.

-----
Я фантомас, а ты гавно




Ранг: 15.3 (новичок)
Активность: 0.020
Статус: Участник

Создано: 13 апреля 2006 17:51
· Личное сообщение · #11

intty пишет:
тебе не кажется, что драйвера это как-то для начала, для изучения асма, не очень )

это как самое естественное применение асма

intty пишет:
>>то под лунь все, кроме inline-вставок, геморрой
в смысле?

модули для ядра линукса смотрел. там в исходник(сишный) понапихано такого что лучше и не связываться.
ну это так на мой взгляд. я считаю что нужно изучать асм под ту ос, под которой работаешь и программишь на яву




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 13 апреля 2006 17:56
· Личное сообщение · #12

ещё вариант:
начинаешь писать свою программу, а потом её оптимизируешь
смысл в том, что сначала ты используешь базовые знания, а потом, при оптимизации - углубляешься в изучение, т.к. просто изучение, без практического применения - мене полезно ;)

-----
EnJoy!




Ранг: 26.7 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 13 апреля 2006 18:08
· Личное сообщение · #13

Под винду однозначно. Т.к. для новичка имхо немного сложно вникнуть в сегментную адресацию или тем паче в защищенный режим под экстендеры. Да и надо ли оно? ДОС мертва.

А лет через пять, имхо, будет мертв и Линукс. Точнее он вернется в свою нишу малобюджетных ОС для обслуживания кассовых аппаратов и веб-серверов. Ибо Линукс поднялся в годы нестабильных Win3.11 / Win9x как надежная безглючная система, а сейчас же ядро NT в лице 2k/xp/2003 вполне справляется с любыми задачами.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 13 апреля 2006 18:24
· Личное сообщение · #14

SubV
[про Линукс]
поработайте в IBM годик-другой, тогда поймёте, кто мёртв, а кто жив. для IBM Линукс сейчас важнее, чем была когда-то OS/2 (вот она - мертва). сейчас уже слишком много компаний вкладывают свои ресурсы в линукс, затопить столько ресурсов не под силу даже адептам винды. а сравнивать линукс с Win9x (а тем более - Win3xx) - незнание вопроса.

[про DOS]
согласен, сечас ориентроваться на ДОС - беспреспективно, даже когда речь идёт об обучении

[про Win32]
наиболее адекватный вариант, т.к. "всё под рукой"
повторюсь, что лучше всего поставить перед собой конкретную задачу и её решать
кстати, всегда можно запустить ДОС под эмулем или VM

-----
EnJoy!





Ранг: 420.3 (мудрец)
Активность: 0.240
Статус: Участник

Создано: 13 апреля 2006 18:28
· Личное сообщение · #15

SubV пишет:
А лет через пять, имхо, будет мертв и Линукс. Точнее он вернется в свою нишу малобюджетных ОС для обслуживания кассовых аппаратов и веб-серверов. Ибо Линукс поднялся в годы нестабильных Win3.11 / Win9x как надежная безглючная система, а сейчас же ядро NT в лице 2k/xp/2003 вполне справляется с любыми задачами.

Поживем увидем, т.к. каждому свое. Ведь почти все системы реального времени все же делают под *nix системы.

yudinetz
Изучай с винды, а потребуется, тогда и досом займешься.

-----
Сколько ни наталкивали на мысль – все равно сумел увернуться




Ранг: 133.0 (ветеран)
Активность: 0.060
Статус: Участник

Создано: 14 апреля 2006 08:50
· Личное сообщение · #16

Да какая разница подо что программить ?
Ведь главное это изучить язык! Так что програмь там где тебе нравиться, хочешь основы - DOS, Windows, Linux. Хочешь только под форточки - Windows.

Я рекомендую начать под DOS. Но не все учить, а только основы. Потом сможешь писать что хочешь.



Ранг: 62.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 14 апреля 2006 15:07
· Личное сообщение · #17

Люди, GUI писать на асме лучше чем на этом си. Просто надо иметь опыт работы с Win API.
Я лично изучать начал ассемблер под Windows, при этом пользовался статьями Broken Sword'а "Процессор INTEL в защищённом режиме" и книгой про программирование на ассемблере под DOS, а также опытом работы с Win API в Delphi и встроенным ассемблером там же. Изврат, но иначе бы у меня и не было бы желания изучать ассемблер. Потому что я не прикладной программист, х.




Ранг: 251.8 (наставник), 17thx
Активность: 0.120
Статус: Участник
Seeker

Создано: 14 апреля 2006 16:12
· Личное сообщение · #18

NullSession
Чем лучьше? (сорри за флейм). Ты сам на С много писал?
Создаешь диалог, используешь функции WinAPI, но! На С меньше писать, плюс возможнось использования стандартных библиотек... А хочешь уменьшить размер -- используй libctiny или wlib...

-----
DREAMS CALL US




Ранг: 62.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 14 апреля 2006 16:24
· Личное сообщение · #19

Если писать на чистом С - пожалуйста, только мне тогда проще всё-таки работать при возможности контролировать практически каждый байт кода. Я даже invoke на асме никогда не использую.
Да, кстати, статьи Broken Sword'а как раз на www.wasm.ru лежат. Я вот долго не мог понять, кто придумал регистры, где это и прочую муть, статьи расставили всё по местам. И наконец-то видишь, как мало придумано программистами Windows. Всё - лишь реализация задуманной концепции, и если бы они чётко ей следовали, то не было бы сейчас таких крутых возможностей для хакинга. Пора бы наконец все 4 кольца защиты заюзать.
Освоишь защищённый режим - достаточно будет освоить принцип работы PE загрузчика и загружаемых им файлов - и можешь писать под Windows. Или под Linux, если изучать принципы работы его.



Ранг: 36.9 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 14 апреля 2006 18:42
· Личное сообщение · #20

intty пишет:
писать графические аппл на асме изврат

имхо нет. добрых 60% виденных мною кряков - masm/tasm. И кстати почти все демомейкеры именно асмом и пользуются. А как посмотрел последнее творение Brain Control - сразу зауважал. такое только асмом можно в 64к запихнуть.
Я изучал с мануала от masm32 и методом научного тыка. долго, но верно




Ранг: 122.3 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 14 апреля 2006 19:32 · Поправил: intty
· Личное сообщение · #21

Dark_Phoenix пишет:
добрых 60% виденных мною кряков - masm/tasm. И кстати почти все демомейкеры именно асмом и пользуются. А как посмотрел последнее творение Brain Control - сразу зауважал. такое только асмом можно в 64к запихнуть.


гы.
я говорю про работу программистом. про заказы. про ремесло. я недостаточно точно выразился выше и смешалось понятие ремесла и искусства.
я ценю 64к демки и красивые кряки/кгены на асме(увы последнее время все больше их становится даже не на си, а на делфи и басике)

но применительно к ремеслу, то писать на асме именно изврат. (я не имею ввиду асм вставки во всяких кодеках и других требовательных к ресурсам и скорости вещах)

что-то все опять во флейм скатилось. увы как всегда. ((



Ранг: 62.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 14 апреля 2006 20:55
· Личное сообщение · #22

intty
А я придерживаюсь мнения, что на ассемблере, если писать свои библиотеки, можно достичь гораздо больших результатов, чем на языке высокого уровня. И изучать ассемблер надо не под конкретную ОС, а под архитектуру, стремясь понять её принципы, чтобы потом легко пересесть на другую и в ней работать в любой ОС.
Может закрыть топик?



Ранг: 62.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 14 апреля 2006 20:57
· Личное сообщение · #23

Мать, дык он же летом читал уже про дос. Действительно, надо изучать защищённый режим (тогда вопросов по особенностям ОС меньше будет). Про DOS забудьте, умер он, как это ни печально.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 15 апреля 2006 14:01
· Личное сообщение · #24

NullSession пишет:
Люди, GUI писать на асме лучше чем на этом си. Просто надо иметь опыт работы с Win API.

единственное, что мне не нравится в Си, так это типы и их переопределение (всякие cast_* и тп)
в случае с GUI - это разные типы данных, передаваемые через lParam и гемор с переопределением типа
но в остальном - именно GUI на Си писать ничем не хуже, чем на любом другом языке
на асме имеет смысл писать, когда ты не знаешь хорошо Си.
кстати, скомпилируй какой-нить код на Си с оптимизацией по скорости и глянь, как компилятор cl.exe выполнил свою работу

-----
EnJoy!




Ранг: 62.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 15 апреля 2006 19:34
· Личное сообщение · #25

Jupiter
Это фигня, вот Intel C++ Compiler - оптимизит конкретно. И на асме лучше писать, потому что такие программы потом будет удобнее защищать. И писал я на C, оставьте меня уже в покое. Просто меня устраивает именно ассемблер, работа с callback функциями, IPC и тому подобное. Это лучше делать на ассемблере.
И ещё:
;Процедура обработки оконных сообщений ---------------
WindowProc: ;|
; [esp] - точка возврата ;|
; [esp+4] - дескриптор окна ;|
; [esp+8] - сообщение ;|
; [esp+12] - первый параметр ;|
; [esp+16] - второй параметр ;|
cmp dword [esp+8],WM_DESTROY ;|
je wmdestroy ;|
; Параметры DefWindowProc и этой процедуры совпадают ;|
; после выполнения DefWindowProc мы больше никаких ;|
; действий производить не собираемся. Поэтому спокой ;|
; но используем jmp. ;|
default: ;|
jmp [DefWindowProc] ;|
wmdestroy: ;|
xor eax, eax ;|
push eax ;|
call [PostQuitMessage] ;|
xor eax,eax ;|
retn 4*4 ;|
;------------------------------------------------------
Гы, а вот ни один компилятор этого нормально не делает. И ещё зачем-то leave часто вставляют, я вот без него обхожусь.
Типы данных - их быть не должно.




Ранг: 75.0 (постоянный)
Активность: 0.050
Статус: Участник

Создано: 09 мая 2007 22:17
· Личное сообщение · #26

yudinetz пишет:
как думаете? или надо сначала по-нормальному выучить асм в досе?

думаю дос - реальный режим это круто!

Jupiter пишет:
ориентроваться на ДОС - беспреспективно,

а сама винда , она ведь программа которая запускается из под DOS-а



Ранг: 0.5 (гость)
Активность: 0=0
Статус: Участник

Создано: 09 мая 2007 22:26
· Личное сообщение · #27

Rid3r пишет:
С программой Emu 8086

толку от него мало...


 eXeL@B —› Программирование —› изучать асм под винду или дос?
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати