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

Вниз

Хороший водитель может и не знать о том как устроен движек, но классным гонщиком при таком подходе он ни когла не станет!!!   Найти похожие ветки 

 
Василий ©   (2002-02-16 00:24) [0]

Поэтому призываю всех кто не знает Assembler (в том числе и себя) заняться его изучением.

Для начала может кто подскажет где можно слить MASM или TASM ?
И какой удобней использовать ?


 
Tosov ©   (2002-02-16 00:47) [1]

Я не специалист по гонкам, но гонщики сами движок ремонтируют??


 
iZEN   (2002-02-16 10:16) [2]

Интересно, гнщик Формулы-I тоже должен разбираться в двигателе своей машины? Может ему лучше заняться повышением мастерства вождения болида Формулы-I?
А если я не пишу на ассемблере принципиально?
Даже не всегда мне хочется разбираться в байт-кодах Java, хотя что в них интересного -- риторический вопрос.


 
Nemesis ©   (2002-02-16 10:27) [3]

Категорически несогласеню. Ведь есть же (были) музыканты незнающие или неумеющие читать по нотам


 
VuDZ ©   (2002-02-16 11:50) [4]

скачай себе processor pack от MS - там есть ml.exe - новый MASM, который поддерживает SSE, 3DNow и пр.


 
Desdechado ©   (2002-02-16 18:10) [5]

всегда были гении и твердые середнячки, делающие основную массу работы. каждому свое ...


 
VuDZ ©   (2002-02-17 14:08) [6]

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

что быстрее:


mov al, BYTE PTR [esp+4]
test al, al
jne $B1$3
mov eax, 1
ret
$B1$3:
mov eax, -1
ret



push ebp
mov ebp, esp
mov eax, DWORD PTR _c$[ebp]
and eax, 255
neg eax
sbb eax, eax
and al, -2
add eax, 1
pop ebp
ret 0


вот и вся оптимизация. а если такой код выполняется очень много раз в секунду?

PS этот код проверяет на равенство 0 одну переменную и возвращает 1 или -1


 
Василий ©   (2002-02-18 06:30) [7]

Я не призыаю писать на Assembler"е, а призываю хотя-бы его знать.

Когда рулиш на высоком уровне и знаеш что при этом происходит под "капотом" как-то машина лучьше слушается...


 
Алексей Петров ©   (2002-02-19 10:09) [8]

> VuDZ © (17.02.02 14:08)
> что быстрее:

Вопрос далеко не однозначен.
1) Где вы взяли второй код? Компилятор Delphi у меня сделал сравнение таким:

test al, al
jnz @m
mov eax,1
ret
@m:
or eax, -1
ret

Это ничуть не медленнее Вашего первого варианта, но на 3 байта короче него :)

Этот код, правда, получен при регистровом соглашении о вызовах процедуры - но кому в голову придет при вызове "очень много раз в секунду" использовать cdecl?

2) Учитывая архитектурные особенности CPU начиная с i486 и выше,
код
mov al, BYTE PTR [esp+4]
test al, al

будет выполняться практически с такой же скоростью, что
push ebp
mov ebp, esp
mov eax, DWORD PTR [ebp]

Это связано с тем, что использования регистра esp, да еще и со смещением - очень длительная операция (2-3 такта, в зависимости от предшествующих команд. В данносм случаи будет 3, если только выполнен вызов функции).
Комманды же push ebp; mov ebp, esp в паре выполнятся за 1 такт, а последующий mov - за 1 или 2 - как конвеер сработает.

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

Ассемблер я использую в том случаи, когда мне не удается четко изложить свою мысль на ЯВУ так, чтоб компилятор сгенерировал оптимальный код. За все время win32 программирования я применял asm только 2 раза. И то 1 раз для выпендрежа.



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

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

Наверх




Память: 0.49 MB
Время: 0.012 c
1-119
Aleksandr
2002-03-21 14:49
2002.04.01
Как защитить переменные в потоке?


3-28
volodya_
2002-03-06 18:01
2002.04.01
QReport


1-93
Ahd
2002-03-19 11:31
2002.04.01
Диметрия


1-109
YanKY
2002-03-13 09:22
2002.04.01
Интперпритатор языка Паскаль


1-117
Helpwuin
2002-03-21 16:30
2002.04.01
Шифрование