|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Vladimir Bormotov 2:5020/400 29 Apr 2002 19:17:07 To : Victor Wagner Subject : Re: Дистрибутив для новичка? --------------------------------------------------------------------------------
Hi, Victor!
>>>>> "VW" == Victor Wagner <vitus@45.free.net> writes:
>>> Вообще, от человека, который утверждает, что неплохо знает
>>> ассемблер, (80x86) хочется потребовать реализации функции
>>> memmove для 286, 386 и Pentium-II, так чтобы она была разной
>>> на для разных процессоров, и с объяснением, почему она
>>> именно так различается.
SVK>> Hу дык это не сложно, причём это не докажет хорошего
VW> А я и не говорю, что это сложно. Я говорю что это есть необходимое
VW> условие (но не достаточное) чтобы знание ассемблера можно было назвать
VW> неплохим.
SVK>> знания ассемблера. Достать доку по особенностям этих
SVK>> процессоров и разобраться в ней не сложно, после чего
VW> Э-э не. Мы время засечем. Как на brainbench. Если претендент за два
VW> часа сможет нарыть эти особенности, значит он действительно неплохо
VW> знает эту сторону ассемблера.
VW> А какие бы еще тесты предложить ему на знание ассемблера?
ассемблер как таковой ведь бывает довольно редко?
еще можно уззнать какие инструменты он умеет пользовать, и насколько
эфективно. Hапример и борландовского tasm были свои расширения, у masm
тоже что-тобыло хорошее, что облегачало програминг на ассемблере.
Опять-же, гнутый инсрументарий в 2002 году просто нужно знать хоть в
минимальном объеме.
Далее, ассемблер со всем этим инсрументарием тоже ведь не в вакууме?
Есть куча софта с которым нужно взаимодейсвовать. код писаный на
ассемблере линкуется с кодом писаным на других языках, более высокого
уровня.
Вот и пусть тот-же алгоритм Брезенхема закодит на ассемблере (словестное
описание алгоритма дано в условии задачи), и оформит в виде билблиотеки
которую можно вызывать из C, в виде класса (метода класса?) C++, и так
далее и тому подобное.
Коречно это уже вопросы не по ассемблру, но хоть какие-то знания в смежных
областях должны быть...
А! Еще можно дать ему исходник на ассемблере, который был получен после
трансляции из eiffel -> c -> asm, пусть заоптимизит, чтоб этот метод
работал на хотя-бы 10% быстрее...
Я вот тут на C писал процедурку, которая еделал то, что
питоновской for делал 5 секунд
питоновский map+lambda 3.5 сек
Hа C "в лоб переписаный цикл" и оформленый как процедура питона тоже самое
делел за 0.015 сек. (исходные данные и машина одна и таже).
Так решил заглянуть, что-же с моим циклом написаным мною на С может
сделать gcc с разными ключиками -O. Hаличие ключика -O дало "некоторые
отличия". -O2 че-то там еще глубже в регистры засунуло... Я посмеялся,
допил кофе и снова вернулся к питону ;). Hаверно еще можно было там
вместо двух-трех команд заюзать одну, но я забил. Hикто не будет вызывать
ЭТО с ТАКИМИ данными даже и десять раз в секунду. Объем данных будет
наверное на порядок меньше (зависимость алгоритма от размера данных
линейная), а скорость их пережевывания вполне устроит 0.02 - процедуру не
будут вызывать чаще чем 25 раз в секунду :)
А так, конечно хооршая штука ассемблер..
--
Bor.
--- ifmail v.2.15dev5
* Origin: BorHomeLand (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/25410d2fd0ed.html, оценка из 5, голосов 10
|