Code: Select all
МИНИСТЕРСТВО ВЫСШЕГО И СРЕДНЕГО СПЕЦИАЛЬНОГО ОБРАЗОВАНИЯ
РСФСР
Дальневосточный государственный университет
И.И.Бочаров
К.И.Фахрутдинов
Программирование на языке ассемблера Z80
Владивосток, 1990
ОГЛАВЛЕНИЕ
ГЛАВА 1. АРХИТЕКТУРА МИКРОКОМПЬЮТЕРА MSX-2 ..............
¹ 1. Общие сведения об архитектуре MSX-2 ............
¹ 2. Микропроцессор Z-80 ............................
п.1. Основные блоки ..............................
п.2. Состав, обозначение и назначение регистров ..
п.3. Регистр признаков ...........................
п.4. Система команд, формат команд ................
п.5. Способы адресации ...........................
п.6. Прерывания ..................................
¹ 3. Порты ..........................................
¹ 4. Организация памяти .............................
п.1. Карта памяти ................................
п.2. Подпрограммы ПЗУ .............................
п.3. Хранение программ на языке MSX-BASIC ........
п.4. Хранение данных .............................
п.5. Рабочая область и ловушки ...................
п.6. Сетевая память ..............................
¹ 5. Видеопроцессор .................................
¹ 6. Видеопамять ....................................
¹ 7. Формат дисковой памяти ..........................
¹ 8. Звукогенератор ..................................
¹ 9. Клавиатура .....................................
ГЛАВА 2. РАЗРАБОТКА И ВЫПОЛНЕНИЕ ПРОГРАММЫ ...............
¹ 1. Редактирование текста программы ................
¹ 2. Ассемблирование ................................
¹ 3. Редактирование связей и сборка ..................
¹ 4. Выполнение программы ...........................
¹ 5. Организация связей с интерпретатором языка
MSX-BASIC ......................................
¹ 6. Организация связей с транслятором с языка C ....
ГЛАВА 3. ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ АССЕМБЛЕРА Z-80 ......
¹ 1. Директивы ассемблера ..........................
¹ 2. Системы счисления .............................
¹ 3. Выделение памяти и запись значений ............
¹ 4. Команды загрузки и обмена .....................
¹ 5. Управление печатью листинга ...................
¹ 6. Арифметические команды ........................
¹ 7. Логические команды ............................
¹ 8. Команды перехода и условного перехода .........
¹ 9. Команды сдвига ................................
¹ 10. Пересылки блока данных ........................
¹ 11. Команды поиска ................................
¹ 12. Подпрограммы и прерывания .....................
¹ 13. Использование рабочей области системы MSX, ловушки ...
¹ 14. Подпрограммы BIOS .............................
¹ 15. Подпрограммы интерпретатора языка MSX-BASIC ...
¹ 16. Подпрограммы BDOS ..................................
¹ 17. Сетевые функции ...............................
¹ 18. Команды работы с портами ввода/вывода .........
¹ 19. Работа с видеопамятью .........................
¹ 20. Программирование шумов и музыки ...............
¹ 21. Управление памятью (слоты ) ...................
¹ 22. Работа с файлами ..............................
¹ 23. Генерация текста на языке ассемблера ..........
¹ 24. Трансляция сегментов ...........................
¹ 25. Макрокоманды ..................................
¹ 26. Ошибки программирования и компьютерные вирусы ..
ЗАКЛЮЧЕНИЕ ..............................................
ЛИТЕРАТУРА ..............................................
ПРИЛОЖЕНИЕ 1. Рабочая область системы MSX ...............
ПРИЛОЖЕНИЕ 2. Порты ввода/вывода ........................
ПРИЛОЖЕНИЕ 3. Система команд микропроцессора Z-80 ........
ПРИЛОЖЕНИЕ 4. Подпрограммы MSX-BASIC BIOS ...............
ПРИЛОЖЕНИЕ 5. Входные точки MSX-BDOS .....................
ПРИЛОЖЕНИЕ 6. Листинг программы "ОКЕАН" .................
ПРИЛОЖЕНИЕ 7. Листинг программы управления спрайтом .....
ПРИЛОЖЕНИЕ 8. Входные точки интерпретатора языка MSX-BASIC
ПРИЛОЖЕНИЕ 9. Сетевые функции MSX-DOS BIOS ..............
ПРИЛОЖЕНИЕ 10. Пример организации связей с языком MSX-BASIC.
Универсальное меню ............................
ВВЕДЕНИЕ
Для чего нужен ассемблер ? Не все, что хочется можно вы-
полнить на языке высокого уровня (например: BASIC, PASCAL), но
почти всегда можно сделать на языке ассемблера. Но в тоже время
писать все на ассемблере очень нудно, хлопотно и трудно. Поэто-
му хорошо получается вариант, когда большая часть программы на-
писана на языке высокого уровня, а некоторые подпрограммы на
языке ассемблера. Кроме этого, программы на языках высокого
уровня обычно выполняются медленней, чем написанные на языке
ассемблера. Поэтому, если Вам нужна скорость выполнения прог-
раммы, то лучше написать подпрограмму на языке ассемблера. Вот
для чего необходим язык ассемблера.
Данная методическая разработка предназначена для введения
в язык ассемблера микропроцессора Zilog-80 (Z-80), а также как
краткий справочный материал по программированию на языке ассем-
блера данного процессора.
Для уточнения семантики операций будут даваться краткие
программы-примеры, они отлажены на машине "YAMAHA
yis805/128R2", и подходят для всех аналогичных машин.
В примерах будут использоваться подпрограммы BIOS, описа-
ние которых Вы можете прочитать в приложении-справочнике.
При приведении примеров работающих с видеопроцессором бу-
дут подробно объясняться те или иные действия. Обратите внима-
ние, что на компьютерах "YAMAHA" установлен видеопроцессор
"TMS-9938A", эти программы подходят только для него или его
аналога.
Если Вы действительно хотите научиться программировать на
языке ассемблера, внимательно читайте это пособие и опробуйте
программы на машине. Все непонятные вопросы немедленно выясняй-
те, иначе Вы попросту запутаетесь !