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

 


По базе:  

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

реклама

 




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




Относительная адресация

Относительную адресацию, для расчета действительного адреса перехода (effective address -EA), используют все команды условных переходов. CPU рассчитывает адрес назначения условного перехода суммируя байт (со знаком), следующий за операционным кодом, с содержимым счетчика команд. Если условия перехода истинны, то PC загружается рассчитанным действительным адресом (EA). Если условия перехода ложны, то CPU выполняет следующую команду. Смещение является байтом дополнения до двух со знаком, что обеспечивает диапазон перехода от -128 до 127 байтов от адреса ячейки, следующей за командой перехода.

Четыре новых операционных кода переходов тестируют биты N, Z и V (переполнение) для определения соответствующего знака операнда. Этими новыми операционными кодами являются команды BLT, BGT, BLE и BGE и они разработаны для использования в операциях знаковой арифметики.

Большинство ассемблеров автоматически рассчитывают смещение и проверяют пространство перехода.

В таблице 9 приведен перечень команд, использующих относительную адресацию.

В приведенном ниже примере используются две команды относительной адресации: BLT (перейти, если меньше, с учетом знака) и BRA (переходить всегда). В этом примере содержимое аккумулятора сравнивается с величиной -2 (со знаком). Поскольку величина #1 больше -2, то переход к TAG не происходит.

Машинный код    Метка    Операция     Операнд     Комментарий

A601              TAG      LDA          #1          ;A = 1
A1FE                       CMP          #-2         ; Сравнение с -2
91FA                       BLT          TAG  ; Переход, если значение A меньше -2
20FE              HERE     BRA          HERE ; Переход в любом случае



Таблица 9. Команды относительной адресации

Мнемоника Команда
BCC Перейти, если перенос очищен (Branch if Carry Clear)
BCS Перейти, если перенос установлен (Branch if Carry Set)
BEQ Перейти, если равно (Branch if Equal)
BGE Перейти, если больше или равно, с учетом знака (Branch if Greater Than or Equal (Signed))
BGT Перейти, если больше, с учетом знака (Branch if Greater (Signed))
BHCC Перейти, если полуперенос очищен (Branch if Half-Carry Clear)
BHCS Перейти, если полуперенос установлен (Branch if Half-Carry Set)
BHI Перейти, если больше (Branch if Higher)
BHS (BCC) Перейти, если больше или равно (Branch if Higher or Same)
BIH Перейти, если линия прерывания на высоком уровне (Branch if Interrupt Line High)
BIL Перейти, если линия прерывания на низком уровне (Branch if Interrupt Line Low)
BLE Перейти, если меньше или равно, с учетом знака (Branch if Less Then or Equal (Signed))
BLO (BCS) Перейти, если меньше (Branch if Lower)
BLS Перейти, если меньше или равно (Branch if Lower or Same)
BLT Перейти, если меньше, с учетом знака (Branch if Less Then (Signed))
BMC Перейти, если маска прерывания очищена (Branch if Interrupt Mask Clear)
BMI Перейти, если минус (Branch if Minus)
BMS Перейти, если маска прерывания установлена (Branch if Interrupt Mask Set)
BNE Перейти, если не равно (Branch if Not Equal)
BPL Перейти, если плюс (Branch if Plus)
BRA Переходить всегда (Branch Always)
BRCLR Перейти, если бит n памяти очищен (Branch if Bit n in Memory Clear)
BRSET Перейти, если бит n памяти установлен (Branch if Bit n in Memory Set)
BRN Не переходить никогда (Branch Never)
BSR Перейти в подпрограмму (Branch to Soubroutine)


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





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