Archived
1
0
Fork 0
This repository has been archived on 2022-06-20. You can view files and clone it, but cannot push or open issues or pull requests.
mipt_clang/cpu/notes.md
2022-03-07 21:03:05 +03:00

1.7 KiB
Raw Blame History

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 (трехстраничная память)
  • Массив указателей на функции - для будущего эмулятора.