call - вызов процедуры
ret - возврат из процедуры
push - положить в стек
pop - выбрать из стека
jmp - безусловный переход
je, jne, jl, jle - условный переход
mov - положить в регистр
cmp - сравнить
test - сравнить
add - сложить
mul - умножить
div - разделить
sub - вычесть
Затем надо было разбираться с тем, как работает ядро операционной системы - адресное пространство процесса, заголовок PORTABLE EXECUTABLE, функции ядра, winapi, кольца защиты операционной системы.
Это была операционная система windows 2000 (где-то до 2007 года).
Первой идеей было программировать на ассемблере, но я не нашел компилятор (сейчас есть masm).
Затем я начал повторять школьный паскаль, школьный visual basic, и с нуля начал учить язык программирования c/c++. Visual studio 6.0
Начал разбираться с вопросом, как работает интернет, какие есть протоколы(arp, tcp, ip, udp и т.д.), читал rfc, как сделать сайт
Разбирался как делать сайты - поставил веб-сервер apache, как работает cgi, изучал perl для создания сайтов.
Упустил, когда начинал, кое-какие очень важные вопросы:
- объектно-ориентированное программирование, классы, наследование, mfc
- структуры данных - стеки, очереди, деки, графы, деревья, односвязные списки, двусвязные списки, кольцевые списки
- работа с файлами, создание бинарных файлов, произвольное чтение из файла
- структуры и структурное программирование, заголовочные структуры, dat файлы
- линейная алгебра и аналитическая геометрия - векторы, матрицы, матричные преобразования
- растровая графика - спрайты, шрифты
- трехмерная графика - полигоны, вершины, треугольники, asc, 3ds max, max script, создание трехмерных моделей
- форматы файлов - bmp, gif, jpg
- векторная графика
- парсинг - лексический анализ, синтаксический анализ, грамматики