Nicron #03
17 октября 1996 |
|
╔═════════════════════════════════════════════════════════════╗ ║ ▒▒░░░░░░░░░░░░░░▒▒ Курс обучения ассемблеру ▒▒░░░░░░░░░░░▒▒ ║ ╚═════════════════════════════════════════════════════════════╝ (C) WLODEK BLACK Здравствуйте, друзья! Первым делом я хочу принести извинения за задержку с выходом второго занятия по нашему учебному курсу. Ес- ли программисту вечно не хватает одного байта для размещения всей программы, то мне не хватило одной (ну, может, двух) мину- ты для приведения в порядок исходного текста второго урока. Де- ло в том, что эти тексты писались в свое время под платформу MSX, которую роднит со Спектрумом главным образом использование того же процессора. А вот формат текста далек от ZX-Word-овско- го и представляет из себя 80 символов в строке в кодировке "ЮАБ ЦДЕФГХ...". И вот на перекодировку и перекомпоновку-то времени и не хватило! Кстати, и примерчики-то в нем сплошь MSX-овские... Чтобы не уродовать текст нелепыми исправлениями, я, пожалуй, ос- тавлю все, как есть, а ссылки на Спектрум выполню в виде допол- нительных комментариев. :-) 002h. МИКРОПРОЦЕССОР Z80A. Для программиста процессор - прежде всего набор регистров, в которые можно помещать данные и производить над ними преобразо- вания. Вот полный перечень регистров процессора Z80A: PC - 16-разрядный счетчик команд (program counter). Содержит те- кущий адрес в памяти, откуда производится выборка кодов ко- манд. Естественный ход выполнения программы - от младших адресов к старшим. A - 8-разрядный регистр-аккумулятор. Является основным при про- ведении арифметических и логических операций над 8-разряд- ными данными. F - регистр флагов (признаков). Отдельные биты этого регистра несут информацию о результатах арифметических, логических и некоторых других операций (например, сдвигов) (признаки нуля, переноса, отрицательного числа и др.). В некоторых случаях регистры A и F могут рассматриваться как 16-разряд- ная пара AF. Группа регистров общего назначения: H,L,D,E,B,C: Название "регистры общего назначения"означает, что эти регистры можно использовать просто для хранения данных. Для работы с 16- разрядными данными они могут объединяться в пары HL, DE, BC. Как 16-разрядные пары эти регистры имеют более широкое назначе- ние: HL - обеспечивает наиболее мощную косвенную адресацию памяти; используется в качестве 16-разрядного аккумулятора в опера- циях над 16-разрядными данными. Мнемоника образована от слов High (верхний) и Low (нижний); DE - может использоваться для косвенной адресации аккумулятора; BC - используется для косвенной адресации 64-килобайтного про- странства устройств ввода-вывода; также может косвенно адресовать аккумулятор. Примечания: 1. Особенности регистровых пар упомянуты лишь в са- мом общем виде; 2. Подробно их использование будет рассмотрено впоследствии, по- этому пока можно не обращать внимания на непонятные термины. Группа индексных регистров: IX и IY - 16-разрядные индексные регистры. Их применение особен- но удобно при обработке таблиц, списков и т.п.структур, так как они обеспечивают легкий доступ к данным по принципу: известны адрес начала массива и номер элемента массива, а получить требу- ется значение элемента массива. Другие регистры: SP - 16-разрядный указатель стека (stack pointer). Стек - это выделенный в любом месте ОЗУ участок памяти,организованный по принципу стопки листов бумаги: он заполняется последова- тельно, как кладутся один на другой листки бумаги. Послед- ний положенный лист снимается первым.Стек используется для временного хранения адресов возврата из подпрограмм(аналог Бейсиковой структуры GOSUB - RETURN) и 16-разрядных значе- ний любых регистровых пар. SP указывает на последнюю заня- тую ячейку, как бы готовясь ее немедленно прочитать. Стек "растет" вниз (от старших адресов к младшим). I - регистр вектора прерываний; подробная беседа пойдет далее; R - регистр регенерации ОЗУ. Это вспомогательный регистр, на- значение которого обусловливается аппаратными особенностя- ми компьютера. Дело в том, что так называемое"динамическое ОЗУ" требует периодического к нему обращения, иначе оно "забывает" хранимую в нем информацию. Но при выполнении ре- альной программы ко многим ячейкам памяти процессор не обращается вообще или обращается очень редко. С помощью ре- гистра R процессор непрерывно, последовательно и незаметно для исполняемой программы перебирает адреса памяти, обеспе- чивая поддержание хранения информации. Если бы регистра R не существовало, пришлось бы усложнять электрическую схему компьютера, вводя в нее отдельное устройство для регенера- ции памяти. Регистр R доступен программно; так как он рабо- тает независимо, его можно использовать для получения слу- чайных чисел. Дополнительный набор регистров: A',F',H',L',D',E',B',C': Эти регистры полностью аналогичны их основным "двойникам", но доступ возможен только к одному из наборов. С помощью предназна- ченных для этого команд можно переключиться на другой набор, и все команды обращения к этим регистрам станут действовать на вновь подключенный набор. Предыдущий набор станет неактивным, но данные в его регистрах сохраняются. Оба набора совершенно ра- вноправны. Программно невозможно установить, какой из них физи- чески активен. Существующие команды переключения воздействуют раздельно на AF и на HL,DE,BC. Кроме команды EX AF,AF',символ "'" не используется в мнемониках команд. Для других регистров он применяется только в описаниях, с целью подчеркнуть, что речь идет об альтернативном регистре. [ Конец текста 2 ]. WLODEK BLACK
Other articles:
|
|
|
|
|
|
|
|
Similar articles:
В этот день... 21 November