Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.30;
Скачать: CL | DM;

Вниз

asm в Delphi   Найти похожие ветки 

 
ElectriC ©   (2007-09-01 13:29) [0]

Посоветуйте хорошую книгу использование asm в дельфи для чайников.


 
Anatoly Podgoretsky ©   (2007-09-01 13:35) [1]

> ElectriC  (01.09.2007 13:29:00)  [0]

www.intel.com


 
Sergey Masloff   (2007-09-01 13:37) [2]

Денис Христенсен, BASM Уроки для начинающих
перевод © Anatoly Podgoretsky, 2003 ;-)
файл BasmForBeginners-ru.doc ищется в любом поисковике за 2 минуты


 
Sergey Masloff   (2007-09-01 13:39) [3]

Кстати на intel.com устанешь искать документацию по процессорам. Я наверное часа полтора искал хотя точно знал что ищу. Ни фига не эргономичный дизайн...


 
Anatoly Podgoretsky ©   (2007-09-01 13:53) [4]

> Sergey Masloff  (01.09.2007 13:37:02)  [2]

Это не много не то.


 
Anatoly Podgoretsky ©   (2007-09-01 13:54) [5]

> Sergey Masloff  (01.09.2007 13:39:03)  [3]

Трудновато, я сам обматюгался, но это именно то что требуется для работы.
У меня на сайте есть (в ftp части), то это явно устарело.


 
ElectriC ©   (2007-09-01 14:24) [6]

Спасибо за книженцию. Думаю то что надо.


 
homm ©   (2007-09-01 17:29) [7]

> Посоветуйте хорошую книгу использование asm в дельфи для
> чайников

Я бы посоветовл чайником не испльзовать asm в дельфи.


 
homm ©   (2007-09-01 17:32) [8]

> Я бы посоветовaл чайникaм не использовать asm в дельфи.


 
Denis_ ©   (2007-09-01 17:43) [9]


> чайником не испльзовать asm

Да, я согласен с Вами.


 
atruhin ©   (2007-09-01 17:47) [10]

> Я бы посоветовл чайником не испльзовать asm в дельфи.

Самый разумный совет. Лично тестировал процедуры в библиотеках, написанные на асм
которые работали медленнее чем на Delphi.


 
sdubaruhnul   (2007-09-02 00:01) [11]

Я бы посоветовал не использвать asm.


 
ElectriC ©   (2007-09-02 00:10) [12]


> homm ©

Я про asm, а не Delphi


 
Германн ©   (2007-09-02 01:30) [13]


> homm ©   (01.09.07 17:32) [8]
>
> > Я бы посоветовaл чайникaм не использовать asm в дельфи.
>
>

Не согласен. Имхо.


 
J_f_S   (2007-09-02 02:42) [14]

Я бы посоветовал вообще не использовать такие вставки в высокоуровневых языках. Если хочется поизучать ассемблер - скачайте лучше отдельный FASM. Клевый, современный, быстрый ассемблер с отличными примерами.

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


 
Германн ©   (2007-09-02 02:49) [15]


> J_f_S   (02.09.07 02:42) [14]
>
> Я бы посоветовал вообще не использовать такие вставки в
> высокоуровневых языках. Если хочется поизучать ассемблер
> - скачайте лучше отдельный FASM. Клевый, современный, быстрый
> ассемблер с отличными примерами.
>
> А мешать асм код в современные ООП языки вообще вредно.
> Не будет выигрыша ни в читаемости кода, ни в скорости выполнения
> (исключения чрезвычайно редки, пишутся профессионалами в
> редких случаях, и то код не всегда получается быстрее кода
> компилятора).
>

Ещё раз не согласен.


 
homm ©   (2007-09-02 07:43) [16]

> [13] Германн ©   (02.09.07 01:30)
> Не согласен. Имхо.

С чем? код, написаный чайником на асемблере в большенстве случаев работает хуже, чем оригинальный на дельфи. Сам был чайником в асм (да и сейчас не особо крут).


> [12] ElectriC ©   (02.09.07 00:10)
> Я про asm, а не Delphi
Чего?


 
Инс ©   (2007-09-02 10:12) [17]

