Микроконтроллеры для систем автоматики - часть 5

 

  Главная      Учебники - Производство     

 

поиск по сайту           правообладателям

 

 

 

 

 

 

 

 

 

содержание   ..  3  4  5  6   ..

 

 

Микроконтроллеры для систем автоматики - часть 5

 

 

 

19 

 

 

 

 

 

General Purpose Registers 

 

Код инструкции 

 

    R0 

 

 

15            13  12            5  4 

0  

R1 

 

 

OP 

К d 

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

   

 

 

Rd 

 

 

 

 

 

 

 

 

 

 

   

 

  R31 

 

Рис. 3.6. Формат инструкции с непосредственной адресацией данных 

Прямая адресация  

При прямой адресации операндами могут быть 8-битные переменные, хранящиеся 

в регистрах общего назначения, ячейках памяти данных и памяти программ или в регистрах 
ввода/вывода, а также отдельные биты этих регистров. Эти операнды указываются прямо в 
инструкции. 

О

О

п

п

е

е

р

р

а

а

ц

ц

и

и

и

и

 

 

с

с

 

 

о

о

д

д

н

н

и

и

м

м

 

 

р

р

е

е

г

г

и

и

с

с

т

т

р

р

о

о

м

м

 

 

о

о

б

б

щ

щ

е

е

г

г

о

о

 

 

н

н

а

а

з

з

н

н

а

а

ч

ч

е

е

н

н

и

и

я

я

 

 

Операнд  инструкции  содержится  в  одном  из  регистров  общего  назначения - Rd 

(регистр-приемник результата ; 0 

 d 

  31). Номер регистра  содержится в коде инструкции. 

Например,  

inc Rd  Increment register 

Rd <- Rd + 1 

dec Rd  Decrement register 

Rd <- Rd 1 

clr Rd  Clear register 

Rd <- $00 

ser Rd  Set register 

Rd <- $FF 

Формат инструкции показан на рис. 3.7. В 16-битном коде адрес регистра занимает 

5 младших бит. 

 

 

 

 

 

General Purpose Registers 

 

Код инструкции  

R0 

 

 

15 5 

0  

R1 

 

 OP 

 

 

   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

   

 

 

Rd   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

   

 

 

R31 

 

Рис. 3.7. Формат инструкции с прямой адресацией одного регистра общего назначения 

О

О

п

п

е

е

р

р

а

а

ц

ц

и

и

и

и

 

 

с

с

 

 

д

д

в

в

у

у

м

м

я

я

 

 

р

р

е

е

г

г

и

и

с

с

т

т

р

р

а

а

м

м

и

и

 

 

о

о

б

б

щ

щ

е

е

г

г

о

о

 

 

н

н

а

а

з

з

н

н

а

а

ч

ч

е

е

н

н

и

и

я

я

 

 

Операнды инструкции содержатся в двух регистрах общего назначения:  

º Rd 

регистр-приемник результата ( 0 

 d 

  31) 

º Rr 

регистр-источник.  

 

20 

Например,  

add Rd, 

Rr addition two registers 

Rd <- Rd + Rr 

sub  Rd, Rr  subtract two registers 

Rd <- Rd - Rr 

and Rd, 

Rr logical and two registers 

Rd <- Rd 

Rr 

or Rd, 

Rr logical or two registers 

Rd <- Rd v Rr 

При выполнении инструкций результат операции записывается в регистр-приемник 

Rd. Номера регистров  содержатся в коде инструкции (рис. 3.8). 

 

 

 

 

 

General Purpose Registers 

 

Код инструкции  

R0 

 

 

15 

9                5  4 

0  

R1 

 

 OP  r  d 

 

   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

   

 

 

Rd   

 

 

 

 

 

 

 

 

  

   

 

 

Rr   

 

 

 

 

 

 

 

 

  

   

 

 

R31 

 

Рис. 3.8. Формат инструкции с прямой адресацией двух регистров общего назначения 

Б

Б

и

и

т

т

о

о

в

в

ы

ы

е

е

 

 

о

о

п

п

е

е

р

р

а

а

ц

ц

и

и

и

и

 

 

с

с

 

 

р

р

е

е

г

г

и

и

с

с

т

т

р

р

о

о

м

м

 

 

о

о

б

б

щ

щ

е

е

г

г

о

о

 

 

н

н

а

а

з

з

н

н

а

а

ч

ч

е

е

н

н

и

и

я

я

 

 

Операндом команды является бит в регистре общего назначения. Номер бита (b) и 

номер регистра (d или r) задается в коде инструкции. 

Например,  

bld Rd, 

b  bit load from T to register 

Rd(b) <- T 

bst Rr, 

b  bit store from register to T 

T <- Rr(b) 

Вторым операндом в инструкциях является бит сохранения копии Т (Copy Storage)  

регистра статуса SREG. 

В 16-битном формате команды (рис. 3.9) номер бита и номер регистра занимают 

младшие 8 бит. 

 

 

 

 

 

General Purpose Registers 

 

 

 

