Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Где можно изучить ассемблер? С чего начать для программирования на ассемблере для x32, x64, x86?

Я хочу программировать на ассемблере для x32, x64, x86. Мне сказали, что нужно выучить основы, но где? Перекопал весь интернет, глаза разбегаются от "разнообразия". Хочу потом создать ос для практики, помогите

Изучение программирования
valerinitendo@gmail.com
  · 1,2 K
работаю программистом, по образованию информатик с матмеха и переводчик с английского...  · 26 янв 2020

Я учил по книге и вместе с соседом по парте делали всякие смешные штуки и резидентные программы и даже безвредные вирусы на уроках информатики, после того как сделаем основное задание.

Книгу не помню, но явно она была по x86 и про 32-bit - вроде белая в синюю диагональ и с названием в круге посередине, 64 тогда не было. Как и не было всяких прикольных онлайн-курсов.

Попробуйте изучить простые инструкции и что-то на них собрать. Попробуйте вывести текст, сумму двух чисел и т.п. Например, я сделал Conway's Life в режиме 320x200 - следующий ход рассчитывался из видеопамяти в следующий блок и по достижении луча CRT монитора подменялся в видеопамять. Забавно, но то-же самое, написанное на паскале, работало в разы быстрее. В этом прелести оптимизации компиляторов.

Сейчас в сети полно курсов по разным ассемблерам. Подобный вопрос задавался на кворе и там полно разных ссылок на всякие курсы и туториалы.

Чтобы больше погрузиться в мир ассемблера, рекомендую пройти nandgame - игра, позволяющая вам построить простейший процессор.

Чтобы от процессора перейти к операционной системе - можно пройти курс nand2tetris.

По поводу вашей цели создать ОС - цель большая, но я не думаю, что это стоит того. Большие компании пишут свои ОС и затем закрывают проекты. Сейчас несколько основных OS на рынке и в общем-то непонятно зачем ещё одна. Тем не менее, в качестве практики, можно и написать. Из такого вырос Linux.

Кроме того - большинство ОС пишутся на C, и лишь для некоторых частей используется Assembler - в основном для драйверов и прочего общения на низком уровне.

Удачи!

Спасибо вам огромное. Я C учу, вы единственный человек который адекватно ответил. Спасибо вам ещё раз!