Многие ошибочно полагают, будто бы с помощью асм в Delphi можно обойти многие ограничения, накладываемые операционной системой. Им кажется, будто бы, если они будут в совершенстве владеть асм, им даже WinAPI не понадобится, они сами смогут напрямую обращаться к аппарутуре, физической памяти и пр. Уважаемый автор, у вас не этот случай? ;)


 
JaK[Light] ©   (2007-09-02 11:12) [18]


> код, написаный чайником на асемблере в большенстве случаев
> работает хуже, чем оригинальный на дельфи

Но ведь никто не запрещает сперва посмотреть сгенерированный код в CPU? :)


 
Anatoly Podgoretsky ©   (2007-09-02 11:13) [19]


> Я про asm, а не Delphi

А это что?

> использование asm в дельфи

Учитывая, многообразие процессоров и различия в оптимизации по них, очень трудно достигнуть нужной.
Если для СИ у Интела есть компиляторы, которые оптимизируют под процессор, то с АСМ не так, если не считать оптимизатор на уровне машинных команд.
Без этого конструция А может работать медленнее конструкции Б, хотя во второй команд и соответственно голых тактов будет больше, чем в первой.


 
Anatoly Podgoretsky ©   (2007-09-02 11:15) [20]

На моем сайте есть и другая статья - по оптимизации, там немного затронуты эти факторы. Даже бывает, что изменение местами двух команд или добавление пустых команд NOP может привести к резкому ускорению куска программы, не говоря уж об выравнивание.


 
Anatoly Podgoretsky ©   (2007-09-02 11:25) [21]

> JaK[Light]  (02.09.2007 11:12:18)  [18]

Посмотрел, а дальше что?


 
Инс ©   (2007-09-02 11:29) [22]


> Посмотрел, а дальше что?

Зачастую компилятор генерирует очень некачественный код. Гоняет значения из памяти в регистры и обратно. Очень частно можно достаточно сильно ускорить код, просто убрав всю эту мешанину, сведением к минимуму обращения к памяти. Однажды мне пришлось так поступить - выигрыш был процентов 200-300.


 
Инс ©   (2007-09-02 11:31) [23]


> [20] Anatoly Podgoretsky ©   (02.09.07 11:15)

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


 
Anatoly Podgoretsky ©   (2007-09-02 11:43) [24]

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


 
homm ©   (2007-09-02 11:48) [25]

> необходимо осуществить высокоуровневую оптимизацию (пересмотреть
> алгоритм),

Для этого обязательно переписывать на asm?


 
Anatoly Podgoretsky ©   (2007-09-02 11:58) [26]

> homm  (02.09.2007 11:48:25)  [25]

Как раз это не требуется, переписывать на асм нужно в очень редких случаях, особо критичные куски, при условии, что человек владеет методикой оптимизации, в соответствии с мануалами Интела на конкретную модель процессора и общими принципами оптимизации без учета процессора, максимум класса процессоров.
Методы которые работали на 8086/80286/80386 стали мало применимы к более старшим моделям, точнее они стали приводить к обратному эффекту.


 
JaK[Light] ©   (2007-09-02 12:01) [27]


> Посмотрел, а дальше что?

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


> Anatoly Podgoretsky ©   (02.09.07 11:43) [24]

К ассемблеру стоит переходить, если уверен, что алгоритм идеальный, но нужное быстродействие еще не достигнуто. Остальное - от лукавого.
Почему-то такого автоматического комментария после asm не предусмотрено :)


 
Инс ©   (2007-09-02 14:24) [28]


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

Это верно.



Страницы: 1 вся ветка

Текущий архив: 2007.09.30;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.026 c
6-1170415405
inex
2007-02-02 14:23
2007.09.30
переслать результат выполнения в коммандной строке


2-1188787345
Виталий_____
2007-09-03 06:42
2007.09.30
RichEdit


15-1188494431
Bad_B
2007-08-30 21:20
2007.09.30
Жаворонки и совы(эксперимент)


2-1188802124
Alex8
2007-09-03 10:48
2007.09.30
TDBGrid


15-1188799204
yura123
2007-09-03 10:00
2007.09.30
коннекшн между домом