Среда, 18.10.2017, 19:32
БК-0010.01. Повесть о настоящем компьютере
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
Меню сайта
Категории каталога
Введение в руководство [2]
Введение [0]
Организация БК-0010 [1]
Раздел 1. Организация БК-0010
Работа с МСД [1]
Раздел 2. Работа с МСД
Системные регистры [1]
Раздел 3. Системные регистры
Системное ПО [1]
Раздел 4. Системное программное обеспечение БК-0010
Прерывания. Приоритет ЦП [1]
Раздел 5. Система прерываний БК-0010. Приоритет процессора
Командные прерывания [1]
Раздел 6. Командные прерывания
ЕМТ БК-0010 [1]
Раздел 7. командные прерывания ЕМТ БК-0010
Коды и ассемблер. Мнемокод. [1]
Раздел 8. Коды и ассемблер. Мнемокод. Формат команды
Способы адресации [1]
Раздел 9. Способы адресации
Команды процессора БК-0010 [1]
Раздел 10. Система команд процессора БК-0010
Псевдокоманды. Метки. Комментарии [1]
Раздел 11. Псевдокоманды ассемблера. Метки. Комментарии
Программирование на ассемблере [1]
Раздел 12. Программирование на ассемблере. Начало. Трансляция программ. Ошибки
Отладка программ [1]
Раздел 13. Отладка программ. Позиционно-независимое программирование. Компановка
Подпрограммы ПЗУ БК-0010 [1]
Раздел 14. Подпрограммы ПЗУ БК-0010
Системная область ОЗУ БК-0010 [1]
Раздел 15. Системная область ОЗУ БК-0010. Некоторые секретные сведения об авторе и МП-клубе
Повышение быстродействия БК-0010 [1]
Раздел 16. Вопросы повышения быстродействия БК-0010
Об использовании ПЗУ [1]
Раздел 17. Полезная подпрограмма. Об использовании ПЗУ
Загадочные регистры [1]
Раздел 18. Загадочные регистры
Штурм системной области [1]
Раздел 19. Продолжаем штурм системной области
Об автозапуске программ [1]
Раздел 20. Об автозапуске программ
Коварные программы [1]
Раздел 21. Коварные программы
Еще о системной области [1]
Раздел 22. О пользе плагиата, или еще о системной области
О псевдокомандах и компановке [1]
Раздел 23. Еще раз о псевдокомандах, метках и компановке
Тук-тук, кто в стеке живет? [1]
Раздел 24. Тук-тук, кто в стеке живет?
Фокал с позиций ассемблера [1]
Раздел 25. Взгляд на фокал с позиций ассемблера
Наш опрос
Оцените мой сайт
Всего ответов: 47
 Каталог статей
Главная » Статьи » Подпрограммы ПЗУ БК-0010

Подпрограммы ПЗУ БК-0010

Как мы убедились, программирование на ассемблере - довольно сложный процесс. Кроме того, нам встретился ряд вопросов, на которые мы так и не ответили, например, вывод на экран содержимого регистров. Ясно, что даже для вывода его в восьмеричном формате нам придется написать довольно сложную п/программу. А как ввести число с клавиатуры в регистр? Еще п/программа. и так далее. Нельзя ли упростить эти процедуры, сократить текст программы?

Можно. Для этого нужно воспользоваться готовыми п/программами ПЗУ, надо только знать их точку входа, и информацию, которая предварительно задается в регистрах. но в отличие от командных прерываний ЕМТ, сохраняемость информации в других регистрах при этом не всегда гарантируется, и каждый раз эта задача должна решаться конкретно, для чего достаточно просмотреть текст п/программы с помощью диассемблера (тот же отл2), и установить, какие регистры в ней используются. Приведем несколько таких, наиболее употребительных, п/программ.

п/п 100472. ввод числа с клавиатуры в регистр R5.
Конец ввода по клавише ВВОД, действительны только 6 последних цифр. Исправления невозможны, есть защита от ввода невосьмеричной информации. R0 не сохраняется.

п/п 163220. выдача восьмеричного числа на экран из регистра R4.
R0,R4,R5 не сохраняются.

п/п 163270. вывод текста на экран.
Начальный адрес текста задать в регистре R4. R0 не сохраняется. После исполнения в R4 - адрес следующего за концом текста байта. Конец текста должен быть отмечен нулевым байтом или словом.

п/п 164440. вывод адреса, заданного в регистре R5, и слова в восьмеричном формате по этому адресу
.R0,R3,R4 не сохраняются.

Невозможно, конечно, привести все п/программы ПЗУ, которые могут понадобиться, но с помощью диассемблера вы можете искать их самостоятельно.
Для облегчения поиска укажем, что таблица адресов ЕМТ-диспетчера находится по адресу 100000. чтобы найти программу обработки данного ЕМТ, нужно прибавить его номер к адресу 100000, и по полученному адресу найти адрес программы обработки прерывания. Сама же эта программа сможет многое подсказать. Например, ЕМТ 36: по адресу 100036 записано число 116076. Это и есть начальный адрес драйвера магнитофона.

Что еще мы можем "вытянуть" из ПЗУ? Просмотрите ПЗУ БК-0010 с помощью диассемблера ДАМП. Вы обнаружите множество текстовых сообщений. Их также можно легко использовать. Все текстовые сообщения МСД могут быть выведены п/п 163270, а текстовые сообщения фокала - с помощью, например, ЕМТ 20. Это избавит вас от необходимости вводить в свою программу аналогичные тексты.

Вот и все, уважаемые читатели. Автор считает, что дал вам основу для дальнейшей самостоятельной работы с литературой. Если вы остались не удовлетворены, это хорошо, ибо это - стимул дальнейшего роста. Если вам что-либо непонятно, прочитайте это руководство еще раз. Если же вы все поняли, то приступайте к работе с ассемблером, и увидите, как мало знаний автор смог вам дать. Но такова жизнь: как сказал Козьма Прутков, нельзя объять необъятное. На этом автор прощается с вами, он сказал все, что хотел и смог вам сказать, вам же он желает всяческих успехов на этом далеко не легком пути. Ибо, как говорит Б. М. Каган, ЭВМ и средства их программного обеспечения являются самыми сложными системами из всех, созданных человеком. но, как сказано, "дорогу осилит идущий"!

Категория: Подпрограммы ПЗУ БК-0010 | Автор: ЗАЛЬЦМАН Ю.А., МП-КЛУБ, г.АЛМА-АТА
Просмотров: 396 | Рейтинг: 0.0/0 |

Всего комментариев: 0
Имя *:
Email *:
Код *:
Используются технологии uCoz
Форма входа

Поиск
Друзья сайта
Статистика