Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств
300 Микроконтроллеры AVR от азов программирования... St _________________________________________________________ Косвенная запись в память. Команда имеет три модификации: st W,Rd st W+,Rd st -W,Rd, где W — это одна из регистровых пар (X, Y или Z). Rd — имя одного из регистров общего назначения. Независимо от модификации команда выполняет запись содержимого регистра Rd в ОЗУ по адресу, который хранится в регистровой паре W. При этом первая модификация команды не изменяет содержимое регистровой пары W. Вторая модификация увеличивает содержимое регистровой пары на единицу после того, как произойдет запись. А тре тья модификация команды уменьшает на единицу содержимое регистро вой пары перед тем, как произойдет запись в ОЗУ В строке 75 нашей программы (см. листинг 5.19) содержимое реги стра XL записывается в ОЗУ по адресу, который хранится в регистровой паре Z. После этого содержимое регистровой пары Z увеличивается на единицу. Id _________________________________________________________ Косвенное чтение из памяти. Данная операция является обратной по отношению к предыдущей. Она тоже имеет три модификации: Id Rd,W Id Rd,W+ Id Rd,-W Операция производит чтение байта из ячейки ОЗУ, адрес которой хранится в регистровой паре W (то есть X, Y или Z) и записывает про читанный байт в регистр общего назначения Rd. Содержимое регистро вой пары так же, как и в предыдущем случае, ведет себя по-разному, в зависимости от модификации команды. То есть оно либо не изменяется, либо увеличивается после чтения, либо уменьшается прежде, чем байт будет прочитан. В строке 97 нашей программы (листинг 5.19) читается байт из ячейки ОЗУ адрес которой хранится в регистровой паре Z, и записывается в регистр data. Затем содержимое регистровой пары Z увеличивается на единицу. brsh _________________________________________________________ Переход по условию «больше или равно». В качестве условия для пере хода выступает содержимое флага переноса С. Флаг переноса устанав ливается по результатам операции сравнения или вычитания. Команда имеет всего один параметр — относительный адрес перехода. Переход выполняется в том случае, если флаг переноса равен нулю. А это проис ходит только тогда, когда в предшествующей операции сравнения (вычи тания) второй операнд окажется больше или равен первому.
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==