Лекция: Id register,Z

Эта команда косвенно загружает (load)в рабочий регистр registerзначение, которое находится по адресу, указываемому регистром Z. Если сформировать таблицу значений, занимающих последовательные ячейки памяти, изменяя значение Z, можно считывать данные, находящиеся в этих ячейках. Например, мы храним коды для отображения на семисегментном индикаторе цифр от до 9 в регистрах R20...R29. Тогда запишем в регистр Z число 20 (чтобы он указывал на начало таблицы – регистр R20) и прибавим к регистру то число, которое хотим преобразовать. Используя после этого операцию косвенного чтения, мы получим семисегментный код, соответствующий этому числу:

Алгоритм работы этой программы:

1. Записываем адрес начального регистра (R20) в регистр ZL (младший регистр относительного адреса). ldi ZL,20

2. Прибавляем к регистру ZL цифру, семисегментный код которого хотим выставить в порте B. Add ZL,digit

3. Записываем адрес регистра, в котором хранится семисегментный код в рабочий регистр.

4. Выставляем на выходах порта B семисегментный код символа.

 

Ldi ZL,20; Устанавливаем ZL на адрес R20

Add ZL,digit; Прибавляем цифру к ZL

Ld temp,Z; Читаем Rx в temp

Out PortB,temp; Выводим temp в порт В

Необходимо, перед этим занести все семисегментные коды в соответствующие регистры:

 

еще рефераты
Еще работы по информатике