Хотя я програмирую на паскале, С++, немного бейсик, а в ассемблере дуб, с чего начать, вроде писал простую прогу как ее компилировать, что посоветуете? да и еще вопрос чайника: Чем отличается написанная програма на ассемблере, от програмы вскрытой дизассемблером?
посоветую включить мозг и начать пользоваться поиском. Если не получится, то инъекция яда внутривенно. Это ж каким надо быть дауном, чтобы НА ВАСМЕ мля не найти ничего по ассемблеру...
Мы все учились понемногу чему нибудь и как нибудь... Вобще поражает с каким маниакальным упорством создают такие темы минимум раз в неделю. saper Ничего личного Наверно админам давно пора открыть ветку с названием "Я ничего не знаю - что мне делать?". Начать ты должен с того, чтоб понять зачем тебе нужен ассемблер. Если расчитываеш писать мега крутые программы, тебя ждёт разочарование, потому как в ближайшем будующем тебе это не светит. Будеш писать под windows - будеш использовать API (почти вся документация на ненашем). И потом, если совсем глубоко копнуть использование API сродни использованию компонентов дельфи (ой чуствую после этих строк меня с г...ном съедят). По сути ты используеш то, что написал "добрый дядя". Под DOS для комфортной работы - прерывания DOS и BIOS (тот же "добрый дядя"). На сайте любят алегории, не удержусь и я: Покупая машину ты врядли будеш изучать как работают её механизмы. Просто сдаш/купиш права и поедеш. А вот когда чего сломается займёшся изучением узла. Ассемблер - знание как работают узлы машины. Стоит ли изучать асм если ездить не научился
спс за помощь, вот есть у меня TASM, FASM, а хз как ими пользоватся, да й хелпа там нету, для меня изучение ассемблера это поиск ошыбок в програмах, програмы писать крутые на ассемблере думаю это жесть, как для меня,
почитай калашникова. Там все доступно написано. А потом сюда, читать и учиться программить под win32: http://wasm.ru/publist.php?list=1
saper зачем тебе этом asm? Пиши свои программы на с, включай опцию оптимизировать по объему кода (или скорости). Мало кто соптимизирует лучше чем твой компилятор. А если разобраться глубже с его настройками, то ... C&С++ - rule!!!
_sheva740 Компилятор сможет лучше распределить переменные по регистрам, но не сгенерировать подходящий алгоритм для конкретной задачи. А как известно, лучшая оптимизация достигается при применении подходящего алгоритма для конкретной задачи. Другими словами, при кривых руках..ни один компилятор код не вытянет. Полагаю..у людей знающих ассемблер, с разработкой алгоритмов, гораздо лучше чем у программистов прикладников... си.
_sheva740 Смотря что за программы. Например большинство тех задач, котороые решаю я, невозможно без асма выполнить. Например какаялибо обработка прерываний, захват контекста и тп.
ага. щаз. даже при оптимизации максимум будет использовать 3, а 4 оставит под какие-то мусорные структуры требующиеся для работы с классами или еще какой белибердой. извините, но это даже у современных компиляторов осталось от 16-битки. а про .net я вообще молчу. эти программы даже запускать противно, не то что там даже дизассемблировать
max7C4 глупость ты сказал. Я б не стал говорить это "Компилятор сможет лучше распределить переменные по регистрам" еслиб не знал 100% , что это так. Если ты имеешь хоть небольшое представление о разработке компиляторов, то должен бы это знать. ( попробуй написать свой компилятор..хоть какой убогий. Это самая базовая методика оптимизации кода (распределение переменных по регистрам)). + в хорошем компиляторе может быть оптимизация команд, наподобие .. (r1 or r2) - (r1 and r2) = r1 xor r2 и тд.. Такчто если хотите от асма получить производительности для проги, то пишите алгоритмы как надо. А так, асм лучше применять конечно-же для таких вещей: вирусы, рутики, криптография, эксплойты, защита информации, программинг аппаратуры(bios там всякие...).и т.д. чёрт...а ведь я себя считаю новичком в программинге....
featurelles Вот и не торопись с поспешными выводами на основании прочтения книг рекламного характера ) Вот пример когда алгоритм "одинаково" написанный на С и асм, на С давал совсем не оптимальное расположение команд и использование регистров, правда потом в другом топике (не помню как его искать) мне тут подсказали, что получить от MSVC гораздо лучшее совпадение с асм вариантом можно, но для этого нужно знать асм и уметь "структурировать" С программу "подсказывая" компилятору низкоуровневую последовательность действий )
Я не на основании прочитанных книг выдаю информацию (ну может и выдаю, но редко). А из практики. Могу только сказать) , что компилятор , компилятору рознь. Например в дельфи, компиль делает код, какбы это сказать....не оптимальным чтоли. К примеру три последовательности xor eax, eax, xor eax, eax, xor eax, eax ... и это не обфускация, а именно компилируемый код. Но согласитесь, не все компиляторы, так тормозят.
программист который пишет на ассемблере код который будет потом читать, старается написать код так чтобы его можно было прочитать, поэтому например старается возвращать через eax[:edx] хранить счетчик в ecx, базу в ebx и т.п. компилятор же не компилирует код чтобы его читали, поэтому он может перемешать регистры избавившись от лишних временных переменых, push\pop + компилятор может инлайнить подпрограммы оптимизируя их вместе с кодом куда они инлайнятся + оптимизировать if\switch до O(log(n)) +... но зато есть много других недочетов
Y_Mur Ну дык в этом посте, нашли на чём тестить )).... vs2005 Я уверяю, качественный компилятор...и я повторюсь , именно качественный, может оптимизировать программу, не хуже чем эксперт в этой области. ( хоть и допускаю..что могут быть погрешности в выборе оптимального алгоритма. ). И ещё от себя. Ручная работа, ценится больше чем произведенная компьютером. Такчто, всёже можно сделать программу на асме шустрее чем на си.