Nano Banana 2.1 ДОСТУПНА — Новинка от Google | Попробовать →
Войти
WAVESPEED AI ЭМУЛЯТОР 6502 РАБОТАЕТ В БРАУЗЕРЕ
100% БЕСПЛАТНО

Эмулятор и ассемблер 6502Пишите на ассемблере, запускайте, следите за каждым регистром.

Введите код на ассемблере 6502 и нажмите «Запуск»: он собирается и выполняется на цветном экране 32×32 с вводом с клавиатуры.
Выполняйте по одной инструкции, ставьте точки останова и смотрите, как меняются регистры, флаги и память.

Встроенный ассемблерШаги и точки остановаЗмейка и ещё 7 примеров
Без регистрации Без установки Работает офлайн

Загрузка эмулятора…

Код собирается и выполняется на вашем устройстве. Ничего не загружается.
ТРИ ПРОСТЫХ ШАГА

Как пользоваться эмулятором 6502

01

Напишите или выберите программу

Введите код на ассемблере 6502 в редакторе или выберите пример, например «Змейку», «Цветные полосы» или математическое демо. Программы начинаются с $0600.

02

Запустите

Нажмите «Запуск» (или Ctrl/⌘+Enter). Код собирается; ошибки перечисляются с номерами строк. Щёлкните по экрану, чтобы передавать программе нажатия клавиш.

03

Отладьте

Ставьте на паузу, выполняйте по одной инструкции и щёлкайте номер строки, чтобы поставить точку останова. Следите за регистрами, флагами, памятью и дизассемблером во время работы.

ИЗУЧАЙТЕ 6502

Советы по 6502 для начинающих

У 6502 три 8-битных регистра, стек на 256 байт и несколько режимов адресации. Эти идеи помогут продвинуться далеко.

Экран — это память

Каждый байт от $0200 до $05FF — один пиксель, по 32 в строке. STA $0200 закрашивает левый верхний пиксель; прибавьте $20, чтобы спуститься на строку.

Нулевая страница быстрая

Адреса $00–$FF записываются одним байтом и читаются на такт быстрее. Храните там счётчики и указатели.

Указатели — через (zp),Y

Сохраните 16-битный адрес в двух байтах нулевой страницы, младший байт первым, и LDA ($10),Y прочитает по этому адресу плюс Y. Примеры «Змейка» и узоры так обходят экран.

Перенос перед арифметикой

ADC прибавляет и перенос, поэтому начинайте сложение с CLC, а вычитание — с SEC. Переходы вроде BCC и BCS затем проверяют перенос.

Десятичный режим

После SED команды ADC и SBC считают в десятичной системе: $58 + $46 даёт $04 с установленным переносом (104). Удобно для очков; выключается командой CLD.

Читайте флаги

Каждая инструкция загрузки и арифметики обновляет N и Z. Пройдите цикл по шагам и следите, как они меняются перед проверяющим их переходом.

WaveSpeed AI

Создайте графику для ретро-проектов

Создавайте пиксель-арт спрайты, заставки и короткие ролики для своих игр и демо по промпту с WaveSpeed AI.

  • Более 1000 ИИ-моделей
  • Изображения, видео и 3D
  • Оплата по факту

$1 бесплатных кредитов для подходящих новых аккаунтов. Карта не нужна. Для генераторов нужны отдельный аккаунт и кредиты. Инструмент «эмулятор 6502» бесплатный.

Вопросы об эмуляторе 6502

Этот эмулятор 6502 бесплатный?

Да. Бесплатно, без регистрации, рекламы и ограничений. Программа сохраняется в браузере, так что в следующий раз она будет на месте.

Какой 6502 он эмулирует?

Оригинальный NMOS 6502 со всеми 151 документированной инструкцией, двоично-десятичным режимом с поведением флагов NMOS, ошибкой страницы JMP ($xxFF) и документированным числом тактов, включая штрафы за пересечение страницы и переходы.

Насколько он точен?

Он проходит широко используемую функциональную тестовую программу для 6502 и 1,5 миллиона тестов отдельных инструкций, проверяющих регистры, флаги, память и число тактов.

Какая карта памяти?

64 KB RAM. Экран — $0200–$05FF (один байт на пиксель, 16 цветов), чтение $FE даёт новый случайный байт, в $FF лежит последняя нажатая клавиша, а программы загружаются с $0600. Программы из популярных учебников 6502 для начинающих, использующих такую раскладку, работают без изменений.

Как передать программе нажатия клавиш?

Щёлкните или коснитесь экрана и печатайте: ASCII-код клавиши попадает в $FF. Стрелки и экранные стрелки отправляют w, a, s и d, которые используют примеры «Змейка» и «Рисование».

Какой синтаксис ассемблера поддерживается?

Метки (loop: или слово в начале строки), константы (define name value или name = value), *= или .org, .byte/dcb, .word, .text, .asciiz и .res, числа в hex ($FF), двоичные (%1010), десятичные и символы ('A'), арифметика, а также < и > для младшего и старшего байта. Значение меньше $100 использует нулевую страницу; напишите $00FF, чтобы принудительно выбрать абсолютную форму.

Как работают точки останова и пошаговое выполнение?

Щёлкните номер строки (или нажмите F9 на строке), чтобы поставить точку останова. Запуск остановится перед этой инструкцией; «Шаг» (F10) выполняет одну инструкцию и подсвечивает её строку. Регистры, флаги, память и дизассемблер обновляются после каждой остановки — отличный способ изучить ассемблер 6502.

Можно ли сохранить программу или поделиться ею?

Программа автоматически сохраняется в браузере. Также можно сохранить её как файл .asm, скачать собранный .bin, скопировать hex-дамп, сохранить всё состояние машины или скопировать ссылку, содержащую программу.

Мой код куда-нибудь загружается?

Нет. Сборка и выполнение происходят в браузере. Ссылка для отправки хранит программу в части адреса после #, которую браузеры не отправляют на сервер.

Все бесплатные инструменты

Запустите свою первую программу на 6502

Бесплатно, в браузере, с отладчиком.

Открыть эмулятор