The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

02.04.2013 11:02  Анализ использования ассемблерных вставок в коде открытых проектов

Стив Макинтаир (Steve McIntyre), несколько лет занимавший пост лидера проекта Debian, опубликовал результаты исследования интенсивности использования ассемблерного кода в открытых проектах. Исследование проведено инженерной группой консорциума Linaro, занимающегося адаптацией и оптимизацией открытых проектов и Linux для платформы ARM, совместно с разработчиками дистрибутивов Ubuntu и Fedora.

Исследование нацелено на выявление областей, требующих доработки в процессе внедрения новой 64-разрядной архитектуры ARMv8 (AArch64) и серверных систем на базе архитектуры ARMv7. Наличие специфичных для различных архитектур ассемблерных вставок является одним из признаков необходимости портирования кода для использования на новой архитектуре или проведения дополнительных оптимизаций. В итоге, после изучения кода всех пакетов в репозиториях Ubuntu и Fedora, был сформирован список из 1435 пакетов, включающих ассемблерные вставки и проведён анализ где и для чего они используются и действительно ли подобные вставки необходимы.

Основные выводы:

  • Подавляющее большинство приложений в репозиториях не требуют отдельного портирования. Например, из более 20 тысяч src-пакетов в репозитории Ubuntu 13.04 только около 1200 (6%) содержат ассемблерные вставки.
  • Большинство пакетов с ассемблерными вставками будут работать на других архитектурах без дополнительного портирования так как ассемблерный код используется только для оптимизации и предусматривает наличие замены на C/C++ или связан с реализацией дополнительных возможностей, что не блокирует сборку приложения на новых архитектурах.
  • Большая часть ассемблерных вставок малозначительна и не создаёт должного увеличения производительности. Часто разработчики пытаются использовать тривиальный код с надеждой увеличить скорость выполнения тех или иных действий, но при этом общий эффект подавляется другими узкими местами.
  • Наименее приоритетными категориями портирования называются игры и десктоп-приложения. В первую очередь планируется портировать системные компоненты, библиотеки и базовые инструменты. Среди пакетов, требующих портирования, отмечаются: ядро, gcc, (e)glibc, klibc, libffi, binutils, gdb, device-tree-compiler, libunwind, openjdk, mpfr, llvm, gmp. Будут работать, но требуют реализации дополнительных оптимизаций grub2, TBB, openssl, libatomic-ops, libgcrypt, php, postgres, mysql, libaio. Кроме того, в первоочерёдный список портирования попали zlib, libgc, libjpeg, dlmalloc, nss и gnulib.
  • В списке основных проблем упоминается необдуманное копирование оптимизаций из одного приложения в другое, во многих пакетах они применены не к месту и не приводят к ожидаемому разработчиками эффекту. Часто подобным образом расползается по проектам код, содержащий ошибки. Другой проблемой является встраивание библиотек в программу, вместо их использования в качестве зависимости. Некоторые ассемблерные вставки нельзя трактовать иначе, как код, забытый десятилетия назад. Например, был обнаружен код для систем VAX, образца 1970-х годов. Также во многих местах ассемблерный код присутствует в коде, но не используется.

Выявленные ассемблерные компоненты были разделены на следующие категории (проценты указаны относительно числа пакетов с ассемблерными вставками):

  • 38.1% пакетов используют ассемблерный код для выполнения различных низкоуровневых операций, таких как прямое взаимодействие с оборудованием и определение типа аппаратного обеспечения. Многие программы используют инструкции CPUID для идентификации CPU, при этом данные чаще всего используются лишь для статистики/диагностики и напрямую не связаны с работой приложения. Популярно также использование инструкций RDTSC для взаимодействия с таймером в программах для тестирования производительности.
  • 30.4% пакетов используют ассемблерные вставки для оптимизации производительности, например, для ускорения мультимедийных операций применяются инструкции SIMD (MMX/SSE/SSE2). Многие из ассемблерных оптимизаций типовые и скопированы из других пакетов не разбираясь особо как именно работает код.
  • 18.1% пакетов связны со встраиванием в состав кода различных типовых библиотек, содержащих ассемблерные вставки, например, чаще всего встраиваются libjpeg, gettext, gnulib, libgc, sqlite и zlib.
  • 11.1% пакетов попали в список по ошибке, например, файлы с расширением ".s" были приняты за код на ассемблере или программы содержат ассемблерный код в форме данных, в комментариях или в документации.
  • В 10% пакетов ассемблерный код используется для реализации различных атомарных примитивов, таких как блокировки и операции инкремента/декремента.
  • 9.3% пакетов включают ассемблерный код, необходимый для обеспечения работы на других операционных системах или сторонних платформах, т.е. в Linux такой код не используется.
  • В 2.9% пакетов ассемблерные вставки используются для прямого управления содержимым служебных областей исполняемых файлов или библиотек.


  1. Главная ссылка к новости (http://blog.einval.com/2013/03...)
Лицензия: CC-BY
Тип: Обобщение
Ключевые слова: assembler, code
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Показать все | RSS
 
  • 1.1, x0r, 13:28, 02/04/2013 [ответить] [смотреть все]    [к модератору]
  • +4 +/
    интересный обзор
     
  • 1.2, Аноним, 13:28, 02/04/2013 [ответить] [смотреть все]     [к модератору]
  • –4 +/
    Ни фига себе Я бы предположил, что от 12 до 120 0,06--0,6 ... весь текст скрыт [показать]
     
     
  • 2.25, цирроз, 16:20, 02/04/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +3 +/
    так это же только количество пакетов, где порой делают вставки а не сравнение о... весь текст скрыт [показать] [показать ветку]
     
  • 2.69, Аноним, 04:41, 03/04/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –1 +/
    Одни только кодеки и сколь-нибудь серьезные библиотеки и плееры - по жизни содер... весь текст скрыт [показать] [показать ветку]
     
  • 1.3, TbIK, 13:32, 02/04/2013 [ответить] [смотреть все]    [к модератору]  
  • –2 +/
    Разве для оборудования нет Си-шных функций записи в порты??
     
     
  • 2.8, Аноним, 14:33, 02/04/2013 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    чего?
     
     
  • 3.10, анон, 14:41, 02/04/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    си
     
  • 2.9, dalco, 14:41, 02/04/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –1 +/
    Вряд ли такое возможно Это же необходимо свою индивидуальную версию Си не то, ч... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.16, Аноним, 14:52, 02/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +3 +/
    Угрожающе надвигается долгий-долгий разговор о том, что автор понимает под терми... весь текст скрыт [показать]
     
     
  • 4.28, pavlinux, 16:27, 02/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +4 +/
    include asm-generic io h static inline void __raw_writeb u8 b, volatile void __i... весь текст скрыт [показать]
     
     
     
    Часть нити удалена модератором

  • 6.58, skb7, 23:25, 02/04/2013 [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    Посыл топика -- ответить на вопрос, как на Си писать в порты Ваш К О Зачастую ... весь текст скрыт [показать]
     
     
  • 7.65, ананим, 01:04, 03/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    unsigned int 0x4ae04030 0xdeadbeef И чем это лучше ассемблера Зыж Во... весь текст скрыт [показать]
     
     
  • 8.66, ананим, 01:06, 03/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Ззыж unsigned int 0x4ae04030 0xdeadbeef Вообще йюх поймёшь что эти ци... весь текст скрыт [показать]
     
     
  • 9.71, Аноним, 04:46, 03/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Поэтому нормальные люди таки дают читаемые обозначения константам Или накрайняк... весь текст скрыт [показать]
     
     
  • 10.76, ананим, 06:02, 03/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Большинство пакетов с ассемблерными вставками будут работать на других архитекту... весь текст скрыт [показать]
     
     
  • 11.77, ананим, 06:06, 03/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Т е , другими словами, нормальные люди читают выводы А не придумывают свой хре... весь текст скрыт [показать]
     
  • 10.78, ананим, 06:11, 03/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Зыж Да похер чем он там знаменит, ГЛАВНОЕ 8212 он аппаратн-зависим И его хер... весь текст скрыт [показать]
     
  • 10.90, skb7, 11:56, 03/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    Было показано, что на Си можно выполнить запись в порт Приведенный код -- прост... весь текст скрыт [показать]
     
  • 7.88, Аноним, 11:12, 03/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    В таком случае - сам задал вопрос, сам и ответил Загляните в начало ветки Раз... весь текст скрыт [показать]
     
  • 5.70, Аноним, 04:43, 03/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Вот только в этом месте скорее всего порылся архитектурно-специфичный асм, если ... весь текст скрыт [показать]
     
     
  • 6.94, pavlinux, 15:39, 03/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    ifndef PCI_IOBASE define PCI_IOBASE void __iomem 0 endif define __iom... весь текст скрыт [показать]
     
     
  • 7.107, Аноним, 13:01, 05/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Ок, продолжаем разгадки ребусов а что в этих определениях ... весь текст скрыт [показать]
     
  • 2.19, BSA, 15:19, 02/04/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +2 +/
    А причем тут запись в порты Если посмотришь исходники ядра, то там для этого сп... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.72, Аноним, 04:47, 03/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Собственно практически вся современная периферия - memory mapped в основное прос... весь текст скрыт [показать]
     
  • 2.68, Аноним, 04:39, 03/04/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Именно в порты - только через функции-хелперы в которых ASM вероятно все-таки б... весь текст скрыт [показать] [показать ветку]
     
  • 1.4, Аноним, 13:55, 02/04/2013 [ответить] [смотреть все]     [к модератору]  
  • +/
    Вот это просто архиважная вещь при чем первые две категории 38 и 30 - ну ... весь текст скрыт [показать]
     
     
  • 2.11, анон, 14:42, 02/04/2013 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +4 +/
    это не бред, а печальная действительность
     
  • 2.12, Аноним, 14:47, 02/04/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +5 +/
    Копипаст - любимейший антипаттерн, бережно взращиваемый не одним поколением прог... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.15, Аноним, 14:51, 02/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –2 +/
    А может все это взрощенное поколение в отдельную резервацию, виртуальную чтоб б... весь текст скрыт [показать]
     
  • 2.38, тоже Аноним, 17:13, 02/04/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +2 +/
    Вполне возможно, что это и есть отдельная либа, только в виде исходников Сами ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.53, Аноним, 21:03, 02/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    100500 Тонко, как английский юмор, подмечено, то что сильно похоже на копипаст... весь текст скрыт [показать]
     
     
  • 4.80, тоже Аноним, 08:33, 03/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Ну, я, используя чужой код, кладу его в исходниках отдельно и под тем именем, по... весь текст скрыт [показать]
     
  • 1.5, Аноним, 13:56, 02/04/2013 [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Одна сплошная депрессия в середине текста анализ где и для чего они используют... весь текст скрыт [показать]
     
     
  • 2.6, Аноним, 14:05, 02/04/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    И при чём тут ассемблерные вставки в исходниках портов ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.30, pavlinux, 16:38, 02/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Каких портов, где прочитал ... весь текст скрыт [показать]
     
     
  • 4.31, Аноним, 16:43, 02/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Описался по инерции Пакетов, проектов Тем не менее, вопрос - автор собрался оп... весь текст скрыт [показать]
     
  • 2.7, userd, 14:16, 02/04/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +1 +/
    Экак вы загнули Использование source-based дистрибутива и правильных флагов gcc... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.13, Аноним, 14:48, 02/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –2 +/
    Дак как бы оптимизация компилятором по сути и делает ненужными эти дурацкие вста... весь текст скрыт [показать]
     
     
  • 4.21, BSA, 15:23, 02/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Оптимизации работают в большинстве случаев, но не всегда Если у тебя какая-то х... весь текст скрыт [показать]
     
     
  • 5.40, тоже Аноним, 17:17, 02/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    При условии, что тот, кто это пишет, знает ассемблер не хуже тех, кто пишет комп... весь текст скрыт [показать]
     
     
  • 6.46, ананим, 18:49, 02/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    Человека, не знающего ассемблер и оправдывающего своё незнание 171 ненужностью... весь текст скрыт [показать]
     
     
  • 7.49, тоже Аноним, 19:10, 02/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Извините, но писать Линусу глупости вам придется самостоятельно А я слишком хор... весь текст скрыт [показать]
     
     
  • 8.59, ананим, 23:31, 02/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    А он итак никому толком и не понадобился Только там, где необходим по моим наб... весь текст скрыт [показать]
     
     
  • 9.60, ананим, 23:35, 02/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Зыж Пиндеть, не мешки ворочать Пусть сделают коммит на си например в гстример, ... весь текст скрыт [показать]
     
  • 9.114, arisu, 20:39, 05/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    эх, молодёжь 8230 ... весь текст скрыт [показать]
     
  • 8.108, Аноним, 13:02, 05/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Ну так кто ж вам виноват что вы слили знания в унитаз Со всеми бывает, не у все... весь текст скрыт [показать]
     
  • 6.57, Карбофос, 23:07, 02/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    не обязательно, можно просто проанализировать профайлерором критичные участки ко... весь текст скрыт [показать]
     
  • 5.42, Аноним, 17:35, 02/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    В целом можно согласиться Однако есть масса тонкостей, которые низводят пользу ... весь текст скрыт [показать]
     
     
  • 6.51, Аноним, 19:22, 02/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    Бред Нет Проверено моим студентом - прочитав по диагонали книгу по асемблеру ... весь текст скрыт [показать]
     
     
  • 7.81, Ordu, 09:04, 03/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    Вы ведь, я надеюсь, про векторизованную обработку данных через SSE Таки да, я д... весь текст скрыт [показать]
     
  • 7.85, Аноним, 10:12, 03/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Можно на этом и закончить Дискутировать с троллем - себя не уважать Удачи ... весь текст скрыт [показать]
     
  • 6.52, ананим, 20:41, 02/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Да-да Сидит такой программер и думает, дайка я прогу ассемблером заторможу, а т... весь текст скрыт [показать]
     
     
  • 7.56, Карбофос, 22:48, 02/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    тише тише сейчас изя припрётся и обвинит во всех тормозах ассемблерные вставки... весь текст скрыт [показать]
     
     
  • 8.61, ананим, 23:37, 02/04/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Там вон в новости и в жабе их кучу нашли (то-то начиная с 6 она порезвела)
     
     
  • 9.62, Карбофос, 23:41, 02/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    классика жанра ОЙ как неудобно получилось ... весь текст скрыт [показать]
     
     
  • 10.64, ананим, 00:13, 03/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Да-да Там на 2-м месте после ведра сам о ужОс компилятор гцц Щаз онанчи... весь текст скрыт [показать]
     
     
  • 11.109, Аноним, 13:03, 05/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    А также всякий там стартап код и прочая, все что вокруг живет ... весь текст скрыт [показать]
     
  • 7.87, Аноним, 10:51, 03/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    38 1 пакетов используют ассемблерный код для выполнения различных низкоуровнев... весь текст скрыт [показать]
     
     
  • 8.89, ананим, 11:16, 03/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    так продолжили бы, а не вырывали из контекста при этом Подавляющее большинство ... весь текст скрыт [показать]
     
     
  • 9.91, Аноним, 12:16, 03/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Ещё раз Я возражаю против вашего посыла, согласно которому ассемблерные вставки... весь текст скрыт [показать]
     
     
  • 10.92, ананим, 12:43, 03/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Ок Сформулируйте, что такое низкоуровневые операции ... весь текст скрыт [показать]
     
     
  • 11.97, Аноним, 16:06, 03/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Ой ладно отбрехиваться Вот у меня других дел нет - разводить бестолковую диск... весь текст скрыт [показать]
     
     
  • 12.110, Аноним, 13:04, 05/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Учитывая насколько геморно их писать и что они непортабельны - по другим поводам... весь текст скрыт [показать]
     
  • 4.27, цирроз, 16:26, 02/04/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    нет, это далеко не так.
     
  • 3.22, Аноним, 15:35, 02/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –2 +/
    Толку-то Кажется что сейчас соберёшь систему и будет летать на 486-м, а оно по ... весь текст скрыт [показать]
     
     
  • 4.41, тоже Аноним, 17:26, 02/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Меню приложений XFCE перед первым открытием читает с диска кэш иконок, которые в... весь текст скрыт [показать]
     
     
  • 5.54, Аноним, 21:17, 02/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Нет, только не при загрузке системы, ибо при загрузке и так делов достаточно А ... весь текст скрыт [показать]
     
  • 5.63, ананим, 23:45, 02/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Именно поэтому бинарные конфиги зло если они все не собраны в один сжатый архив... весь текст скрыт [показать]
     
  • 3.73, Аноним, 04:49, 03/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    И вставки на асме сама под ARM64 перепишет ... весь текст скрыт [показать]
     
  • 3.24, ананим, 16:09, 02/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Так целью исследования и было выяснить нужно ли делать такие же ифдэфы для этой ... весь текст скрыт [показать]
     
  • 1.26, Аноним, 16:23, 02/04/2013 [ответить] [смотреть все]     [к модератору]  
  • –3 +/
    Сейчас понабегут аналитеги и скажут, что ассемблерные вставки не нужны Что ж, ... весь текст скрыт [показать]
     
     
  • 2.29, Аноним, 16:28, 02/04/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +3 +/
    Ну что ж, а вы не доросли до терпимости к другому мнению У каждого свой потолок... весь текст скрыт [показать] [показать ветку]
     
  • 1.34, pavlinux, 16:50, 02/04/2013 [ответить] [смотреть все]    [к модератору]  
  • +/
    Самая лучшая инстукция - это NOP !
     
     
  • 2.35, Аноним, 16:52, 02/04/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –1 +/
    Вот я её сейчас и выполняю В цикле do while tm hour 19 ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.36, Аноним, 16:54, 02/04/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    ты не одинок бро)
     
  • 3.37, pavlinux, 17:05, 02/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    А вот и нифига, тут есть счётчик, а это уже перегруз NOP - это философия, NOP -... весь текст скрыт [показать]
     
     
  • 4.39, Аноним, 17:14, 02/04/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +2 +/
    > Какой-то хороший чай я заварил... Ж=)

    С грибами?!
    :)

     
  • 4.43, Аноним, 17:38, 02/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    NOP выполняется за четко оговоренное количество тактов, так что созерцать его не... весь текст скрыт [показать]
     
  • 4.45, masakra, 18:28, 02/04/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    Вообще то NOP суть есть MOV EAX,EAX
     
  • 4.55, Led, 22:37, 02/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    учитывая то, что классический однобайтный x86 NOP - это XCHG AX,AX , то это, мо... весь текст скрыт [показать]
     
     
  • 5.95, pavlinux, 15:47, 03/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Как это, AX,AX AX в квадрате ... весь текст скрыт [показать]
     
     
  • 6.96, Led, 15:56, 03/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Попробую объяснить смысл операции XCHG AX,AX в понятных тебе терминах шило -... весь текст скрыт [показать]
     
     
  • 7.98, pavlinux, 16:06, 03/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Password missmatch Access denied Чё, не меняет Ну и хуй с ней ... весь текст скрыт [показать]
     
     
  • 8.101, Карбофос, 00:29, 04/04/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    завязывай с ложными опятами ;)
     
  • 5.116, Forth, 19:39, 20/05/2015 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    А mov ax,bx можно написать двумя способами.
     
  • 3.75, Аноним, 04:51, 03/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Или попросту - протирание штанов ... весь текст скрыт [показать]
     
     
  • 4.82, Аноним, 09:13, 03/04/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    с волками жить - по волчьи выть бро)
     
     
  • 5.111, Аноним, 13:07, 05/04/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    > с волками жить - по волчьи выть бро)

    Ну, вам же хуже. У вас был выбор...

     
  • 2.44, цирроз, 17:52, 02/04/2013 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +1 +/
    только в закрытых продуктах, я бы скзал. всякие JNZ нопами перебивать :-D
     
     
  • 3.48, ананим, 18:57, 02/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    дык по заказу хакеров и включили а то как варез то распространять потенциальным... весь текст скрыт [показать]
     
  • 1.67, Аноним, 04:17, 03/04/2013 [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Зато один конкретный видеокодек, который в одном случае впишется в реалтайм а в ... весь текст скрыт [показать]
     
     
  • 2.79, 123, 08:29, 03/04/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –1 +/
    Тащем-то шейдеры в кодеке практичнее Да и либ с уже сделанными и оптимизированн... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.84, ананим, 10:02, 03/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    какое отношение шейдеры имеют к видеокодекам кроме пост-процессинга, который д... весь текст скрыт [показать]
     
  • 2.93, Аноним, 14:49, 03/04/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Хорошо, что пишет, если это действительно дает эффект А исследование о том, что... весь текст скрыт [показать] [показать ветку]
     
  • 1.83, anonymous, 09:30, 03/04/2013 [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    людям нужны прикладные проги и игры, а они глибц и прочие в первую очередь ровняют...
     
  • 1.86, Аноним, 10:20, 03/04/2013 [ответить] [смотреть все]    [к модератору]  
  • +/
    Полное ощущение, что за ночь набежала толпа архитектурных астронавтов.
     
  • 1.99, X86, 18:33, 03/04/2013 [ответить] [смотреть все]    [к модератору]  
  • –1 +/
    Я вообще был всегда за то, чтобы весь Линукс с приложениями был на ассемблере)
     
     
  • 2.102, Карбофос, 00:31, 04/04/2013 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    тогда получится КолибриОС
     
     
  • 3.103, Led, 01:42, 04/04/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    > тогда получится КолибриОС

    А она разве получилась?

     
     
  • 4.105, Карбофос, 21:52, 04/04/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    злые языки рассказывают, что и Minix не получился
     
  • 3.112, Аноним, 13:08, 05/04/2013 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    > тогда получится КолибриОС

    КарбофОС :)

     
  • 1.100, Аноним, 22:26, 03/04/2013 [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Ассемблерные вставки позволяют использовать аппаратные возможности процессора, н... весь текст скрыт [показать]
     
     
  • 2.104, Карбофос, 21:51, 04/04/2013 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    как раз такие тривиальные вещи компайлер может делать по усмотрению, если действ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.113, Аноним, 13:10, 05/04/2013 [^] [ответить] [смотреть все]     [к модератору]  
  • –1 +/
    Ага, посмотри как GCC дуреет от армовских ld st с группами регистров Он и на ... весь текст скрыт [показать]
     
  • 3.117, Forth, 19:43, 20/05/2015 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Это если компилятор в состоянии это делать, достаточно посмотреть на листинги ас... весь текст скрыт [показать]
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor