Я хочу программировать на ассемблере для x32, x64, x86. Мне сказали, что нужно выучить основы, но где? Перекопал весь интернет, глаза разбегаются от "разнообразия". Хочу потом создать ос для практики, помогите
Я учил по книге и вместе с соседом по парте делали всякие смешные штуки и резидентные программы и даже безвредные вирусы на уроках информатики, после того как сделаем основное задание.
Книгу не помню, но явно она была по x86 и про 32-bit - вроде белая в синюю диагональ и с названием в круге посередине, 64 тогда не было. Как и не было всяких прикольных онлайн-курсов.
Попробуйте изучить простые инструкции и что-то на них собрать. Попробуйте вывести текст, сумму двух чисел и т.п. Например, я сделал Conway's Life в режиме 320x200 - следующий ход рассчитывался из видеопамяти в следующий блок и по достижении луча CRT монитора подменялся в видеопамять. Забавно, но то-же самое, написанное на паскале, работало в разы быстрее. В этом прелести оптимизации компиляторов.
Сейчас в сети полно курсов по разным ассемблерам. Подобный вопрос задавался на кворе и там полно разных ссылок на всякие курсы и туториалы.
Чтобы больше погрузиться в мир ассемблера, рекомендую пройти nandgame - игра, позволяющая вам построить простейший процессор.
Чтобы от процессора перейти к операционной системе - можно пройти курс nand2tetris.
По поводу вашей цели создать ОС - цель большая, но я не думаю, что это стоит того. Большие компании пишут свои ОС и затем закрывают проекты. Сейчас несколько основных OS на рынке и в общем-то непонятно зачем ещё одна. Тем не менее, в качестве практики, можно и написать. Из такого вырос Linux.
Кроме того - большинство ОС пишутся на C, и лишь для некоторых частей используется Assembler - в основном для драйверов и прочего общения на низком уровне.
Удачи!
Спасибо вам огромное. Я C учу, вы единственный человек который адекватно ответил. Спасибо вам ещё раз!