Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[34]

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

Листинг программы на языке ассемблера и на машинном языке приведен в табл. 4.1 вместе с комментарием. В программе и комментарии использована шестнадцатиричная система счисления.

Таблица 4.1. Пример листинга программы

Номер оператора

Ячейка памяти

Шестнад-цатерич-ьый код

Мнемокод

LD HL, 210F

Loop: LD

(HL), Ь

JPNZ LOOP

LD(HL), L

LDDE, 2200

LD ВС, 0010

JP START

Комментарий

Загрузить в регистровую пару HL адрес 21 OF

Загрузить содержимое регистра L в ячейку памяти, заданную парой HL

Дать отрицательное приращение регистру L; признак нуля устанавливается, когда L= =0

Если признак нуля не установлен, вернуться к метке LOOP (2003)

Загрузить информационный байт L в ячейку памяти (HL); L=00, HL=2100

Загрузить адрес назначения памяти в DE

Загрузить номер информационного байта для переноса в ВС

Содержимое памяти (HL) переносится в ячейку памяти (DE); дать приращение DE и HL; дать отрицательное приращение ВС; повторять до тех пор, пока ВС=0

Циклическое возвращение к началу

" Информационные линии анализатора соединяются с информационной шиной центрального процессора, а линия синхронизации первоначально соединена с линией считывания центрального процессора. Запус-


кающим словом выбран код операции 21„, программа загружена в ОЗУ и выполнена. Анализатор не запускается до тех пор, пока программа не начинает циклически повторяться. Если бы анализатор вводился в действие с самого начала и ожидал запускающего слова, он, вероятнее всего, запустился бы от информационного байта 21 п или кода операции управляющей программы системы Z-80. (Хотя для того, чтобы начать выполнение программы, пользователь только нажимает соответствующую кнопку, при этом задействуется значительная часть программного обеспечения.) Мы предпочитаем обойти эту трудность, начиная выполнение программы, поддерживая ее в циклическом режиме и только после этого приводя в действие анализатор. Конечно, это как раз та ситуация, когда хотелось бы, чтобы анализатор обладал такими возможностями, как задержка запуска и уточнение. При наличии задержки запуска можно экспериментировать с количеством синхроимпульсов, необходимых для завершения выполнения управляющей программы перед введением данных в ОЗУ. При наличии уточнения данных код 21 н можно использовать в качестве запускающего слова только после того, как на адресной линии установлен код 2000Е.

Для стробирования данных выбран переход линии считывания к высокому потенциалу и использован режим положительного запуска. Переход к высокому потенциалу выбран потому, что в этот момент центральный процессор предполагает наличие на шине полезной информации и стробирует ее. Во многих случаях можно применять переход к низкому потенциалу, но данные иногда будут неверными, так как линия будет находиться в состоянии смены потенциала. Наблюдали 16 информационных байтов, которые для облегчения обсуждения разделили на четыре категории (табл. 4.2).

Таблица 4.2. Группировка данных по категориям

Категория

Категория

Категория 1. Код операции 21н наблюдается как часть выборки информации, потому что центральный процессор производит выборку кода операции путем считывания памяти. В этом случае анализатор запускается не тогда; когда центральный процессор находится в начале про-


граммы, а позднее, в момент появления адреса 2100и. Дело в том, что нельзя предсказать, в каком месте анализатор прервет программу. Первый информационный байт 21 н, считанный в центральный процессор после того, как задействован анализатор, инициирует запуск.

Категория 2. Код операции 75н считывается в центральный процессор. Содержимое регистра L переходит на информационную шину и п ОЗУ. Осуществление этого означает для центрального процессора выполнение операции записи в память, так что содержимое регистра L не запоминается в анализаторе.

Категория 3. Код операции 2DE считывается в центральный процессор.

Категория 4. Код операции С2Ы и связанный с ним адрес 2003п счи-тываются в центральный процессор. Если признак нуля не установлен, программа периодически повторяется. Эти данные иллюстрируют прохождение цикла центральным процессором. Если бы мы хотели убедить ся в том, что центральный процессор проходит циклы в соответствии с составленной программой и правильно выходит из них, была бы полезна задержка запуска. Увеличивая задержку запуска при каждом прогоне программы, можно наблюдать все циклы и выход из них. Не имея возможности использовать задержку запуска, мы предполагаем, что оставшаяся часть цикла выполняется правильно и выбираем запускающее слово 11н вне цикла, (табл. 4 3)

Таблица 4.3. Группировка данных по состояниям

Состояние

Состояние

Состояние 1. Первые три байта связаны с кодом операции и адресом, считываемым из памяти.

Состояние 2. Код операции LD ВС, 0010ц считывается из памяти.

Состояние 3. Кодами операции LDIR являются ED и ВО. Центральный процессор переносит информацию из ячейки памяти (HL) в дру.ую ячейку (DE) и дважды дает счетчику команд отрицательное приращение. Эти результаты снова считываются центральным процессором в коде операции LDIR. Так продолжается до тех пор, пока счетчик ВС=б.



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51] [стр.52] [стр.53] [стр.54] [стр.55] [стр.56] [стр.57] [стр.58] [стр.59] [стр.60] [стр.61] [стр.62] [стр.63] [стр.64] [стр.65] [стр.66] [стр.67] [стр.68] [стр.69] [стр.70] [стр.71] [стр.72] [стр.73] [стр.74] [стр.75] [стр.76] [стр.77] [стр.78] [стр.79] [стр.80] [стр.81] [стр.82] [стр.83] [стр.84] [стр.85] [стр.86] [стр.87] [стр.88] [стр.89] [стр.90] [стр.91] [стр.92] [стр.93] [стр.94] [стр.95] [стр.96] [стр.97] [стр.98] [стр.99] [стр.100] [стр.101] [стр.102] [стр.103] [стр.104] [стр.105] [стр.106] [стр.107] [стр.108] [стр.109] [стр.110] [стр.111] [стр.112] [стр.113] [стр.114] [стр.115] [стр.116] [стр.117] [стр.118] [стр.119] [стр.120] [стр.121] [стр.122] [стр.123] [стр.124] [стр.125] [стр.126] [стр.127] [стр.128] [стр.129] [стр.130] [стр.131] [стр.132] [стр.133] [стр.134] [стр.135] [стр.136] [стр.137]