Симулятор счётчика команд
Используйте метки вроде 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 шагами; все условные ветвления используют один общий выбор.
- Регистры, память, флаги, конвейер, слоты задержки, кодирование и переменная длина команд не имитируются.
- Обычный режим отправляет листинг этому сайту через сервер; пошаговый также включает его в URL. Не вставляйте конфиденциальный код.
Часто задаваемые вопросы
Нет. Он назначает адреса строкам команд и отслеживает PC; строки исходного кода, операторы и токены не считаются.
Нет. Распознаётся небольшой общий набор управляющих opcode. Остальные лишь двигают PC, операнды не выполняются.
Смещение добавляется к следующему последовательному PC. При 0x1000 и 4-байтных командах цель: 0x100C.
Он отправляется этому сайту для серверной обработки и в пошаговом режиме попадает в URL. Внешний API анализа не используется, но секретный код вставлять не следует.
Сопутствующие инструменты
Генератор вымышленных телефонных номеров
Создавайте до 50 вымышленных номеров из официально зарезервированных диапазонов пяти стран.
Генератор конфигурации webpack
Создайте webpack.config.js для webpack 5 под чистый JavaScript, React или Vue: TypeScript, Babel, CSS или Sass, изображения, HtmlWebpackPlugin, dev-сервер и команда npm install.
Генератор случайных букв
Генерируйте случайные буквы A-Z. Выберите количество, верхний или нижний регистр либо смешанный вариант для игр, заданий и уроков.
Проверка телефонных номеров
Проверьте структуру номера по стране и получите регион, тип, форматы E.164, международный, национальный и RFC 3966.
Валидатор XSD
Проверьте XML-документ в соответствии с схемой XSD и выявите несоответствия между элементами и их типами, указав точные номера строк.
Генератор случайных адресов
Создавайте 1–20 похожих на адрес записей для макетов и тестов в трёх упрощённых форматах.
Инструмент доступен на других языках
- محاكي عدّاد البرنامج [AR]
- Programmzähler-Simulator [DE]
- プログラムカウンターシミュレーター [JA]
- Simulateur de compteur de programme [FR]
- Simulador de contador de programa [PT]
- Simulator för programräknare [SV]
- Trình mô phỏng bộ đếm chương trình [VI]
- 프로그램 카운터 시뮬레이터 [KO]
- Programmatellersimulator [NL]
- เครื่องจำลองตัวนับโปรแกรม [TH]
- Simulator program counter [ID]
- Simulador del contador de programa [ES]
- Symulator licznika rozkazów [PL]
- Program Counter Simulator [EN]
- Simulatore del program counter [IT]
- Program sayacı simülatörü [TR]
- 程序计数器模拟器 [ZH]