Просмотр полной версии : Мониторы в системах на Z80
Sergei Frolov
21.12.2018, 21:13
https://i.ibb.co/zSQycPW/1.jpg (https://ibb.co/zSQycPW)
Скажите, в системах на Z80 (не обязательно Spectrum) часто встречаются мониторы с дизассемблером/ассемблером?
иногда встречаются. у NEC PC-88 перетянули систему с cp/m похоже. у Sharp-MZ есть монитор.у PMD-85 есть монитор(но проц 8080). список длинный, наверное.
видел дизасм плюс пара фич
Barmaley_m
24.12.2018, 03:54
Скажите, в системах на Z80 (не обязательно Spectrum) часто встречаются мониторы с дизассемблером/ассемблером?
Не только в системах на Z80. Я впервые увидел дизассемблер в мониторе компьютера "Агат". На начало 1990гг системы на Z80 (и КР580ВМ80) зачастую не имели как хороших дизассемблеров, так и вообще мониторов.
На ZX Spectrum мониторы - это вообще больная тема. На начало 1990х гг нормальных не было (MONS4 и т.п. мониторами я нормально пользоваться после "Агата" и "Специалиста" не смог - они совершенно не решали свои задачи). Но в "Специалисте" и "РК" не было дизассемблера в мониторе. Монитор MZ80 для "Орель БК-08" тоже не имел дизассемблера. Дело кончилось тем, что в 1992г я написал свой монитор с дизассемблером (это был мой первый крупный программный проект).
Был компьютер "Электроника МС-1502" на базе процессора 8088 (К1810ВМ88). Там в ПЗУ был монитор с дизассемблером.
В CP/M системах какие-то отладчики были, но были они какими-то дубовыми.
Так что с хорошими мониторами (тем более с дизассемблером) на начало 1990г была напряжёнка. Потом появился STS (с дизассемблером) - это был глоток воды в пустыне для спектрумистов.
Вопрос следовало бы переформулировать: зачем были нужны мониторы и зачем в мониторах был нужен дизассемблер?
Ответ простой. Мониторы нужны для отладки и взлома программ. Но для этих же целей нужен и дизассемблер как воздух. Спрос порождает предложение.
И мониторы обрастали дизассемблерами, как только авторы могли это реализовать. Дизассемблер - сложная программа, я в 1992г сам бы не осилил. Повезло, нашел, откуда "выдрать". Вероятно, так было у многих.
- - - Добавлено - - -
Еще наличие дизассемблера в мониторах зависит от сложности архитектуры процессора. Для процессора 6502 сделать дизассемблер значительно проще, чем для Z80.
Ассемблер сделать еще сложнее. Большинство известных мне мониторов ассемблера не имели. Но это не очень большое ограничение. При типичных сценариях работы с монитором ассемблер обычно не нужен. А для тех случаев, когда нужно изменить отлаживаемую программу, изменения несложно выполнить прямо в машинном коде. Коды большинства часто используемых команд (CALL, JP, RET, LD HL, LD DE, IN, OUT, XOR A и т.д.) люди просто учили наизусть. А в остальных необходимости не было. В крайнем случае можно было посмотреть в таблицу команд процессора. Но у меня даже не было этой таблицы под рукой, хотя с монитором работал часто и много.
Sergei Frolov
24.12.2018, 08:09
Большинство известных мне мониторов ассемблера не имели.
А какие-то имели? В том мониторе есть возможность эти мнемоники ему обратно подавать. Не совсем ассемблер, но и не коды.
Barmaley_m
24.12.2018, 16:02
А какие-то имели?
Возможно, в STS был ассемблер, но я не помню уже, т.к. не пользовался им постоянно, только щупал.
В том мониторе есть возможность эти мнемоники ему обратно подавать. Не совсем ассемблер, но и не коды.
Ну, подача мнемоники с переводом её в машинный код - это и есть ассемблер. Все остальные функции "больших" ассемблеров, такие как директивы и метки, в мониторе не нужны. Ведь там ставится всего лишь задача небольших модификаций программы, а не её перекомпиляции.
в древнее время была популярна у нас одна модель Спектрума: *-запуск монитора, "-"-переключение в турбо-режим. Название не помню.
- - - Добавлено - - -
Ну, подача мнемоники с переводом её в машинный код - это и есть ассемблер. Все остальные функции "больших" ассемблеров, такие как директивы и метки, в мониторе не нужны
в STS итак хватало, зная опкоды пишешь программу сам, видишь дизассемблер.
Hacker Grey
25.12.2018, 12:17
одна модель Спектрума: *-запуск монитора, "-"-переключение в турбо-режим.
Это версия бейсика 48 - 1991 года - на любой спек ставится - но тот монитор мало что умеет,
CityAceE
25.12.2018, 15:09
Дизассемблер - сложная программа
Тоже всё время был убеждён в этом, пока в этом месяце мне не потребовалось для отладки собственного эмулятора выводить ассемблерный листинг исполняемого кода. Так я написал на Python блок дизассемблера за один выходной день. Как оказалось, совершенно ничего сложного в дизассемблере нет!
STS это шедевр! Я его а 95 году загрузал в SRAM и переделал Magic button для перехода в него. И дела пошли.... ;-)
Barmaley_m
25.12.2018, 18:40
Как оказалось, совершенно ничего сложного в дизассемблере нет!
Ты не сравнивай возраст и опыт. Я бы сейчас тоже без большого труда сделал дизассемблер. Но в 1992г я был только начинающим программистом и "не видал больших людей". Монитор я тогда смог сделать, а дизассемблер - нет. Я тогда пытался хотя бы разобраться в чужом дизассемблере, имея на руках его дизассемблированный код - и то зубы сломал.
А вот один мой приятель, всего на год старше, сделал в 1993г полноценный ассемлер - с выражениями, метками, директивами, текстовым редактором. Это благодаря тому, что он изучал теорию, читал Кнута и знал, что такое регулярные выражения, Shunting Yard Algorithm и т.д.
Дизассемблер проще реализовать так (http://www.z80.info/decoding.htm).
Rubts0FF
27.12.2018, 14:57
Дизассемблер - сложная программа
ничего сложного в дизассемблере нет!
Моим первым компьютером был Львов, ничего о нем не скажу, но главный недостаток - практически полное отсутствие п/о. Так что к концу первой недели я написал ДИЗАССЕМБЛЕР, на бейсике, инструкция прилагалась в букваре. Можно ли это назвать полноценным дизассемблером - не знаю, со своей задачей он справлялся. И да, я не то что о программировании не имел ни малейшего понятия (девушка у меня была, с перфокартами что то там шаманила на своей работе), но и о компьютерах вообще.
И да, я то же ни о чем, просто вспомнил.
хватало и дизассемблера в уме. потом пошли mons, sts2.6, потом Спектрум потерялся.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot