![]() |
Вопрос про ассемблер
Кто нить пишет на ассемблере?
А то есть проблемка - я пишу прогу. Она использует меод гаусса, но он работает в десятки раз медленнее, чем например в матлабе. Требуется переписать метод гаусса на ассемблере. Сейчас вот трахаюсь с ним. Может у кого нить есть готовая реализация? |
Цитата:
По понтам, выложенным на форуме, предполагается, что с оным Либов мог быть знаком. Однако учитывая, что это понты, может тебе фрилансера найти? |
Цитата:
|
Цитата:
а чего не на Си то ? |
Цитата:
Тут еще не каждый возмется. Я надеялся что есть уже готовая реализация |
Цитата:
|
да компиляторы современные не хуже код делают чем ассемблер
может у тебя в коде где то косяки лишние вычисления зацикливаются кинь в личку если не жалко, я хоть не насильник, но гляну |
интерполяцию делаешь для чего то ?
|
щас кину
но я просто кучу библиотек уже протестил так штааа фик его знает |
Не, не интреполяцию, там решается система линейных уравнений, которые получаются в результате сборки глобальной матрицы метода конечных элементов
|
Цитата:
|
Цитата:
|
Цитата:
только сравнивай не целиком код, а имеенно функцию. |
можно сделать гораздо проше
написать одну и туже функцию на асме и на С и сравнить быстродействие |
Цитата:
Т.е. все МК от обращения до возврата результата:-) |
Цитата:
вообще надо сравнивать быстродействие |
Цитата:
|
Цитата:
имеешь виду рекурсию что ли ? или вложенные ? |
Просто функция это часть выражения в языках высокого уровня а подпрограмма это программа обмениваяющаяся с вызывающей её программой данными. Вот где-то так
|
Я пишу..
..................... советую посетить сайт http://wasm.ru ////////////////////////////////// на этом сайте найдете все в том числе и различные интерполяции и графичские решения.. мой любимый ассемблер fasm ///////////////// есть инструкция у меня на чейме.... ................... этот инструмент удобнее тем что сам компилятор поставляется в исходных кодах, что дает возможность создать любой генератор кода под любую ось или любой кросс-ассемблер... ................... он дает наиболее простой код.. и еще им можно подправлять готовый код без перекомпиляции проги, а также готовить любые двоичные дланные под любой формат.. короче если кого интересует могу дать и другие рекомендации. |
Вот ссылка на чейм
http://modul.da-da.biz/tmp/fasm.chm ////////////////////// это нелп к компилятору сам компилятор качайте с сайта Wasm.ru http://wasm.ru/baixado.php?mode=tool&id=71 илии на самом сайте исходника.. http://flatassembler.net/index.php |
Цитата:
на сях ты не сможешь написать очень короткую прогу под винду - работающую Я знаю что рекорд на асме на сегодня это 13 байт - настоящий работающий под винду EXE..... в PE-формате. ................. есть и другие преемущества но для этого надо писать а не болтать.. |
Цитата:
я делаю ассемблерную вставку в код на С Так удобнее ТЫ не пробовал под SSE2 оптимизировать код? НА некоторых задачах по слухам в несколько раз скорость увеличивается |
Спасибо всем за советы
Я попробую написать сам, а спрашивал я потому что нужна была готовая реализация. Если напишу выложу код на с++ и асме и сравню быстродействие |
Цитата:
но только пробовал, для интереса применять не приходилось там на WASM- очень много интересных статей. Поищи....в том числе и SSE2 оптимизация.. Советую обратить внимание на новые команды пентиума 3-4.. Там есть команды (кстати они сяшными компиляторами не распознаются, не все правда) - которые позволяют одновременно умножать/делить сразу 4 плавающих двойной точности... Карочи многии компиляторы, а вообще практически все - новые команды процессоров неиспользуют.. ти я там встречал статью уже не помню где где конкретно касалось имено твоей задачи.. Есть еще форум поищи там... но на нем в основном там много воды... надо сидеть и фильтровать... Цитата:
да еще есть возможность написать в микрокоде но это вообще запредельная область.. ....................... не могу сейчас навскидку вспомнить сайт где встречаются оптимизаторы, которые ушли с васма.. там же был реальный раскол.... |
Цитата:
дефицит пространства на ЖД сейчас не наблюдается |
Цитата:
люди лезут на Джамалунгму или с Эйфеля на парашюте? за тем же сынок... за экстазом но тибе похоже это не дано... ты я так понял готов всю жизнь радоваться комиксам.. ну так радуйся. |
Цитата:
написать Hello world в 5 байтах Джомолунгма насмешил :mrgreen: |
SoapMaker, шол бы ты лесом ламерок...
ты хоть в курсе сколько весит PE-заголовок... |
Цитата:
только лет 7 этим не заморчачивался уже а зачем ? |
Цитата:
ти иди вон там гусля новую серию из тырнета пабликует.. подписи не кому ставить. чего тибе со стариками тереть терки... не интересно ведь. |
gidomasson, кстати есть и другой путь решения твоей задачи..
Это написание ее на си, а потом ручная оптимизация асемблеровских кодов...с последующей укладкой в длл.... |
Трындец... я так и не понял, чем уже перестал устраивать стары-добрый Си или С++?
Асм -это .. это экстремизмом попахивает. Не верю, что из-за того, что не хватате быстрдействия, нужно вставлять критические участки кода на асме. Я подзабыл асм ХХХ86, но в принципе, судя по заявкам, там небольшой фрагмент кода надо написать, поэтому, думаю, ты смог бы и сам разобраться. тебе же не что-то супер-пупер на 10000 строк кода лепить? Все равно нихера не понимаю.. почему не хватает Сяхи? (Может сразу в двоичных кодах забабахать, ассемблируя руками?:) |
Цитата:
|
решении систем линейных уравнений
|
Цитата:
ПС. Возможно в Матлабе просто метод Гаусса Якоби используется. Реальные обратные матрицы вещь трудоёмкая, а главное даёт такую же степень приближения, что и лобовой удар с дабл флоат. |
Цитата:
|
Цитата:
|
Цитата:
Для задач, подобных той, что упоминалась (из лин. алгебры), утверждать, что программист может улучшить компилятор, это примерно, как утверждать, что Союз ТМ пристыковывать к МКС удобней вручную по показаниям GPS. |
Цитата:
|
Цитата:
Напомню А-Какию ещё раз, что речь идет не о большой задаче, а о критическом фрагменте. Большие, обьемные задачи на асме никто не делает. Кроме А-Какия, конечно же, который делает все. И все сьедает сам. Чтобы была доступна мысль, это как бы джиу-джитсу был языком программирования.. Есть обкатанные приемы, которые должны усвоить рядовые последователи этого вида программирования. И есть мастера экстра-класса, которые могуть придумать новые приемы джиу-джитсу к уже наработанным. Хенде хох, А-Какий? |
Цитата:
asm { dec bx jnz d1 mov dx,PRN_inp in al,dx rcl al,1 rcl ah,1 mov dx,PRN_dat mov al,0 out dx,al mov bx,wdel } которую трудно понимает и человек, если он пишет на Си, и машина, которая по-сути понмает лишь двоичные коды, в которые все-равно надо компилировать? Чепуха, имхо. Вообще, если речь о скорострельности, то своременные компиляторы дают оптимизованный откомпилированный код, не намного уступающий по скорости от ассма. Ассемлер нужен, когда нужно примитивно драйвернуть что-то быстро, обратиться к железу машины напрямую, вые... ться как-то, минуя ограничения. А во всех других случаях интеловский компилятор С++, заточеный под свои же процы, работает почти так же, как асм. Хня, имхо все это... страдания по ассемблеру. |
Цитата:
Там траблы со скростью работы программы |
Цитата:
Ассемблер ведь сейчас используют в основном, чтобы изипнуцця, минуя всяческие запреты (типа похлопать дверцей дисковода в знак уважения). Критические участки кода можно вставить на ассме через asm{ код }. Если ты скажешь, что разница в скорости работы в 2..5% тебя как раз выручит, тада мне добавить нечего |
Цитата:
|
Цитата:
|
Цитата:
Поэтому в последний раз отвечу сему субьектосу: программеры на ассме всего лишь отлично знают архитектуру машины, дурик и видят процессор, сопроцессор, память и подсистемы вводы-вывода. В этом у них нет ограничений, накладываемых семантикой и синтаксисом языка высокого уровня. Я кодирую на ассме чаще, чем ты читаешь газеты, дурачок равнинный. Поэтому просто не лезь в темные для себя дела. |
Цитата:
|
Цитата:
Уже проверено, некоторые критические по скорости алгоритмы, типа вышеописанного, можно оптимизировать использую SSE2-SSE3 Использование классов с++, наприер может сильно сказаться на скорости |
gidomasson, не стоит серьезно воспринимать Зюзины слова, потому, как врет:-). Мышление программиста пишущего на Ассемблере принципиально отличается от мышления программиста использующего языки высокого уровня именно потому, что А. понимает, как работает "железо"! Поэтому все алгоритмы претерпевают значительные изменения при творческой реализации! Что безусловно сказывается, как на длине машинного кода так и скорости реализации. Как и любой творческий процесс процесс программирования на Ассемблере искусство и в силу этого не поддается полноценной автоматизации. Код созданный любым самым совершенным компилятором существенно уступает по качеству коду написанному человеком-профессионалом!
|
Еще раз повтояю для особо одаренных упых...
Даже современные компиляторы не используют новые коды процессора начиная м пентиума... А их очень много, и очень эффекивных. Ибо компиляторы предполагают, что прога должна исполняться в пространстве начиная от модели .386. .......... 2изя уверен что ты даже близко не догадываешщься как написать простую прогу на асме под винду я уже промолчу по поводу линуха а тем более про фре. ибо на асме под эти оси пишут только гуру коим ты не являешься в принципе.. это типа как есть такие люди - как гурманы... ты же привык питаться дешевыми коклетами из крысятины в столовке типа сафкового гадюшника я вот не против пиши под си. но даже и в этом случае ты не можешь мне точно рассказать из каких частей состоит прога написаная под си , а тем более не в состоянии ее оптимизировать... |
Цитата:
Просто Вы, как впрочем и Санечка, отстали от жизни. Компилятор делает то, о чём его просят. Если нужен 86 процессор, то при желании в VC++ и такую фрик прогу сгенерят. Но вообще-то уже 128 бит для арифметики норма (в кеше). Как Вы полагаете, для чего народ усеивает буквами сотни журналов с импект фактором, распознавая рукописный текст, трекуя отдельных индивидов и объектов в камерах слежения? Наверное не для того, чтобы умный оператор сделал это быстрее и лучше компа. Так и с компиляторами. Со времён 80х они умеют такое, что обычному писателю программ и не приснится. Никто ведь не верил, в 80х, что комп уделает Каспарова, как мальчика, так и Вы, вспоминая убогие программы 80-90с ай ам сорри бадди, не верите, что в префе у Вас уже нет никаких шансов обыграть железку. ПС для особо одарённых: Компилятор 2000х - это вовсе не та древняя программа, которая переводила убогие тексты сишных программ недоученных студентов в ассемблер по простой схеме, что вижу то и пишу. Отнюдь. Новые компиляторы распознают нехитрые алгоритмы пользователя (а уж линейную то алгебру как два пальца, для этого ФайнРидер не треба), а затем генерят свой уникальнгый, оптимальный по критерию скорости код. |
Цитата:
ибо пишу проги для удовольствия своего и писать мне на сях просто неинтересно а вот разбираться в хитросплетениях разных защитных механизмах и прочих червеобразных програрах, особливо тех что используют микрокоды проца и кэш - доставлят удовольствие ака полета в безвоздушном постранстве над миром, ощущая - что ты этим Миром управляешь.. ....................... я создаю то на чем другие делают денюшку я же лишь для собственого наслаждения |
все ваше желание иметь прогу в несколько сотен мегов всего лишь дань дурости и неспособности понятьб что на самом деле выполняет проц..
если рассмотреть прогу даже под из си то удивляешься бешеному количеству ненужных регистровых передач, и ограниченому использованию внуренних инструкций максимум из всего набора команд компиляторы используют всего процев 10 не более... .................. тогда задается простой как жисть вопрос - если в жисти используется столько мало нахуя - платить больше за столь сложный по архитектуре проц...??? если есть дося.... |
и последнее
чтоб окончтельно достать вас всех до печенок хочу задать простой вопрос на смекалку - кого по-жизни вам представляется чел с маленьким туловищем, ручками и ножками но с огромадной головой.. вот имено - уродом..... так и проги - огромадные по размеру но выполняющие маленькие задачи уродливы по принципу и своему содержанию :) так же как и их созидатели - ленивцы и не-эстеты а по большому счету не проффи... а так по-гулять вышли.. |
кароче - ресюме
....................... в наше время прогеры делились на системщиков и прикладистов те кто пишут на сях с амбициях типа все ваши языки ассемблера мутяшка - по моему просто обычные прикладушкинцы.. таким дрова писать не дают а вот бухгалтерии типа 1с - это для них... тагды о чем спорим мы из разных лагерей и типа где сытый - голодного не поймет.. никогда... |
Цитата:
А ведь раньше говорили что такого быть не можжет по определению. А ларчик открывается очень просто. Если пользователь наваял самопальный алгоритм, то он ни в одной системе работать правильно не будет. Ибо время самоучек прошло. Локальное среднее уже никто не вычисляет в лоб, есть стандартные быстрые алгоритмы. И компилятор режет всякие идиотские происки самопальщиков, типа ненужных циклов, двойных и тройных вычислений одной и той же по сути переменной. Это иногда трудно увидеть в своей проге, но машина перемолотит все Ваши варианты - если они не изменяют конечного результата. Есть же законы сохранения энергии. В теории графов можно использовать различные схемы, при этом быть уверенным, что результат - цифирь будет идентичной. Пользователь даже не заметит подмены кода. И будет в полной уверенности, что сам придумал быстрый алгоритм.:lol: |
Цитата:
Цитата:
или не понимаешь - что есть язык ассемблера? объясни мне тупому как это матлаб ускоряет вот такую ассемблерную инструкцию: xor eax,eax .................. и ваще - что такое матлаб? Цитата:
какие нахуй вычисления в дровах? особливо про циклы - двойные или тройные ты что на току? Цитата:
циклы гамельтона? проясни нас дебилов вьюноша. Цитата:
это нам не понять... чото новенькое энергия и компиляция в сторону - раньше с ветки макаки слазали теперь с трубы... а один хуй - бандерлогами остались ти эй мылок мне надоело тибя видить в разных ипостасях самому то не надоело клониться ты обратись к психиатору шизо на ранних стадиях лечится.. |
Цитата:
|
Как я посмотрю все такие охуенные спецы (на словах).
А кому нибудь слабо процессор наваять самому. Ну хоть на альтере ? |
Цитата:
|
erik, Вопрос по диллетански не корректен:neutral:
Вы хотите создать новый процессор? Необходимо ТЗ:lol: |
Цитата:
Предположим у вас есть DSP система, можно от Техаса проц налепить, а можно все на одной ПЛИСке сделать. В том числе и прос поставить. Можно Nios-II а можно самому придумать. Под обозначенные цели. |
Цитата:
Что вы считать то собрались? Может и на калькуляторе можно пока прикинуть:confused: Я как-то присутствовал на отечественной конференции. Предлог бесплатно сгонять на Родину. Там ребята что-то докладывали про самопальные процессоры, причём паралельного счёту. Уровень осведомлённости в алгоритмах тех самых задач у них был на столько слаб,что быстрый алгоритм на обычной пеньтюхе превзошёл бы все их старания на раз. :mrgreen: |
Цитата:
|
самое смешное н аплисах не делают микропроцессоры,
цифровые схемы! с жесткой логикой, комбинационные схемы,и схемы с последовательностной логикой |
схемы с последовательностной логикой,
думаю возникнет у Ак желани поправить,меня ,вотhttp://www.bookshelfs.ru/books/logik...goritmi._.html, прочитайте хотя бы аннотоацию, д аиполезно вгугле набратьсхемы с последовательностной логикой, |
| Часовой пояс GMT +3, время: 12:41. |
Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot