Vsoft 8 Опубликовано 16 января, 2007 Автор Share Опубликовано 16 января, 2007 сыр, подскажи хорошего автора,пожалуста .@ Ссылка на сообщение Поделиться на другие сайты
Autopsy 78 Опубликовано 16 января, 2007 Share Опубликовано 16 января, 2007 (изменено) Assembler Forever! "Я провел эксперимент, написал программу (обычное окно с одной кнопкой в центре, которая закрывает его) на разных языках высокого уровня и после компиляции получил вот такие размеры этой самой программы: C++ Builder 4 - 22 kb Delphi 5 - 291 kb Delphi 5 + библиотека KOL - 26 kb Ассемблер MASM - около 3 kb Так, что смотрите и делайте выводы, что лучше использовать." Насчёт объектно ориентированного программирования, которое сейчас столь популярно, тут тоже не всё так радужно... если вовремя не понять меру, "проект рухнет сам под своей тяжестью". Я за Ассемблер. Как ни крути, а наступают моменты когда я языками высокого уровня руки связаны. С Assembler такое невозможно в принципе! Я по душе идеалист, может быть поэтому я учу именно этот язык. Когда начинаешь немного понимать в этом прекрасном языке, то перед глазами открывается таинственная и величественная картина микропроцессорного "зазеркалья". Вот оно! Всё как на ладони. И ты хозяин всего этого! С языками высокого уровня человек НИКОГДА не почувствует и не увидит этого. Всё скрыто пеленой непонятных и заранее непредвиденных преобразований компилятора. Что он там творит и с чем? А кто его знает... тут программист рулит косвенно. Вот пример: Ни один язык высокого уровня не может сделать того, что делает это чудо: CSEG segment assume cs:CSEG, es:CSEG, ds:CSEG, ss:CSEG org 100h Begin: mov sp,offset Lab_1 mov ax,9090h push ax int 20h Lab_1: mov ah,9 mov dx,offset Mess int 21h int 20h Mess db 'А все-таки она выводится!$' CSEG ends end Begin В чём прикол? Эта микроскопическая прога заламывает руки всем отладчикам (конечно не SoftIce ), используя всего-то пару элементарных команд в нужной последовательности! Строка ВЫВОДИТСЯ на экран, хотя перед командой вывода на экран строки символов, ясно написано остановить выполнение и выйти... У отладчиков шок и глюк! "Первый вопрос, который задает себе человек, впервые услышавший об этом языке программирования, — а зачем он, собственно, нужен? Особенно теперь, когда все пишут на C/C++, Delphi или других языках высокого уровня? Ведь очень многое можно создать на С, но ни один язык, даже такой популярный, не может претендовать на то, чтобы на нем можно было написать действительно «все». Итак, на ассемблере пишут: все, что требует максимальной скорости выполнения: основные компоненты компьютерных игр, ядра операционных систем реального времени и просто критические участки программ; все, что взаимодействует с внешними устройствами: драйверы, программы, работающие напрямую с портами, звуковыми и видеоплатами; все, что использует полностью возможности процессора: ядра многозадачных операционных систем, DPMI-серверы и вообще любые программы, переводящие процессор в защищённый режим; все, что полностью использует возможности операционной системы: вирусы и антивирусы, защиты от несанкционированного доступа, программы, обходящие эти защиты, и программы, защищающиеся от этих программ; и многое другое. Стоит познакомиться с ассемблером поближе, как оказывается, что многое из того, что обычно пишут на языках высокого уровня, лучше, проще и быстрее написать на ассемблере. Как же так? — спросите вы, прочитав последний пункт. — Ведь всем известно, что ассемблер — неудобный язык, и писать на нем долго и сложно! Давайте перечислим мотивы, которые обычно выдвигаются в доказательство того, что ассемблер не нужен. Говорят, что ассемблер трудно выучить. Любой язык программирования трудно выучить. Легко выучить С или Delphi после Паскаля, потому что они похожи. А попробуйте освоить Lisp, Forth или Prolog, и окажется, что ассемблер в действительности даже проще, чем любой совершенно незнакомый язык программирования. Говорят, что программы на ассемблере трудно понять. Разумеется, на ассемблере легко написать неудобочитаемую программу... точно так же, как и на любом другом языке! Если вы знаете язык и если автор программы не старался ее запутать, то понять программу будет не сложнее, чем если бы она была написана на Бейсике. Говорят, что программы на ассемблере трудно отлаживать. Программы на ассемблере легко отлаживать — опять же при условии, что вы знаете язык. Более того, знание ассемблера часто помогает отлаживать программы на других языках, потому что оно дает представление о том, как на самом деле функционирует компьютер и что происходит при выполнении команд языка высокого уровня. Говорят, что современные компьютеры такие быстрые, что ассемблер больше не нужен. Каким бы быстрым ни был компьютер, пользователю всегда хочется большей скорости, иначе не наблюдалось бы постоянного спроса на еще более быстрые компьютеры. И самой быстрой программой на данном оборудовании всегда будет программа, написанная на ассемблере. Говорят, что писать на ассемблере сложно. В этом есть доля правды. Очень часто авторы программ на ассемблере «изобретают велосипеды», программируя заново элементарные процедуры типа форматированного вывода на экран или генератора случайных чисел, в то время как программисты на С просто вызывают стандартные функции. Библиотеки таких функций существуют и для ассемблера, но они не стандартизованы и не распространяются вместе с компиляторами. Говорят, что программы на ассемблере не переносятся. Действительно, в этом заключается самая сильная и самая слабая сторона ассемблера. С одной стороны, благодаря этой особенности программы на ассемблере используют возможности компьютера с наибольшей полнотой с другой стороны, эти же программы не будут работать на другом компьютере. Стоит заметить, что и другие языки часто не гарантируют переносимости — та же программа на С, написанная, например, под Windows 95, не скомпилируется ни на Macintosh, ни на SGI." PS: Всем у кого есть вопросы по программированию и компам сюда: http://rusfaq.ru/ PSS: Внимание! Всё что взято в ковычки есть цитата! Изменено 16 января, 2007 пользователем Autopsy Ссылка на сообщение Поделиться на другие сайты
radioelectron 82 Опубликовано 17 января, 2007 Share Опубликовано 17 января, 2007 Создал прогу на VB - на форме кнопка, по которой форма закрывается. Получилось 5 Кб 1.rar Ссылка на сообщение Поделиться на другие сайты
ACIK 384 Опубликовано 17 января, 2007 Share Опубликовано 17 января, 2007 Создал прогу на VB - на форме кнопка, по которой форма закрывается.Получилось 5 Кб 1.rar Правильно, все завист от компилятора и количества функций в подключаемых библиотеках, не надо вообще их (библиотеки) подключать ради одной кнопки, лучше использовать то, что уже есть в Виндовс, например API. Или если использовать интерпретатор, код вообще будет масюсеньким (в размер листинга проги)... Ссылка на сообщение Поделиться на другие сайты
Vsoft 8 Опубликовано 20 января, 2007 Автор Share Опубликовано 20 января, 2007 Большое спасибо за та что памогаете мне определится с языком ! Я купил всеже паскаль и начал с него затем думою делфи или С++ так как для меня С-это наилучший язык в моём понимании , настёт асамблера я думал очень долго ломал голову просто сходил сума поймите меня правильно мне всего 15 лет для меня даже паскаль представляет сложность ну точно с языком я ещё не опредилился посмотрю Visual Basic ну и сделаю вывод. Спасибо за советы друзья! Ссылка на сообщение Поделиться на другие сайты
radioelectron 82 Опубликовано 20 января, 2007 Share Опубликовано 20 января, 2007 Короче говоря, нужно знать несколько языков программирования. И чем больше, тем лучше. Ссылка на сообщение Поделиться на другие сайты
Vsoft 8 Опубликовано 21 января, 2007 Автор Share Опубликовано 21 января, 2007 Я буквально вчера сравнил две одинаковые проги одна с++ другая на ассамблере , улёт полный на с++ прога 50кб , а на асамблере 4кб ,в моих глазах асамблер поднялся ещё на одну ступень выше! Ссылка на сообщение Поделиться на другие сайты
radioelectron 82 Опубликовано 21 января, 2007 Share Опубликовано 21 января, 2007 Каждый язык для разных целей. Например КАВ/КИС написаны на MS VC++ ;-) Ссылка на сообщение Поделиться на другие сайты
Vsoft 8 Опубликовано 21 января, 2007 Автор Share Опубликовано 21 января, 2007 (изменено) Да я не думал что на с++ , считал что асамблер. Есть ли антивирусы написанные на асамблере. Изменено 21 января, 2007 пользователем Vsoft Ссылка на сообщение Поделиться на другие сайты
CbIP 79 Опубликовано 21 января, 2007 Share Опубликовано 21 января, 2007 Vsoft, извини, не заметил вопрос проавтора... Я не помню цже автора, но как я выбираю книги по программированию: иду в магазин и начинаю их перечитывать - если мне понятно, что написано и как - тогда всё хорошо, если нет - то беру другую... Только сначала надо перебрать все книги, которые есть... Ссылка на сообщение Поделиться на другие сайты
Vsoft 8 Опубликовано 21 января, 2007 Автор Share Опубликовано 21 января, 2007 (изменено) СЫР ты совершенно прав ! Но видишь ли я живу в ростове недавно и книги дастаю с большим трудом а всё потому что я плохо знаю город. Изменено 21 января, 2007 пользователем Vsoft Ссылка на сообщение Поделиться на другие сайты
ACIK 384 Опубликовано 21 января, 2007 Share Опубликовано 21 января, 2007 Да я не думал что на с++ , считал что асамблер.Есть ли антивирусы написанные на асамблере. Написать большую программу на ассемблере, это куруто, по сложности = выстроить 100-этажный дом из красного кирпича и вручную . Перед таким разработчиком останется только "снять шляпу"... Ссылка на сообщение Поделиться на другие сайты
Autopsy 78 Опубликовано 21 января, 2007 Share Опубликовано 21 января, 2007 (изменено) Ну... тут никто не спорит. Никто скальпелем землю не пашет... ему есть не менее достойное применение. Тут, кстати, при рассмотрении этой проблемы можно заметить вот что: что делать если программа медленно работает, что делать если у програмиста не хватило мозгов написать быстродействующий и относительно небольшой код? Ответ нормального человека: дык написать программу по-человечески, вкласть в неё душу, идеи, изобретения, смекалку и нестандартные шаги! Ответ Microsoft-like купить комп мощьнее... ВСЁ! Куда проще? Поэтому поделья Мicrosoft так ненасытно пожерают всё новые и новые гигабайты дискового пространства и времени CPU! Сей подход губителен и отвратителен. В реализации "нестандартных шагов" Assembler как нельзя кстати. Я пришел к такому выводу: само-то это С++ и Assembler. Насколько я понял, можно код на Ассемблере вставлять в код на С++, в ответственных, быстрых и ювелирных местах. C++ тоже принижать не стоит. Многие участки кода C++ работают не намного медленее Assembler! Хотя писать легче на C++. Но... некоторые места быстрее и проще писать на Assembler-e. В общем это IMHO идеальный вариант, C++ и Assembler, применяемые вместе и с умом. Далее Паскаль похож на С, кто переучивался говорят очень легко. Не следует забывать что Паскаль это "игрушка, воспринятая слишком серьёзно", програмы _крайне_ медлительны (а чего вы хотите от игрушки?)... а Delphi его потомок... хотя тут я не разбирался в полной мере. Кто знает, Delphi тормоз? Сейчас я подготавливаю почву под C++, качаю и покупаю книжки. Vsoft. Вот сцылка www.comprog.ru/c.html , тут много чего есть. ////////// Vsoft, я хотел тебе поднят рейтинг, кот. сам забрал, а получилось наоборот, господа модераторы, верните на место! Изменено 21 января, 2007 пользователем Autopsy 1 Ссылка на сообщение Поделиться на другие сайты
Vsoft 8 Опубликовано 22 января, 2007 Автор Share Опубликовано 22 января, 2007 Autopsy , подскажи смогу ли я изучить асамблерили с++ незная языков прграмирования . Ссылка на сообщение Поделиться на другие сайты
radioelectron 82 Опубликовано 22 января, 2007 Share Опубликовано 22 января, 2007 А Вы бейсик знаете? Самый обычный. Если да, то сможете. Если нет - начните с него. А дальше - книжки читайте побольше - там много всего объяняется. Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти