Придумай инструкцию x86!

Тема в разделе "WASM.HEAP", создана пользователем alpet, 22 июн 2005.

  1. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.074
    kill x86 :))) самое, что меня ломает с этим хЪ86, это чудовищный недостаток регистров.
     
  2. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    16 регистров в 64-битной реализации мало?
     
  3. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.074
    я говорю про х86, то бишь 32 бита. а х64 меня вполне удовлетворяет.
     
  4. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.074
    мда.. :)))
     
  5. Paguo_86PK

    Paguo_86PK Руслан

    Публикаций:
    0
    Регистрация:
    8 окт 2007
    Сообщения:
    911
    Адрес:
    Ташкент
    Думается мне, что 60 лет тому назад основной вектор применения ЭВМ был оборонкой и главное там - всё должно работать. Причём, авторство - за военными…

    P.S.: Не думали они же, что процессоры - станут рыночной попсой…
     
  6. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.074
    толку в той махинке было близко к Зеро ==>> оно и сейчас разработка самолётов идёт в основном чрез стендовые прогонки.
    внедрение таких няшек приведёт к весьма неоднозначным итогам.. копирастия уже и так достигла вершин абсурда.
     
  7. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.074
    запустил ты неавторизованный файлик, девайс стуканул на тебя в облачный сервис и получай штраф. откеля файло стянул?:grin:
     
  8. xcode

    xcode Member

    Публикаций:
    0
    Регистрация:
    8 апр 2007
    Сообщения:
    105
    А еще команда которая сообщает в роскомназдор если ты открыл запрещенный сайтик через vpn или tor:)
    На самом деле великое счастье что всего этого нет.

    Я вот думаю - какие фундаментальные операции над числами существуют, чтобы их сделать командами?
    1. Битовые операции - тут все просто; AND, OR, XOR, NOT. Хотя существует 16 бинарных битовых операций но реализовывать их все не имеет смысла - достаточно этих основных.
    2. Операции над битовыми векторами - сдвиги, вращения, предложенное мной обращение битов.
    3. Арифметические операции - сложение, вычитание, умножение, деление и остаток от деления. К слову сказать, целочисленных делений может быть два: обычное (показывающее максимальное целое количество делителей, вмещающихся в делимое) и деление показывающее минимальное целое количество делителей, покрывающих делимое. Второй тип деления может быть получен из первого арифметически, так что вряд ли это отдельная операция (хотя если есть свободные опкоды - можно и сделать). Сюда же относятся сравнение, минимум и максимум.
    4. Математические операции (как над плавающей точкой так и над фиксированной). Фундаментальные - степень и корень, логарифм, синус косинус тангенс, арксинус арккосинус арктангенс; Это реально та основа на которой основаны все вычисления. Есть и более экзотические функции, которые напрямую чреез базовые не выражаются. Но их область применения не такая широкая.

    Но вот интересно - есть ли что-то такое же фундаментальное и полезное, как и арифметические и битовые операции?
    Фундаментальность например сложения очевидна. Связав биты в регистре сумматора определенным образом, мы получаем реализацию ни больше ни меньше основной математической операции, на которой строится вся математика.
    Фундаментальность например нахождения среднего между двумя числами - сомнительна, так как эта операция хотя и полезна, но элементарно реализуется через другие.
    Пока не было двоичной арифметики, люди понятия не имели например о битовых операциях и их свойствах. Тот же XOR. Но с появлением двоичной логики стало понятно что это тоже фундаментальная операция, не уступающая сложению. Но - другая.
    Вот и интересно - все ли открыто, или есть что-то еще столь же фундаментальное но пока скрытое от нас?
     
  9. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.074
    а тебе-то лично сия радость зачем?
     
  10. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.074
    xcode, разрабы современных процев с весьма широкой улыбкой смотрят на такие темы, ибо перечень внедряемых команд в камень есмь результат дiавољски муторной работёнки. процы общего предназначения ужо достигли потолка арх. оптимизаций, а "улучшения" приводят к жёстким перекосам (одна операция ускоряется и обрушивает шустрость всех прочих). тот же хухль делает спец. проц для своих нейросетей. https://www.extremetech.com/computi...u-makes-hash-intel-nvidia-inference-workloads
     
  11. xcode

    xcode Member

    Публикаций:
    0
    Регистрация:
    8 апр 2007
    Сообщения:
    105
    Ну это понятно .Но тема скорее о том, какие инструкции можно было бы дополнительно реализовать в процессоре. Понятно что такие инструкции скорее всего будут редко используемыми, так как все часто используемое уже известно. Хотя кто знает... Именно в этом интерес - найти что нибудь такое необычное и в то же время полезное.
    Например можно быстро реализовать на аппаратном уровне например NIN и MAX. Без операций сравнения и переходов, а просто загружаем два числа в регистры и выполняем инструкцию - на выходе минимальное или максимальное. Делается это примерно как сумматор, только наоборот вычисление начиная со старших разрядов, и схемотехника конечно другая. И безусловно эти операции были бы востребованы при генерации кода, довольно часто это бывает нужно.
    Операция REV (reverse bits) - тоже вручную делать муторно, а аппаратно раз плюнуть.
    Еще подумал о такой операции как подсчет количества единичных бит в регистре. Для всяких четностей и контрольных сумм. В x86 есть флаг четности, но часто ли его используют? Даже в Си нет такой операции. А интересно было бы вместо этого флага сделать именно подсчет бит.
     
  12. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    xcode,

    Тема скорре ниочём. Формат IA это костыль и интересно помотреть на того придурка, кто эту архитектуру разработал. Эффективная раскодировка невозможна. А сейчас это важно, мощности железа позволяют запустить визор под визором, без потери профайла, но коденг этого - изврат. Интел предоставила либу для раскодировки - ксед, но это тормоза редкие. Так что эта архитектура - уг.
     
  13. xcode

    xcode Member

    Публикаций:
    0
    Регистрация:
    8 апр 2007
    Сообщения:
    105
    Indy_, да, x86 весьма и весьма корява. Но думаю, несмотря на название темы, не имеет смысла ограничиваться только x86 архитектурой. У меня давно была мысль сделать таблицы команд для всех архитектур и провести сравнительный анализ:)
     
  14. Paguo_86PK

    Paguo_86PK Руслан

    Публикаций:
    0
    Регистрация:
    8 окт 2007
    Сообщения:
    911
    Адрес:
    Ташкент
    Ктo-нибудь знает, как добыть меню сторонней программы?
    Никакие «GetMenu», «MN_GETHMENU», «FindWindowEx(… MAKEINTATOM(0x8000))» и даже метровые матюки не позволяют из того же VLC добыть никакое меню. Даже системное меню!
    Что за дрянь такая эти современные программы? Вот в VirtualDub я с лёгкостью дистационно отправляю WM_COMMAND с заранее прочитанными идентификаторами нужных пунктов меню и тот всё делает. Например, стартует/прекращает захват в файл. (Когда кто-либо к моему столу подошёл и тронул мышь - запускается захват экрана и Web-камеры)
    А вот с VLC вторые сутки парюсь. Весь интернет перерыл. В современной винде прямо мода пошла на недоступность меню: В «Paint» и в эксплорере - не читается никакими бубнами, а вот «Блокнот», «NotePad++» и «Калькулятор» с радостью все пунктики выдают.

    P.S.: Есть у кого какие идеи? В частности, как быть с VLC?
    Спасибо…
     
    Последнее редактирование: 26 авг 2017
  15. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    Paguo_86PK,

    Под визором запустить и добыть всё что угодно. Весь нет как вы говорите застрял в 2k.
     
  16. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.328
    Потому что винапишное меню крайне скудно на свистелки-перделки и вместо него юзают тулбары и всякие самописные контролы.
     
  17. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.328
    А под отладчиком уже нельзя, чтоле?
     
  18. Minzdrav

    Minzdrav Well-Known Member

    Публикаций:
    0
    Регистрация:
    21 мар 2017
    Сообщения:
    1.082
    А как под виртуальной машиной
    выкусить нужный кусок программы,
    если не секрет? Есть статья какая-нибудь об этом?
     
  19. Minzdrav

    Minzdrav Well-Known Member

    Публикаций:
    0
    Регистрация:
    21 мар 2017
    Сообщения:
    1.082
    Последнее редактирование: 26 авг 2017
  20. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.328
    Да не слушай ты его. Это любитель для тривиальных задач лезть в ядро и указатели там разрушать :)