PDA

Просмотр полной версии : Как лучше изучать ассемблер


nerezus
09.06.2007, 20:58
Ниасилишь скорее всего сейчас под винду, попрактикуйся под дос. Под дос аналогичные виндовым проги, делать сложнее.
Да и думаю, что нужно учить то, что нужно ;) А дос навряд ли ему нужен.

iv.
09.06.2007, 21:02
Под дос аналогичные виндовым проги, делать сложнее.
Да и думаю, что нужно учить то, что нужно А дос навряд ли ему нужен.
Полностью согласен, что дос сейчас не актуален, но программирование на асссемблере под дос развивает некоторые основные навыки в этом деле, и потом переходить на виндовый ассемблер получается намного легче. По своему опыту просто.

ПС: под дос аналогичные виндовым проги в принципе не сделаешь, разве что консольные =)

Piflit
09.06.2007, 21:28
RTFM _http://flatassembler.net/docs.php

был там и еще на паре сайтов перед тем, как задать вопрос на форуме.

2 nerezus, думаю, что основы проще учить под дос, а потом уже можно и на вин32 переходить=)

nerezus
09.06.2007, 21:29
Переходить легче.
Но ты не учитываешь то, что еще придется учить асм под дос. А это уже сложнее(говорю исходя из совсем небольшого опыта написания прог под эти ОС) =)

Piflit
09.06.2007, 21:34
асм под дос и вин сильно различается?
и эти различия типа различий между масм, фасм и другими *асм?

slesh
09.06.2007, 21:42
эх.. скока я знаю людей кто собирался учить асм, но их отпугнули эти дурацкие прерывания доса. ПРосто постоянно таскать справочники по прерываниям и функциям - это напряг. Вот винда - другое дело - Api функции и никакого дерьма.

Piflit
09.06.2007, 21:52
асм на вин - чистый api?

KEZ
09.06.2007, 22:03
> асм на вин - чистый api?

колбаса на снегу - это грязный носок?

> думаю, что основы проще учить под дос, а потом уже можно и на вин32 переходить=)

неправильно думаешь

> Вот винда - другое дело - Api функции и никакого дерьма.
опять изречение, появившееся в результате неглубокого понимания сути ассемблера. да хули я такие умные слова то пишу. проще говоря - вообще нихуя-незнания.

iv.
09.06.2007, 22:06
Но ты не учитываешь то, что еще придется учить асм под дос.
Асм под дос? А в чем у него принципиальные различия? Прерывания?
Ну хз, реально там используются немного, и после некоторой практики пишутся на автомате. У меня просто не было выбора, учили под дос и всё. =) Потом под винду.
асм на вин - чистый api?
Ну, что значит "чистый"? Апи-функции служат некой расширенной заменой прерываний в досе, вот и всё. Напрямую с асмом никак не связаны эти функции, с таким же успехом можешь их использовать на С.

Piflit
09.06.2007, 22:17
KEZ, а не проще объяснить?

slesh
09.06.2007, 22:41
Я вообще говорю про чтение файлов и тому подобынх вещей.
т.е. Api функции - это типа имена для досяный прерываний.
Сделано для убоств програмеров :)

slesh
09.06.2007, 22:46
Короче, один хер. пусть учит как удобнее, Если поймет суть языка то там уже будет пофигу под что писать. Будь, то дося, окна или пингвины.
Смысл один и тотже и пути одинаковые, тока п разному завутся.

Мож тогда сразу начать с написанить бутявки для флопика. тогда вообще можно понять прерывания в чистейшем биосном виде :) и весь гемор работы с ними.

KEZ
09.06.2007, 23:00
> т.е. Api функции - это типа имена для досяный прерываний.

всё я сдаюсь, удачи

hidden
09.06.2007, 23:08
ИМХО Лучший способ выучить любой язык программирования, просто прочитать раздел синтаксис, запастись справочником по функциям, взять пару работающих примеров и постепенно вносить в них изменения сохраняя работоспособность, добиваться нужной функциональности. Это и всё что нужно!

В fasm'е после директивы format не нужно писать use16 или use32

format PE - exe + use32 (Windows)
format MZ - exe + use16 (DOS)
org 100h - com + use16 (DOS)
отсутствие формата подразумевается бинарный bin + use16

slesh
09.06.2007, 23:22
2 KEZ Ну это я так. образно выражаюсь..
И вообще, нут чешь не идет о конкретной винде.
Вот к примеру Win 3.11 - вообще жестока сидела на досе.
ПРосто для новечков более понятнее какбы вообще разлиция между API и INT
В любом случае API рулят. Хотя и не всегда...
В любом случае если чел шас начнет учить под досю, то тутже появятся куча вопросов
на многие из который будет самым нормальным ответ, в котором будет пресутствовать слово DOSBOX. IMHO - проблема досяных прог под SP2.
Особенно с видео режимами. и еще кучкой всякой херни.

KEZ
10.06.2007, 00:20
ПРосто для новечков более понятнее какбы вообще разлиция между API и INT
В любом случае API рулят. Хотя и не всегда...

ты вообще понимаешь какой бред пишешь?
может меня разыгрывают?
сравнивают int и api? кроме того, что оба слова из трёх букв - линию аналогии тут провести просто негде
какие-то сравнения пошли дикие просто. int - инструкция. api - интерфейс. интерфейс - даже не код, а банально широкое понятие. его код может использовать инструкции. напоминаю, опомнись, мэн, ты пишешь не ПОД СИСТЕМУ, ты пишешь ПОД ПРОЦЕССОР!


ИМХО Лучший способ выучить любой язык программирования, просто прочитать раздел синтаксис

Люди на земле - вы сошли с ума? Метеоритный дождь там или чего такое то? Сколько раз ещё написать что ваше понимания ассемблера как языка программирования - получилось из-за поверхностного изучения и лишних, губящих ассоциаций? Как это ещё обьяснить? Ассемблер - всего лишь инструкции процессора, выучить, т.е. зазубрить конечно можно, и пусть чел напишет криптор, изучит формат pe-файла, но будет дальше писать мне api = int и тому подобные высказывания. Какой смысл что-то изучать, если вы не понимаете в корне как это использовать и где это использовать? Или может в институтах так обьясняют? Я там к сожалению не учился, школьник тупой ещё вот, который бензин нюхает. Как узнаю - отпишу!


ПРосто для новечков более понятнее какбы вообще


вот только не надо со мной обсуждать "этих назойливых" новичков)
будто я тебя считаю проффесионалом после верхней цитаты)

Я конечно боюсь соврать, нет мед. образования, но вот например мы с грейтом употребляем дхм и может от него так разум просветлился? ; ) Он мог бы сказать тоже что и я просто. Вообще заметил что все кто стали употреблять этот божий дар стали кодерами - тот же зако ; )



Great (16:43:47 9/06/2007)
сегодня хавали глик с грейпфрутовым соком.

Constantine
10.06.2007, 02:43
Кез ты иногда такие вещи пишешь, такое ощущение что тебе глубоко за 30 =\

nerezus
10.06.2007, 08:04
ПРосто для новечков более понятнее какбы вообще разлиция между API и INT int 21h(и т.д.) + то, что лежит в ah(номер ф-ии) - это и есть API доса.
API - это Application programming interface, а не только закорючки из MSDN.

но будет дальше писать мне api = int и тому подобные высказывания Под дос эти понятия равны )

iv.
10.06.2007, 09:56
Немного почитал/вспомнил по этому вопросу, вот что хочу сказать:

Для начала, давайте разделим понятия "прерывание" и "обработчик прерывания": прерывание - просто сигнал процессору (читаем вики), а обработчик прерывания - функция, вызываемая в дос посредством инструкции int.
В win32api собрано множество функций (их же можно назвать системными вызовами), которые осуществляют обращения к ядру операционной системы, которое уже предоставляет доступ к физическим ресурсам компьютера. Таким образом, api является просто некой абстракцией функциональности.

В общем, предлагаю дальше не обсуждать эту мутную тему, а пойти дружно почитать википедию, я сам к сожалению тоже вдумчиво так и не дочитал, времени к сожалению сейчас мало. А Кез очень критичен почему-то, но ничего так и не объяснил конкретного. =(

slesh
10.06.2007, 10:27
Мля. Int - Interrupt - если дело на то пошло!

slesh
10.06.2007, 10:42
Один хер, даже если знаешь хрен объяснишь. Нужно понять.
Полностью согласен с iv. - тут тема уже пошла совсем про другое.
Типа как в анекдоте:

В одном первобытном племени как-то поспорили, что важнее:луна или солнце. Чуть до драки дело не дошло: одни кричат солнце,другие - луна. И вот пошли они к вождю. Он у них типа самый умный. Вождь думал три дня, а потом сказал.
Луна важнее!На вопрос почему, он вполне резонно обьяснил:
Солнце дает нам свет днем. Днем нам свет на хрен не нужен т.к. и так светло. А Луна дает свет ночью. Ночью свет очень нужен.

nerezus
10.06.2007, 10:52
Таким образом, api является просто некой абстракцией функциональности. API является только тем, чем оно является. то есть просто интерфейсом взаимодействия предоставляемым некоторой системой.

_Great_
10.06.2007, 12:30
Тема разделена. В следующий раз всех оффтоперов покусаю =)

inSa(Ne)rd
10.06.2007, 15:47
Вы очень зря путаете прерывания, которые могут поступать от внешних устройств, генерироваться инструкциями или например, от таймера, т.е. одну из основ работы процессора и application programming interface. Тем более ещё постите какие-то нелепые убеждения что в досе вот апи такой а в винде ты пиши пацан WriteFile(), это так же АПИ. Вот вы так и будете с абстракцией сначала писать int 21h а потом заменять на "эквивалент" в винде. Будто все так элементарно и абстрактно. Дофига накодите с таким пониманием вещей.

API является только тем, чем оно является. то есть просто интерфейсом взаимодействия предоставляемым некоторой системой.

тур агенство и адвокат в суде тоже АПИ получается

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


Таким образом, api является просто некой абстракцией функциональности.


меджик машрумс?

_Great_
10.06.2007, 15:58
Вы очень зря путаете прерывания, которые могут поступать от внешних устройств, генерироваться инструкциями или например, от таймера, т.е. одну из основ работы процессора и application programming interface.
Имхо ты мешаешь в одну кучу аппатартые прерывания и программные прерывания. Программные прерывания как раз предназначены для взаимодействия "более высокоуровневого" (если можно так выразиться) кода с некоторыми базовыми примитивами BIOS, операционной системы или ее расширений.
Винда устроена на том же самом, используется прерывание 2E для обеспечения взаимодействия с Native API. (в XP и выше еще есть и SYSENTER, но это не меняет дела)

Другое дело, что у ДОСа другие концепции и просто так "соскочить" на винду будет нелегко с учетом всех особенностей доса.
Абстрагирование - это, конечно, хорошо, но дос его не обеспечивает. Да и, собственно, никакая ОС.

KEZ
10.06.2007, 16:18
Имхо ты мешаешь в одну кучу аппатартые прерывания и программные прерывания.


сваливаю и это в _данном_ случае правильно)

_Great_
10.06.2007, 16:33
сваливаю и это в _данном_ случае правильно)
Ну.. может быть, но все же не стоит мешать так в кучу это. Я твою мысль понял, только изъяснился ты не очень

iv.
10.06.2007, 16:38
меджик машрумс?
5-MeO-DMT =(

Вынужден был открыть книжку Абеля, почитав немного про прерывания понял, что сравнивать прерывания, а также обработчики прерываний, с API действительно глупо. =) Принципиально разные вещи.

taha
10.06.2007, 16:45
Вынужден был открыть книжку Абеля, почитав немного про прерывания понял, что сравнивать прерывания, а также обработчики прерываний, с API действительно глупо. =) Принципиально разные вещи.

API является только тем, чем оно является.
И Int является только тем, чем оно является.

nerezus +max

И все..

Piflit
10.06.2007, 21:59
чувствую, зря я про fasm спросил...

ЗЫ посоветуйте книги/статьи по fasm win32. (кроме wasm.ru, http://flatassembler.net/docs.php )

не собьет ли меня с пути истинного вот это (http://www.kalashnikoff.ru/Assembler/)?

slesh
10.06.2007, 22:52
2 Piflit А я вообще юзаю тока спавочник API функций, справочник инструкций MP и доку из самого FASM (PDF файл). И этого достаточно чтобы чтото сделать :)

_Great_
10.06.2007, 22:53
Вообще Msdn + справочника по асму достаточно, чтобы написать что угодно под винду.

KEZ
10.06.2007, 23:31
не собьет ли меня с пути истинного вот это?


собьет, но ты ведь попросишь предложить что-то взамен а я не смогу


Вообще Msdn + справочника по асму достаточно, чтобы написать что угодно под винду.


ага вообще достаточно справочника intel architecture трёхтомного и блокнота
только это теоретически ; )

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

_Great_
10.06.2007, 23:44
ага вообще достаточно справочника intel architecture трёхтомного и блокнота
только это теоретически ; )

PS Алиса хочет стать кодером поэтому она решила убить меня и грейта и выпить нашу кровь.
Ну тогда вообще зачем отладчик нужен и дизассмеблер, открываешь дамп ехешника, карандаш с бумагой в зубы и пошёл! =))

PS. До чего вы там уже дошли кстате?