Главная
Новости
Строительство
Ремонт
Дизайн и интерьер




09.08.2022


08.08.2022


05.08.2022


05.08.2022


03.08.2022


02.08.2022





Яндекс.Метрика

CHIP-8

13.07.2022

CHIP8 это интерпретируемый язык программирования, который был разработан Джозефом Вейзбекером (прим. перевод Joseph Weisbecker) в семидесятых для использования в RCA COSMAC VIP. В дальнейшем был использован в COSMAC ELF, Telmac 1800, ETI 660, DREAM 6800. Тридцать одна (35?) инструкция давали возможности для вывода простого звука, монохромной графики в разрешении 64 на 32 пикселя, а также позволяло использовать 16 пользовательских кнопок. Сегодня CHIP-8 часто используется для обучения базовым навыком эмуляции (не интерпретации). Интерпретаторы CHIP-8, часто по ошибке называемые „эмуляторами“, существуют на все более расширяющемся множестве платформ. Это обилие интерпретаторов связано со сходством дизайна интерпретатора CHIP-8 и эмулятора системы. Те, кто хочет разобраться в эмуляторах, нередко начинают с написания интерпретатора CHIP-8.

Хранение инструкций

Инструкции CHIP-8 хранились напрямую в памяти. Современные компьютеры позволяют хранить бинарные данные без надобности вводить их вручную в память. Спецификация COSMAC VIP предполагает, что код загружается в памяти со смещением в 512 байтов (0x200). Большинство игр и программ в CHIP-8 во время работы с памятью предполагают именно такое смещение.

Надо отметить, что программы в памяти CHIP-8 хранятся в Big-Endian, предполагая хранение MSB First (Most Significant Byte First — Самый "значимый" байт храниться первым). Инструкции исполняются по два байта последовательно если не было иных инструкций.

Так как инструкции CHIP-8 содержат указатели на данные или инструкции в памяти изменение кода требовало бы изменения адреса в инструкциях. К счастью псевдо-ассемблер решает эту проблему. Большое количество документации к CHIP-8 не содержат описания некоторый инструкций (8XY3, 8XY6, 8XY7 и 8XYE), но будут описаны здесь.

Стек

В CHIP-8 Описан стек глубиной 12 ячеек. Прямого доступа к стеку нет (PUSH/POP/etc), но есть инструкции вызова и возврата, которые используют стек.