Поиск по сайту:

 


По базе:  

микроэлектроника, микросхема, микроконтроллер, память, msp430, MSP430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, SED1335, mega128, avr, mega128  
  Главная страница > Обзоры по типам > Микроконтроллеры > MAXQ

реклама

 




Мероприятия:




Операции с флагами состояния микропроцессора

Регистр флагов состояния микропроцессора (PSF) содержит пять флагов, которые используются для указания и запоминания результатов логических и арифметических операций, причем четверо из этих флагов могут использоваться для формирования условного ветвления программы.

Флаг знака

Флаг знака (PSF.6) отражает текущее состояние старшего разряда активного аккумулятора (Acc.7 для MAXQ10 или Acc.15 для MAXQ20). Если выполняется арифметическая операция со знаком, то этот флаг указывает, является ли значение в аккумуляторе положительным или отрицательным.

Так как флаг знака является динамическим отражением старшего разряда активного аккумулятора, то любая команда, которая изменяет значение в активном аккумуляторе, потенциально может изменить значение флага знака. Кроме того, любая команда, которая изменяет текущий активный аккумулятор (включая автоматические инкремент/декремент АР), также может изменить флаг знака.

Следующая операция использует флаг знака:

  • JUMP S, src (переход если флаг знака установлен)

Флаг нуля

Флаг нуля (PSF.7) динамический флаг, который зависит от текущего значения активного аккумулятора Acc. Если все биты в активном аккумуляторе являются нулевыми, то флаг нуля устанавливается равным единице, в остальных случаях он равен нулю.

Так как флаг нуля является динамическим отражением нулевого состояния текущего активного аккумулятора (Acc = 0), то любая команда, которая изменяет значение в активном аккумуляторе потенциально может изменить значение флага нуля. Кроме того, любая команда, которая изменяет текущий активный аккумулятор (включая автоматические инкремент/декремент АР), также может изменить флаг нуля.

Следующие операции используют флаг нуля:

  • JUMP Z, src (переход если флаг нуля установлен)
  • JUMP NZ, src (переход если флаг нуля очищен)

Флаг эквивалентности

Флаг эквивалентности (PSF.0) - статический флаг, установленный командой CMP. Если содержимое источника команды CMP равен содержимому активного аккумулятора, то флаг эквивалентности устанавливается в единицу. Если же сравниваемые значения различны, то флаг эквивалентности устанавливается равным нулю.

Следующие команды используют значение бита эквивалентности. Обратите внимание, что 'src' (источник) для команд JUMP E/NE должен быть определен непосредственно.

  • JUMP E, src (переход если бит эквивалентности установлен)
  • JUMP NE, src (переход если бит эквивалентности очищен)

В дополнение к команде CMP, любая команда, использующая PSF в качестве получателя, может изменить состояние флага эквивалентности.

Флаг переноса

Флаг переноса (PSF.1) - статический флаг, указывающий, что при последней выполненной команде ADD/ADDC или SUB/SUBB был перенос или заимствование. В отличие от других флагов состояния, это флаг может быть установлен или очищен явно, а также может использоваться в качестве универсального операнда многими другими командами.

Следующие команды могут изменить флаг переноса:

  • ADD src (сложение источника с активным аккумулятором)
  • ADDC src (сложение источника и бита переноса с активным аккумулятором )
  • SUB src (вычитание источника из активного аккумулятора)
  • SUBB src (вычитание источника и бита переноса из активного аккумулятора)
  • SLA, SLA2, SLA4 (арифметический сдвиг влево активного аккумулятора)
  • SRA, SRA2, SRA4 (арифметический сдвиг вправо активного аккумулятора)
  • SR (сдвиг вправо активного аккумулятора)
  • RLC/RRC (циклический перенос аккумулятора влево/вправо через бит переноса)
  • MOVE C, Acc.<b> (установка бита переноса в соответствии с выбранным битом активного аккумулятора)
  • MOVE C, #i (явная установка бита переноса в соответствии с переданным значением i )
  • CPL C (дополнение бита переноса)
  • AND Acc.<b>
  • OR Acc.<b>
  • XOR Acc.<b>
  • MOVE C, src.<b> (копирование в бит переноса выбранного бита регистра)

Некоторые команды используют PSF в качестве получателя

Следующие команды используют значение флага переноса:

  • ADDC src (добавление источника и бита переноса к активному аккумулятору)
  • SUBB src (вычитание источника и бита переноса из активного аккумулятора)
  • RLC/RRC (циклический сдвиг активного аккумулятора влево/вправо через бит переноса)
  • CPL C (дополнение бита переноса)
  • MOVE Acc.<b>, C (установка выбранного бита аккумулятора в соответствии с битом переноса)
  • AND Acc.<b> (бит переноса = бит переноса AND выбранный бит активного аккумулятора)
  • OR Acc.<b> (бит переноса = бит переноса OR выбранный бит активного аккумулятора)
  • XOR Acc.<b> (бит переноса = бит переноса XOR выбранный бит активного аккумулятора)
  • JUMP C, src (переход если флаг переноса установлен)
  • JUMP NC, src (переход если флаг переноса очищен)

Флаг переполнения

Флаг переполнения (PSF.2) - статический флаг, указывающий, что при выполнении последней команды ADD/ADDC или SUB/SUBB был перенос или заимствование, но перенос или заимствование был из старшего разряда активного аккумулятора. Флаг переполнения полезен при выполнении арифметических операций со знаком.

Следующие команды могут изменить флаг переполнения:

  • ADD src (добавление источника к активному аккумулятору)
  • ADDC src (добавление источника и бита переноса к активному аккумулятору)
  • SUB src (вычитание источника из активного аккумулятора)
  • SUBB src (вычитание источника и бита переноса из активного аккумулятора)


<-- Предыдущая страница Оглавление Следующая страница -->





 
Впервые? | Реклама на сайте | О проекте | Карта портала
тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru
©1998-2023 Рынок Микроэлектроники