Вопрос Легкий вопрос по поводу ассамблера

Пользователь
Статус
Оффлайн
Регистрация
16 Май 2021
Сообщения
276
Реакции[?]
36
Поинты[?]
3K
Тоесть, чтобы кодить программы на ассамблере нужно изучить ассамблерные инструкции амд и интел? (Просто мб чёт поменялось)
 
Пользователь
Статус
Оффлайн
Регистрация
16 Май 2021
Сообщения
276
Реакции[?]
36
Поинты[?]
3K
Ты не сможешь писать нормальные читы на ассемблере
Я имел ввиду программы, а не только читы , щя исправлю
Ты не сможешь писать нормальные читы на ассемблере
А так придется учить 2 синтаксиса? Чтобы писать кроссплатформенные программы (для процессоров)
 
Keine panik!
Эксперт
Статус
Оффлайн
Регистрация
29 Апр 2020
Сообщения
812
Реакции[?]
417
Поинты[?]
49K
А так придется учить 2 синтаксиса? Чтобы писать кроссплатформенные программы
Не совсем.
Изначально всем рулили именно интел, они придумали саму 32-битную архитектуру x86, AMD же просто купили лицензию на выпуск своих процессоров на той же архитектуре.
Затем стали задумываться про 64-бита и так вышло что именно амудэ сделали ее первой, поэтому она и называется AMD64 (или x86_64), а потом ее себе добавили и интел.
Т.е. большая часть архитектуры одинаковая для Amd и Intel, и учить две разных не нужно.
Но затем в дело вмешалась коммерация, совершенствовать производительность бесконечно невозможно поэтому со временем вендоры стали добавлять новые наборы инструкций причем делать их эксклюзивными, так что они работают только на процессорах амд или интела.
Например такая ситуация с виртуализацией, на amd это AMD-V, а у интела VT-d (VMX), поэтому если например ты хочешь писать гипервизор, тогда действительно придется писать две реализации.
Так же у есть и другие эксклюзивные расширения, которые вряд ли пригодятся тебе (некоторые из них даже уже сами компании перестали вставлять как то SSE5), хотя эксклюзивность понятие временное.
Стоит добавить еще что x86 сама по себе очень хуевая архитектура, это один огромный костыль и ей пользуются только потому что она постоянно сохраняет обратную совместимость (из-за чего и костыли собственно), в ней просто куча различных расширений и наборов инструкций.
Кроме того тебе не нужно знать архитектуру досканально чтобы писать читы, ты пишешь код на C++ а ассемблер генерирует компилятор сам, ассемблер же нужно применять только в некоторых случаях (хуках, патчах, и тд).
 
Сверху Снизу