Симулятор счётчика команд
Используйте метки вроде loop:, последовательные инструкции вроде LOAD или ADD, ветвления вроде BR label или BR +8, а также JMP, CALL, RET и HALT.
Этот учебный симулятор назначает адрес каждой непустой строке команды и отслеживает упрощённый счётчик команд (PC). Он не считает строки кода, операторы или токены, не компилирует и не выполняет язык программирования.
Как проследить листинг
-
1
Введите короткий листинг
Используйте одну команду фиксированной длины на строку и необязательные ASCII-метки, например loop:.
-
2
Выберите модель адресов
Задайте начальный адрес, размер 1, 2, 4 или 8 байт, ширину 16/24/32 бита и формат.
-
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.