Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР1_метод_корр_2011.doc
Скачиваний:
14
Добавлен:
02.04.2015
Размер:
1.85 Mб
Скачать

Примечания:

А. Все константы (адреса) указываются в 16-ричном формате, т. е. байт данных записывается в виде двух цифр/букв, адрес/двухбайтовая константа – в виде четырех цифр/букв, при этом, если для записи констант (адресов) используется меньше цифр/букв, необходимо слева дописать нужное количество нулей.

Б. Во втором столбце таблицы указываются лишь те регистры/ячейки памяти, которые задействованы во фрагменте.

В. Символ “X” означает неопределенное содержимое регистра.

Г. Пустая клетка означает, что содержимое регистра не изменилось.

Поясним, как изменяется состояние регистров и памяти после выполнения каждой команды. Команда SUB вычитает из содержимого аккумулятора содержимое ячейки, адресуемой регистровой парой H-L, так как в паре H-L находится адрес 0820, то будет вычитаться код 38. При вычитании он инвертируется, увеличивается на 1 и складывается с кодом 80. Результат 48 фиксируется в аккумуляторе, а признаки результата – в регистре F (F=06, признак переноса Y при вычитании устанавливается инверсно).

После выполнения команды ANI 0F0H устанавливается А= 40, F= 02. Затем команда STAX В засылает результат 40 по адресу, находящемуся в регистровой парс В-С, т.е. в ячейку 0833. Команда CNZ 38Н является командой условного вызова подпрограммы, т. е. вызов подпрограммы происходит, если Z=0. В данном примере условие выполняется, поэтому в команде выполняются следующие действия:

1) содержимое счетчика команд (адрес команды, следующей за командой CNZ) записывается в стеке;

2) в РС загружается адрес перехода 38.

Таким образом, управление передается первой команде подпрограммы, после выполнения подпрограммы управление будет передано команде, следующей за командой CNZ.

  1. Циклограммы(временные диаграммы) выполнения отдельных команд фрагмента.

После оценки состояния регистров и памяти можно перейти к построению временной диаграммы выполнения программы. Для рассмотренного случая она приведена на рис. 4.Передача байта состояния по шине данных для упрощения диаграммы не показана, однако в отчете она должна присутствовать. Количество тактов в каждом цикле команд указано в 5 графе табл.2. Передачи информации при выполнении команд SUB, ANI, STAX проанализируйте самостоятельно. Механизм действия команды CNZ требует дополнительного пояснения.

В первом цикле процессор получает код команды 04 (рис.4), во 2 и 3 циклах получает адрес перехода 0038 и записывает его в двухбайтовый регистр временного хранения. Если условие NZ (Z = 0) не соблюдено, 4 и 5 циклы не выполняются и процессор выбирает из памяти следующую за CNZ команду.

Рис.3 Временные диаграммы

Если условие NZ выполнено, в 4 и 5 циклах содержимое PC спасается в стеке и затем в РС из регистра временного хранения загружается адрес перехода 0038.

Аналогично сокращается на 2 цикла длительность команд типа С&& и R&& при невыполнении условий &&.

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. В чем заключаются отличия особого цикла M1, выполняемого при обработке прерываний, от стандартного?

2. Почему в особом цикле M1 не инкрементируется программный счетчик?

3. Каково назначение и разрядность пpoграммно-управляемых регистров процессора?

4. Задано следующее исходное состояние регистров и памяти (в 16-ричном коде)

А=80 F=43 B=80 C=33 D=80 Е=32 H=80 L=20 SP=87D0 PC=8006 (8020)=38 (8021)=00 (87D0)=30 (87D1)=40

Нарисуйте и поясните временные диаграммы выполнения одной из следующих команд:

CNZ 102H XTHL LHLD 8020H INK M STA 8030H IN 20H POP В

5. В аккумуляторе А находится код ЗЕ, в регистре признаков F – код 02. Каково будет состояние А и F после выполнения одной из следующих команд:

AD1 3FH SUI 40H ANI 7 XRI 5EH ORI 25H CPI 77H RAL RRC

6. Предложите несколько вариантов взаимного обмена содержимого регистровых пар В-С и D-E. Оцените быстродействие (в тактах) предложенных вариантов.

7. Составьте программу для определения паритета находящегося в аккумуляторе кода.

8. Предложите 4 варианта записи двухбайтового числа из ячеек 8030, 8031 в ячейки 8050, 8051 соответственно. Оцените быстродействие (в тактах) предложенных вариантов.