Современные CPU

Тема в разделе "WASM.BEGINNERS", создана пользователем mr.en3mY, 26 авг 2017.

  1. mr.en3mY

    mr.en3mY New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2017
    Сообщения:
    16
    Народ доброго времени суток! Я новичок в низкоуровневом программировании и вопрос скорее всего о кроссплатформенности. Сейчас как вы знаете идет гонка между Intel и AMD. AMD выпустил совсем недавно новую модель линейки Ryzen и вопрос такой, будет ли работать код написанный на Intel I5 (ml.exe/ml64.exe) MASM на том же новом Ryzen? Или нужно изучать документацию новых процессоров и писать код конкретно под них?
     
  2. comrade

    comrade Константин Ёпрст

    Публикаций:
    0
    Регистрация:
    16 сен 2002
    Сообщения:
    232
    Адрес:
    Russian Federation
    Если не затрагивать proprietary extensions (инструкции специфичны эксклюзивно Intel или AMD, типа AMD 3DNow! - о других даже не знаю), то код должен быть совместим, так как оба процессора поддерживают ISA (Instruction Set Architecture) x86 и x86-64. Разница будет не в функциональности, а производительности и эффективности: на сколько и как кэшируется память, взаимодействия логических процессоров (hyper-threading, SMP, etc) и прочее.
     
    Mikl___ нравится это.
  3. Indy_

    Indy_ Well-Known Member

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

    Так как вы не сможите использовать новыые инструкции, например анклавы, то совместимость останется. Все новые инструкции нужны для очень специфических задач и обычно не используются.

    > идет гонка между Intel и AMD

    Спецификацию разработала Intel, amd лишь под неё подстраивается. Именно поэтому мы читаем маны Intel, а не amd.
     
  4. mr.en3mY

    mr.en3mY New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2017
    Сообщения:
    16
    Вы имеете ввиду не смогу писать и запустить на I5? Но я ведь могу написать на i5 на масме для Ryzen со специфическими возможностями и теми же анклавами? Имею ввиду смогу ли я на масме это сделать?
     
  5. Indy_

    Indy_ Well-Known Member

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

    Масм даже не поддерживает набор новых инструкций. Так что можите не волноваться на счёт совместимости.
     
  6. mr.en3mY

    mr.en3mY New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2017
    Сообщения:
    16
    Как тогда люди пишут эти новые инструкции и на чем?
     
  7. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    А зачем они вам ?

    Вам хватит стандартного набора на очень долго..
    Новые инструкции поддерживают обновляющиеся компили, это макро определения.

    Вот например:

    VRCP28PD—Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values
    with Less Than 2^-28 Relative Error

    Кому это нужно ?
     
  8. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.329
    Вручную можно кодировать же:
    Код (ASM):
    1.  
    2. db xx
    3. db xx
    4. db xx
    5. ...
    6.  
    :)
     
    Mikl___ нравится это.
  9. mr.en3mY

    mr.en3mY New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2017
    Сообщения:
    16

    Без компилятора в масме новые инструкции?
     
  10. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.329
    Ну да.
     
  11. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.546
    Адрес:
    Russia
    Ну вообще новые инструкции много где используются. Просто Indy_ утирует - имея ввиду, что пока у вас не стоит конкретной задачи - конкретно сейчас можете не волноваться на счет их поддержки масмом или совместимости какой.
    Ну например? вы начали кодить свой гиппервизор. Если вы начали делать гипервизор - то у вас бы не было вопросов новичка. И вы бы, почитав мануалы интела и амд, увидели бы что - у них совершенно разные инструкции для построения гипервизора. И на амд у вас бы был свой код, а на интел свой.
     
  12. Indy_

    Indy_ Well-Known Member

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

    У тс уйдут года на изучение стандартного набора, так как он не знает как инструкцию задефейнить как макро в масм. Думаю вопрос общий, тс начал юзать асм и появился вопрос совместимости.
     
  13. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.546
    Адрес:
    Russia
    А мне лично показалось, что ничего он не начал изучать, а просто вопрос из серии "поболтать ни о чем". Обычно новички задают более конкретные и насущные вопросы из серии - "не могу скомпилировать то-то и то-то".
     
  14. Indy_

    Indy_ Well-Known Member

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

    Незачем гадать, просто спросим.

    mr.en3mY,

    Повторите вопрос развёрнуто и опишите что вы знаете.
     
    Mikl___ нравится это.
  15. mr.en3mY

    mr.en3mY New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2017
    Сообщения:
    16
    Знаю я действительно мало пока что. Indy вы правы вопрос был больше о совместимости. Но как я вас понял в принципе. Единственное что меня озадачило это то если я учу и работаю с синтаксисом Масма то как же работать с новейшими функциями, я пока про кодирование и define не много знаю.
     
  16. mr.en3mY

    mr.en3mY New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2017
    Сообщения:
    16
    Скорее всего так и будет со временем, но пока что конкретных вопросов нет, т.к. я занимаюсь по Крупнику и некоторым видео материалам. Скажем так пока все идет гладко.
     
  17. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.546
    Адрес:
    Russia
    Ну тогда просто не заморачивайтесь. Изучайте базы, по книгам \ статьям и тп. Обычно ставят цель и программируют - изучают инструкции и прочее. А без цели изучать - скучно и без толку.
     
  18. SadKo

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

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    Сначала изучаете базовый набор инструкций (совместимых между всеми процессорами от AMD и Intel) и как ими пользоваться, потом уже приступаете к изучению и использованию специфичных (расширений). К тому моменту уже не возникнет вопроса о том, как использовать ту или иную инструкцию, будет ли она совместимой, и присутствует ли в вашем инструментарии (masm). Возможно, в будущем придётся даже отказаться от текущего инструментария (masm) в пользу другого (fasm, yasm, и т.д.).
     
  19. Minzdrav

    Minzdrav Well-Known Member

    Публикаций:
    0
    Регистрация:
    21 мар 2017
    Сообщения:
    1.082
    Это типо макросы? А в каком нибудь ГАСе можно писать новые инструкции?
     
  20. SadKo

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

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    В GAS все новые инструкции поддерживаются. У меня, например:
    Тянет и AVX, и FMA, например.