ZX Spectrum
Game

Machine Code Tester

ZX Computing (Великобритания),

Автор:

Жанр: Программирование: Asm


Доступные версии

 Неофициальное издание
Играть!

Язык

  • Русский
  • English

Управление

  • Клавиатура(?)

Игроков

  • Один
  • Описание
  • Описание (авт.пер.)
  • Информация

Машинный код TESTER

по T.E. Вт от ZX вычислений, май 1986

Если вы устали от сбоев код, вот рутина, что позволяет

проверить эффекты ваших м / с программами, прежде чем запускать их.

Каждый, кто пытался программы в машинный код будет знать

(Если не очень хорошо знакомы с) подпрограмма: введите код … сохранить код … Тест … CRASH! … Отключите … подключить … перезагрузить … печать адреса и проследить … изменить … спасти … тест … CRASH !! … (Бранное слово удален) и так далее.

Эта программа сохраняет все разочарования и много времени на

отслеживание вашего машинный код подпрограмм, шаг за шагом, показывая содержимое регистров до и после каждой инструкции и печати Содержание любой адрес. Регистры могут быть установлены на любой желаемый Значение как можно указатель стека. Отдельный стек от используемого Базовая система настроена, который позволяет избежать проблемы балансировки стека и делает его очень легко проверить, что ваша подпрограмма делает сбалансировать стек. Адрес инструкции для выполнения могут, конечно, быть изменился и объект включен положить адрес в стеке или изменить адрес к последней записи в стеке. Альтернативный зарегистрируйтесь установить не печатается, но сохраняется и может быть использован.

К сожалению, из-за использования экрана программы и (если они

используются) сложность ROM подпрограмм, процедур трафаретной печати будет производить мало или нет видимых результатов. Тем не менее, состояние все регистры и все магазины известно на всех этапах, так что на практике нет реальная трудность в тестировании таких процедур.

Сердце программы является машинный код рутина по адресу 6D5E

(Десятичной 27998) доступ к которой осуществляется через линию 710. Как чередуются зарегистрируйтесь пару H’L »используется рутины USR, были приняты меры сохранение и восстановление его содержимого с помощью подпрограмм по адресам 6D7F-6D83 и 6D90-6D97. Остальная часть кода довольно проста и не должно представлять никакой трудности.

Базовая программа устанавливает начальные значения для регистров и стека

указатель и печатает эти значения. Он также отслеживает адрес следующая инструкция и копирует соответствующее число байтов, обращается 6D88-6D8B. Строительство программы изложены в В таблице 1, функции приведены в таблице 2 и переменных в таблице 3. [Ни один из этих таблиц не были напечатаны в журнале. JimG]

Ввод программы

Вы должны сначала введите Basic программу, и после проверки список ошибок сохранить его с помощью команды SAVE “mctp” LINE 1.

Процедура машинный код (листинг 2), то может быть введен. Осторожно

проверить загруженный код (который не следует принимать слишком долго, так как рутина настолько коротка) и сохраните его сразу после основной программы при запросе.

В употреблении

При сохранении, как указано выше, команда LOAD “mctp” будет загружать и автозапуск программа. Процедура машинный код загружен, если это необходимо, и Программа останавливается с вопросом “Вы хотите инструкции?”. Вы Затем спросил, если вы хотите загрузить с именем рутины машинного кода; эта воля как правило, процедура вы хотите проверить, и она должна быть сохранена на Лента так, что команда LOAD “имя” КОД будет загрузить его на правильный расположение. Расположение вашего кода должна быть выше 6DA4 (десятичной 28068).

Помимо имя рутины, чтобы быть загружены и еще один вариант

которые мы приедем в ближайшее время, все вход программе является либо число или одна буква, “у” или “н”. Все цифры могут быть в любом десятичной или шестнадцатеричной; шестнадцатеричные числа должны быть длиной 2 или 4 цифры и затем “ч” (например. 4, может быть введен как “4” или “04” или “04h” или “0004H”). Письма, будь то в рамках шестнадцатеричное число или ответ на Вопрос, может быть либо верхний или нижний регистр. Но помните, что есть нет проверка синтаксиса на номера и запись, например, “04D1” (т.е. “Н” отсутствует шестнадцатеричное число) будет производить отчет “440,1: Ерунда в Basic “или аналогичный остановка ошибка. Если это произойдет, перезагрузите Программа, набрав “GO TO 600”.

