Симулятор счётчика команд

Трасса PC

Используйте метки вроде loop:, последовательные инструкции вроде LOAD или ADD, ветвления вроде BR label или BR +8, а также JMP, CALL, RET и HALT.

Этот учебный симулятор назначает адрес каждой непустой строке команды и отслеживает упрощённый счётчик команд (PC). Он не считает строки кода, операторы или токены, не компилирует и не выполняет язык программирования.

Как проследить листинг

  1. 1

    Введите короткий листинг

    Используйте одну команду фиксированной длины на строку и необязательные ASCII-метки, например loop:.

  2. 2

    Выберите модель адресов

    Задайте начальный адрес, размер 1, 2, 4 или 8 байт, ширину 16/24/32 бита и формат.

  3. 3

    Настройте трассировку

    Считайте все распознанные ветвления выполненными или невыполненными, выберите 1–80 шагов и изучите переходы.

Поддерживаемая модель

Элемент Поведение
Другой opcode, например LOAD или ADD Продвинуться на выбранный фиксированный размер команды
BR, BRA, BRANCH, BEQ, BNE, BGT, BGE, BLT, BLE, BZ, BNZ, JZ, JNZ Применить общий выбор «выполнено/не выполнено»
JMP, JUMP, GOTO Перейти к метке или числовому адресу
CALL, JSR, BL / RET, RETURN Сохранить / извлечь имитацию адреса возврата
HALT, HLT, STOP Остановиться на текущем PC

Целью может быть ASCII-метка, десятичный или шестнадцатеричный адрес с 0x. Значение со знаком, например +8, отсчитывается от следующего последовательного PC; число без знака, абсолютное. Адреса циклически переполняются в выбранной разрядности. // и ; начинают комментарий. Операнды лишь отображаются.

Ограничения и конфиденциальность

  • Ввод обрезается до 1800 символов, разбор прекращается после 200 команд.
  • Трасса ограничена 1–80 шагами; все условные ветвления используют один общий выбор.
  • Регистры, память, флаги, конвейер, слоты задержки, кодирование и переменная длина команд не имитируются.
  • Обычный режим отправляет листинг этому сайту через Livewire; пошаговый также включает его в URL. Не вставляйте конфиденциальный код.

Часто задаваемые вопросы

Нет. Он назначает адреса строкам команд и отслеживает PC; строки исходного кода, операторы и токены не считаются.

Нет. Распознаётся небольшой общий набор управляющих opcode. Остальные лишь двигают PC, операнды не выполняются.

Смещение добавляется к следующему последовательному PC. При 0x1000 и 4-байтных командах цель: 0x100C.

Он отправляется этому сайту для Livewire и в пошаговом режиме попадает в URL. Внешний API анализа не используется, но секретный код вставлять не следует.

Сопутствующие инструменты

Генератор случайных цветовых палитр

Создавайте случайные палитры из 2–15 цветов, выбирайте яркий, пастельный, приглушенный или темный стиль и копируйте HEX-коды или CSS-переменные.

Конвертер BBCode в HTML

Преобразуйте BBCode (разметку форумов) в чистый HTML. Поддерживает теги форматирования, списки, цитаты, код, изображения, ссылки и таблицы.

Выбор цвета HEX

Выберите или введите HEX-цвет и получите RGB, HSL, примерный CMYK, относительную яркость и контраст с белым и чёрным.

Конвертер двоичного кода в ASCII

Вставьте двоичный код (байты через пробел или длинный поток битов) и получите текст ASCII, который он представляет. Поддерживает 7-битные и 8-битные кодировки.

Генератор цветовой палитры

Создавайте монохромные, аналоговые, комплементарные, триадные или тетрадные палитры из базового HEX-цвета и экспортируйте готовые CSS-переменные.

Конвертер ASCII в Hex

Переводите ASCII text в hexadecimal byte values. Вывод использует две hex digits на символ и готов для memory dumps, packet traces или firmware tables.