Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2002.04.01;
Скачать: [xml.tar.bz2];

Вниз

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

 
Василий   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.005 c
4-343
yus
2002-01-30 22:28
2002.04.01
Как отформатировать диск А: не выводя окна


4-354
Romul
2002-01-31 10:44
2002.04.01
Save OpenDialog через API


1-224
Алена
2002-03-20 10:05
2002.04.01
свойство типа TCollection


3-24
de
2002-03-06 14:52
2002.04.01
Как сделать выпадающий список в DBGridEh?


1-219
Fellomena
2002-03-20 10:49
2002.04.01
Threads... (inside)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский