diff --git a/cpu/notes.md b/cpu/notes.md new file mode 100644 index 0000000..0bef044 --- /dev/null +++ b/cpu/notes.md @@ -0,0 +1,57 @@ +# cpu + +* Беззнаковые +* По модулю 256 (8-битность) +* Switch +* Массив регистров +* #ifdef REGISTERS + +Используем REGISTERS + +# cache + +* Первая лекция Северова +* "Размазывает" справа налево +* Обнулять массив через {0}/{} +* Двумерный массив можно инициализировать последовательным списком +* Адрес массива - не lvalue +* Матрицы симметричны относительно диагонали +* У второй матрицы меняем индексы местами + +# neo + +* number/_of_/anomaly = 6 +* Переписать значение в другой части структуры +* Учитывать "дырки" в структуре, тут её нет + +# flag + +* Анализ операций +* MOV меняет флаг + +# cuda + +* Прочитать =3 + +# simple_page + +* Можно посчитать размер страницы +* Одноуровневая система адресов (в 32х-битном, на самом деле, двухуровневая) +* Остаток бит - смещение внутри страницы + +# pdp_rw + +* typedef +* Функции - однострочные +* char mem[64K] +* typedef short/int/_16t word (+stdint) +* Приводим через указатель к word: *(word *)(mem + i) + +# pdp_load + +* Текстовый файл (r/rt) + +# Заметки +* (int (*)[10])p - "приведение" к массиву длины 10 +* PAE (трехстраничная память) +* Массив указателей на функции - для будущего эмулятора.