Novi4ek Название "Системный программист" само собой подразумевает хорошее знание ассемблера.Чтобы писать качественный код , обязательно нужно знать систему изнутри.Знание ассемблера говорит о высоком внутреннем развитии человека. К примеру человеку , не знающему асм трудно объяснить что результатом работы какойто функции на С не может быть адрес её локальной переменной, т.к. это дело в стеке и при дальнейших вызовах функций , после неё , там будет БОЛТ. Наверно асм это не ведущая прогрессивная технология - а образ жизни (дзен). И посмотри в ветке коммерц сколько платят, хоть и разово.
wsd Никто не говорит про незнание ассемблера. На любом программерском/системотехническом потоке в любом вузе ассемблер изучается на 1, 2 или 3ем курсе. Что там его изучать-то? Естественно знать надо, никто не спорит об этом. Наверное на васме это именно так.
асм нужен хотя бы для того, что бы не платить за программные поделки, таких программеров как Novi4ek и им подобным.
И как же немного "изменить" или "зарегистрировать" программу незная ассемблера? Аля HIEW32 + знание Асма.... А вирусы писать? А антивирусы?
Да и вообще есть в ассемблере что-то такое... Завораживающее... Не знаю как объяснить толком... Но думаю здешние меня понимают...
вопрос поставлен неверно: что значит "есть ли перспектива"??) асм - это язык проца и значит, что он будет жить пока живут процы. другой вопрос будет ли он использоваться напрямую - на эту тему мы с SII как раз и беседовали), так что повторяться не буду) одно могу порекомендовать: не надо впадать в фанатизм, ибо абсолютно выигрышных подходов нет. конечно, стоит признать, что асм хорош для тренировки мозга, хотя я предпочитаю математику.
Главное уметь строить алгоритмы и логику программы, а в чем воплощать их в жизнь - это уже дело десятое.
beginner Так строиш ты их опираясь на какой-то язык или псевдоязык. Язык формирует мышление! Если язык слишком примитивен, то соответственно и результаты мышления будут желать лучшего. К примеру возьмём чукч. Да это не шутка. На ихнем языке ни черта не объясниш физические процессы или элементы высшей математики Но зато они самые лучшие охотники . У них в языке 15 названий вида снега и куча других наворотов, связанных с охотой. Вот их язык и определил ихнее занятие и мышление. Асм всеобъемлин и допускает любую реализацию творческой мысли.
wsd Нет, я сначала строю алгоритм в уме, пытаюсь его в уме выполнить или на листке бумаги (ну это уже крайность ). Если я могу выразить этот алгоритм словами - я его смогу закодить. И тогда уже выбираю на чем его кодить. Лишь бы возможности языка программирования позволяли закодить то, что мне нужно. Ну и ессно, с учетом специфики алгоритма выбирается тот язык, который наиболее лучше подходит данную задачу, или тот, который знаем. Хотя если под псевдоязыком понимать язык человеческого общения - тогда ты прав.
wsd ты на асме своей девушке в любви объясняешься)?? самым сильным языком является язык образов, слова отображают его, но не вполной мере.
И мне пофлудить хочется. beginner Ага. Вот Вы придумаете алгоритм для boot load программы, под который ну просто идеально подходит VB6.0. Хотел бы я посмотреть, как Вы его закодите. wsd прав: если Вы раньше писали на высокоуровневых языках и переходите на ассемблер, то образ мышления придется поменять. Понятия циклов нескольких типов (по количеству, предусловие, постусловие и т.п.), ветвлений не имеют силы. Мало того: мегакрамольный оператор goto, который не использует ни один, уважающий себя программист на высокоуровневом языке, - средство, без которого практически нереальна программа на ассемблере. Так вот без смены образа мышления при переходе к ассемблеру подстраивать Ваши суперкрутые алгоритмы с листочка бумаги под ассемблер будет нелегко, а получаться будет отвратительнейший код. Ну вот простейший пример - фрагмент перевода числа в строку: Что пишет человек, перешедший от языка высокого уровня: Код (Text): mov ecx, 8h cycle: push Eax and Eax, 0fh cmp Eax, 0Ah jae hex add Eax, 30h mov [answer+ecx], al jmp resume hex: add Eax, 57h mov [answer+ecx], al resume: dec ecx pop Eax shr Eax, 4h cmp Eax, 0 jne cycle Смотришь и видишь конструкцию If-then-else. Мало того. В оригинале ответ вообще заполнялся от адреса answer, к концу буфера, что еще увеличивало объем кода. А вот, что пишет человек, думающий на ассемблере (посмею так выразиться, т.к. пример достаточно прост): Код (Text): mov ecx,8 nextDigit: mov eax,esi and eax,0Fh add eax,'0' cmp eax,'9' jbe @F add eax, 'A'-('9'+1) @@: shr esi,4 add ecx,-1h mov byte[Answer+ecx],al jnz nextDigit Вы писали когда-нибудь на прологе? Нет? А при переходе к этому языку Вам тоже придется менять образ мышления и строить алгоритмы под него, а не кодить на нем алгоритм, который к этому языку ну ни в тын, ни в другие места. Да что там к языку... даже если сравнивать структурно-функциональный подход с ООП - разные шария думающих частей человеческого тела. Если Вы привыкли к ООП, то и придуманный Вами алгоритм будет хоть и не осознанно, но отвра... ну в общем другим. UbIvItS Ну что Вы говорите? wsd говорил о реализации творческой мысли, а не о таком никчемном, мелочном, пошлом и эгоистичном понятии, как "любовь".
l_inc Продолжаем флудить. )) Я изначально начинал учить именно асм, при чем на таких гробах, что счас даже никто о них не слышал. этот гроб представлял собой чемодан, именно чемодан, с 6 индикаторами и с процом КР580ВМ80А, аналога интела 8080 и вроде как с 512 байтами под код. И давали задачи написать код, что бы в отведенный обьем вписать все заданные функции. Так что я как раз переходил с асма на С и С++, а не наоборот и оптимизацию кода нам хорошо вбивали. Кроме того, программирование под ZX Synclair также подразумевает знание асма, и там был небольшой опыт кодинга Я там еще дописал, что можно использовать язык которым знаем Если программер знает тока бейсик, то он и будет писать на бейсике Тут еще мысля пришла. Если программер владеет каким либо ЯВУ, то он автоматически будет строить алгоритм с учетом специфики этого языка. Если программер изучал С++ изначально под МФС, то он и будет строить практически всегда алгоритмы с учетом МФС. И мы спорим о перспективах асма или как? тут уже выше написали - пока будут жить процы - будет жить и асм Если я не ошибаюсь, то вместо данной операции можно написать dec ecx ?
Если интересует только изменение содержимого регистра -- то да. А вот если изменение флажков -- то не всегда, если память не изменяет (смотреть в мануал, как устанавливает флаги dec, мне лень).
всю жизнь операции декремента и инкремента изменяли флаги, в соответствии с результатом операции dec ecx устанавливает флаг нуля, если есх стал = 0. любые математические, логические операции меняют флаги. Другой вопрос, флаг может не поменятся, если он уже до операции установлен или сброшен в тоже самое состояние, в которое он переходит после выполнения операции. Тогда визуально не видно, что флаг изменился. Флаги не меняются только при использовании операций перемещения и изменения хода выполнения программы.
до тех пор, пока его не начинают распространять те, которыми он не был придуман и которыми не использовался в повседневной жизни в качестве утилитарного, после этого язык превращается в культ .
l_inc товарищ, только задача определяет выбор инструмента) а споры о том, что лучше - что хуже в абсолюте, для фанатиков и ламеров) решение любой задачи - это компромисс между разл. факторами - нельзя выиграть сразу по всем параметрам. ну, вот приехали: любовь стала ассоциироваться с такими вещами( идеолагам масмедиа можно поставить железную пятёрку, ибо здорово людям м0зги промыли)