Перейти к содержанию

Подскажите


Рекомендуемые сообщения

  • Ответов 61
  • Created
  • Последний ответ

Top Posters In This Topic

  • Vsoft

    22

  • ACIK

    9

  • radioelectron

    7

  • Autopsy

    6

Top Posters In This Topic

Popular Posts

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

Assembler Forever!

 

"Я провел эксперимент, написал программу (обычное окно с одной кнопкой в центре, которая закрывает его) на разных языках высокого уровня и после компиляции получил вот такие размеры этой самой программы:

C++ Builder 4 - 22 kb

Delphi 5 - 291 kb :whistle:

Delphi 5 + библиотека KOL - 26 kb

Ассемблер MASM - около 3 kb ;)

Так, что смотрите и делайте выводы, что лучше использовать."

Насчёт объектно ориентированного программирования, которое сейчас столь популярно, тут тоже не всё так радужно... если вовремя не понять меру, "проект рухнет сам под своей тяжестью". :hi:

 

Я за Ассемблер. Как ни крути, а наступают моменты когда я языками высокого уровня руки связаны. С Assembler такое невозможно в принципе! :) Я по душе идеалист, может быть поэтому я учу именно этот язык. Когда начинаешь немного понимать в этом прекрасном языке, то перед глазами открывается таинственная и величественная картина микропроцессорного "зазеркалья". Вот оно! Всё как на ладони. И ты хозяин всего этого!

С языками высокого уровня человек НИКОГДА не почувствует и не увидит этого. Всё скрыто пеленой непонятных и заранее непредвиденных преобразований компилятора. :P Что он там творит и с чем? А кто его знает... тут программист рулит косвенно.

 

Вот пример:

Ни один язык высокого уровня не может сделать того, что делает это чудо:

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 :D ), используя всего-то пару элементарных команд в нужной последовательности! Строка ВЫВОДИТСЯ на экран, хотя перед командой вывода на экран строки символов, ясно написано остановить выполнение и выйти... :D У отладчиков шок и глюк! ;)

 

"Первый вопрос, который задает себе человек, впервые услышавший об этом языке программирования, — а зачем он, собственно, нужен? Особенно теперь, когда все пишут на C/C++, Delphi или других языках высокого уровня? Ведь очень многое можно создать на С, но ни один язык, даже такой популярный, не может претендовать на то, чтобы на нем можно было написать действительно «все».

 

Итак, на ассемблере пишут:

 

все, что требует максимальной скорости выполнения: основные компоненты компьютерных игр, ядра операционных систем реального времени и просто критические участки программ;

все, что взаимодействует с внешними устройствами: драйверы, программы, работающие напрямую с портами, звуковыми и видеоплатами;

все, что использует полностью возможности процессора: ядра многозадачных операционных систем, DPMI-серверы и вообще любые программы, переводящие процессор в защищённый режим;

все, что полностью использует возможности операционной системы: вирусы и антивирусы, защиты от несанкционированного доступа, программы, обходящие эти защиты, и программы, защищающиеся от этих программ;

и многое другое.

 

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

 

Как же так? — спросите вы, прочитав последний пункт. — Ведь всем известно, что ассемблер — неудобный язык, и писать на нем долго и сложно! Давайте перечислим мотивы, которые обычно выдвигаются в доказательство того, что ассемблер не нужен.

 

Говорят, что ассемблер трудно выучить. Любой язык программирования трудно выучить. Легко выучить С или Delphi после Паскаля, потому что они похожи. А попробуйте освоить Lisp, Forth или Prolog, и окажется, что ассемблер в действительности даже проще, чем любой совершенно незнакомый язык программирования.

 

Говорят, что программы на ассемблере трудно понять. Разумеется, на ассемблере легко написать неудобочитаемую программу... точно так же, как и на любом другом языке! Если вы знаете язык и если автор программы не старался ее запутать, то понять программу будет не сложнее, чем если бы она была написана на Бейсике.

 

Говорят, что программы на ассемблере трудно отлаживать. Программы на ассемблере легко отлаживать — опять же при условии, что вы знаете язык. Более того, знание ассемблера часто помогает отлаживать программы на других языках, потому что оно дает представление о том, как на самом деле функционирует компьютер и что происходит при выполнении команд языка высокого уровня.

 

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

 

Говорят, что писать на ассемблере сложно. В этом есть доля правды. Очень часто авторы программ на ассемблере «изобретают велосипеды», программируя заново элементарные процедуры типа форматированного вывода на экран или генератора случайных чисел, в то время как программисты на С просто вызывают стандартные функции. Библиотеки таких функций существуют и для ассемблера, но они не стандартизованы и не распространяются вместе с компиляторами.

 

Говорят, что программы на ассемблере не переносятся. Действительно, в этом заключается самая сильная и самая слабая сторона ассемблера. С одной стороны, благодаря этой особенности программы на ассемблере используют возможности компьютера с наибольшей полнотой с другой стороны, эти же программы не будут работать на другом компьютере. Стоит заметить, что и другие языки часто не гарантируют переносимости — та же программа на С, написанная, например, под Windows 95, не скомпилируется ни на Macintosh, ни на SGI."

 

PS: Всем у кого есть вопросы по программированию и компам сюда: http://rusfaq.ru/

PSS: Внимание! Всё что взято в ковычки есть цитата!

Изменено пользователем Autopsy
Ссылка на сообщение
Поделиться на другие сайты
Создал прогу на VB - на форме кнопка, по которой форма закрывается.

Получилось 5 Кб :whistle: 1.rar

:hi:

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

Ссылка на сообщение
Поделиться на другие сайты

Большое спасибо за та что памогаете мне определится с языком ! Я купил всеже паскаль и начал с него затем думою делфи или С++ так как для меня С-это наилучший язык в моём понимании , настёт асамблера я думал очень долго ломал голову просто сходил сума поймите меня правильно мне всего 15 лет для меня даже паскаль представляет сложность ну точно с языком я ещё не опредилился посмотрю Visual Basic ну и сделаю вывод. Спасибо за советы друзья!

Ссылка на сообщение
Поделиться на другие сайты

Я буквально вчера сравнил две одинаковые проги одна с++ другая на ассамблере , улёт полный на с++ прога 50кб , а на асамблере 4кб ,в моих глазах асамблер поднялся ещё на одну ступень выше!

Ссылка на сообщение
Поделиться на другие сайты

Да я не думал что на с++ , считал что асамблер.

Есть ли антивирусы написанные на асамблере.

Изменено пользователем Vsoft
Ссылка на сообщение
Поделиться на другие сайты

Vsoft, извини, не заметил вопрос проавтора...

Я не помню цже автора, но как я выбираю книги по программированию: иду в магазин и начинаю их перечитывать - если мне понятно, что написано и как - тогда всё хорошо, если нет - то беру другую... Только сначала надо перебрать все книги, которые есть...

Ссылка на сообщение
Поделиться на другие сайты

СЫР ты совершенно прав ! Но видишь ли я живу в ростове недавно и книги дастаю с большим трудом а всё потому что я плохо знаю город.

Изменено пользователем Vsoft
Ссылка на сообщение
Поделиться на другие сайты
Да я не думал что на с++ , считал что асамблер.

Есть ли антивирусы написанные на асамблере.

Написать большую программу на ассемблере, это куруто, по сложности = выстроить 100-этажный дом из красного кирпича и вручную :). Перед таким разработчиком останется только "снять шляпу"...

Ссылка на сообщение
Поделиться на другие сайты

Ну... тут никто не спорит. Никто скальпелем землю не пашет... ему есть не менее достойное применение.

Тут, кстати, при рассмотрении этой проблемы можно заметить вот что: что делать если программа медленно работает, что делать если у програмиста не хватило мозгов написать быстродействующий и относительно небольшой код? Ответ нормального человека: дык написать программу по-человечески, вкласть в неё душу, идеи, изобретения, смекалку и нестандартные шаги! Ответ 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, я хотел тебе поднят рейтинг, кот. сам забрал, а получилось наоборот, господа модераторы, верните на место! :)

Изменено пользователем Autopsy
  • Согласен 1
Ссылка на сообщение
Поделиться на другие сайты

А Вы бейсик знаете? Самый обычный. Если да, то сможете. Если нет - начните с него. А дальше - книжки читайте побольше - там много всего объяняется.

Ссылка на сообщение
Поделиться на другие сайты

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти

×
×
  • Создать...