7                   0   

 

Код инструкции  

R0 

 

 

15              8 

7              3  2 

0  

R1 

 

 OP d 

или r 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 b      Rd  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

 

 

 

R31 

 

Рис. 3.9. Формат инструкции с прямой адресацией бита в регистре общего назначения 

 

21 

О

О

п

п

е

е

р

р

а

а

ц

ц

и

и

и

и

 

 

с

с

 

 

р

р

е

е

г

г

и

и

с

с

т

т

р

р

о

о

м

м

 

 

в

в

в

в

о

о

д

д

а

а

/

/

в

в

ы

ы

в

в

о

о

д

д

а

а

 

 

Операнды команды содержатся в одном из регистров общего назначения Rd и в 

одном из регистров ввода/вывода (с номером $P).  

Например,  

in Rd, 

Input port 

Rd <-  P 

out P, 

Rr Output port  

P <-  Rr 

В 16-битном формате команды номера регистров занимают младшие 11 бит (рис. 

3.10). 

 

 

 

 

 

Input Output Registers (Ports) 

 

Код инструкции  

$00 

 

 

15               11  10                6  5 

0  $01 

 

 OP  d 

P   

$02  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

 

 

 

$P   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

 

 

 

$3F   

Рис.3.10. Формат команды с прямой адресацией регистра ввода/вывода 

Б

Б

и

и

т

т

о

о

в

в

ы

ы

е

е

 

 

о

о

п

п

е

е

р

р

а

а

ц

ц

и

и

и

и

 

 

с

с

 

 

р

р

е

е

г

г

и

и

с

с

т

т

р

р

о

о

м

м

 

 

в

в

в

в

о

о

д

д

а

а

/

/

в

в

ы

ы

в

в

о

о

д

д

а

а

 

 

Операндом  команды  является  бит  в  ввода/вывода.  Побитно  адресуемыми 

регистрами в пространстве ввода вывода являются регистры с номерами $00….$1F.  

Например,  

sbi P*,b Set Bit in I/O Register 

I/O(P,b) <-  1 

cbi P*,b Clear Bit in I/O Register 

I/O(P,b) <-  0 

Номер  бита (b) и  номер  побитно  адресуемого  регистра P* задается  в  коде 

инструкции (рис. 3.11). 

 

 

 

 

 

Input Output Registers 

 

 

 

7                      0   

 

Код инструкции  

$00 

 

 

15           9 

8            3  2 

0  $01 

 

 OP  Р b 

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 b      $P*  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

$1F  

Рис. 3.11. Формат команды с прямой адресацией в регистре ввода/вывода 

 

22 

О

О

п

п

е

е

р

р

а

а

ц

ц

и

и

и

и

 

 

с

с

 

 

п

п

а

а

м

м

я

я

т

т

ь

ь

ю

ю

 

 

д

д

а

а

н

н

н

н

ы

ы

х

х

 

 

Операнды команды содержатся в одном из регистров общего назначения Rd или Rr 

и в одной из ячеек памяти данных (с номером $К). 

Например,  

lds Rd, 

k  load direct from SRAM 

Rd <-  (k) 

sts k, 

Rr  store direct to SRAM 

(k) <-  Rr 

 В 32-битном коде инструкции (рис. 3.12) адрес ячейки памяти занимает младшие 

16 бит (младшее 16-битное слово), а номер регистра хранится в битах с номерами 16…19 
(четыре младших бита старшего 16-битного слова) 

 

 

 

 

 

Data Memory (SRAM) 

 

Код инструкции   $0000 

 

 

31                

20 19 

16  $0001 

 

 OP d 

или r 

 

$0002 

 

 

К 

 

 

 

 

 

 

 

 

 

 

 

  

   

 

 

$K   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

   

 

 

$045F  

Рис.3.12. Формат команды с прямой адресацией памяти данных 

О

О

п

п

е

е

р

р

а

а

ц

ц

и

и

и

и

 

 

с

с

 

 

п

п

а

а

м

м

я

я

т

т

ь

ь

ю

ю

 

 

п

п

р

р

о

о

г

г

р

р

а

а

м

м

м

м

 

 

В инструкции указывается адрес ячейки памяти программ. Обычно таким образом 

адресуются различные команды переходов и обращения к подпрограммам. 

Например,  

jmp k 

Jump 

PC <- k 

call k 

Call Subroutine 

PC <- k 

Выполнение  программы  начинается  с  адреса,  записанного  непосредственно  в 

команде 

В 32-битном формате команды адрес ячейки памяти программ занимает младшие 

16 бит (рис. 3.13). 

  

   

 

Program 

Memory 

 

 

 

15                   0 

 

 

Код инструкции   $0000 

 

 

31                

  

16  $0001 

 

 OP 

 

$0002 

 

 k 

 

 

 

 

 

 

 

 

 

 

 

  

   

 

 

$k   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

$1FFF  

Рис.3.13. Формат команды с прямой адресацией памяти программ 

 

 

 

 

 

 

 

содержание   ..  3  4  5  6   ..