Теперь программа должна быть рассказана адрес, что она начала тестирование

от и начальные значения всех регистров; Место в неиспользуемый часть оперативной памяти должен быть выбран для использования в качестве стека.

Затем программа входит в основной цикл. Текущее местоположение печатается

как в десятичной и шестнадцатеричной и содержания этого и на следующий три места отображаются в шестнадцатеричном коде. Теперь введите число байты в инструкции или значением кода, чтобы добраться до требуемого объект. Результат ввода различных возможных значений является как следующим образом:

Количество от 1 до 4:

Число байтов, указанных выполняется и состояние

регистры после запуска выдается.

Ноль вошли:

Программа спросит “Пропустить / пойти?”. Ввод 0 до 4 вызывает ток

Адрес быть увеличена на число. Ввод номера больше четыре изменения текущий адрес с номером вошел и спросит, Вы хотите поставить ряд в стеке (использовать эту возможность, если инструкция ВЫЗОВ), введя “с” изменяет текущий адрес в Последняя запись в стек и шагом указателя стека (использовать это объект, если инструкция RET). Все эти параметры с последующим возможность изменять содержимое регистров и стека указатель. Ряд меньше нуля может быть введен и это остановит Программа.

Количество больше, чем 4:

Это то же самое, как ввод более четырех в ответ на

“Пропустить / пойти в” вопрос выше. Нынешний адрес изменяется, и вы может поставить ряд в стеке. Содержимое регистра может быть изменено.

Программа останавливается, если вы пытаетесь ввести любой номер меньше нуля. Все

указанные выше параметры (за исключением тех, которые остановить программу) следуют по вопросу «местоположений напечатать?”. Ввод “у” производит ответ “Начало в?” с последующим “Сколько / End в?” и соответствующая Места печатаются в десятичной и шестнадцатеричной (если второе число больше, чем первый, то программа предполагает, что это будет конец расположение). После печати, программа возвращается к вопросу “Печать Места? »и дальнейшие места могут быть напечатаны. Ввод ничего кроме “Y” принимает программу обратно в начале основного цикла.

Если вы остановили программу, и вы хотите, чтобы перезапустить в то же самое

Расположение и с теми же данными, то используйте команду GO TO 600. Запуск программы потребует от вас инициализировать регистры и указатель стека; Однако каких-либо данных выше местоположения 6D5D (27997) будет неизменным и тест в строке 5 будет избежать необходимости перезагрузки процедуру машинного кода программы. Можно, конечно, RUN программа для того, чтобы загрузить и протестировать другую подпрограмму машинного кода.

Процедуры тестирования, которые изменяют адрес

При тестировании процедуру, которая включает инструкции, такие как вызов, RST,

JP JR, RET, вы не должны выполнить инструкцию перехода, но должен изменить следующий адрес в соответствующее значение, и для ВЫЗОВ Инструкции поставить обратный адрес (обычно текущий адрес + 3) на стек. Если вы сделали это для вызова, то соответствующий RET следует выполнения нулевые байты и ввода “S” в ответ на “Пропустить / перейдите в раздел” вопрос.

Это действие необходимо, потому что выполнение инструкции, которые

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

?

Играйте в Machine Code Tester онлайн. Программа для разработки на ассемблере, изданная в Великобритании в 1986 году творческой группой ZX Computing, которую разработал T.E. Watts.

Не запускается или глючит игра, или не можете пройти? Спросите в комментариях.

Отправить ответ

Уведомлять об
avatar
wpDiscuz
 

Сохранённые игры[X]

  

Справка[X]

Помощь уже в пути!

Не забывайте периодически сохранять игровой прогресс на сервере (клавишей F8), чтобы уверенно продвигаться вперёд!

Если вы гость на сайте, то прогресс будет сохранён только в памяти браузера и потеряется при закрытии. Чтобы этого не произошло - просто войдите в свой профиль.

Для загрузки сохранённой игры жмите F3 или откройте меню "Диск" кнопкой на правой панели.

Если игра не запускается, или у вас есть вопросы по игре - задайте их ниже.

Помощь

Размер

  • x1 [256x192]
  • x2 [512x384]
  • x3 [768x576]
  • Полный

Диск

Кликни в окно эмулятора, чтобы управлять!
<<<<
Close