8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 65 66 67 68 69 70 71 ... 195

FMULS Rd, Rr

Умножение дробных чисел со знаком

Операция

Rl:RO = (RdxRr)«l

Код операции

00000011

lddd Оггг

1 слово (2 байта)

Операнды

16<d<23,16<r<23

Описание

Осуществляет умножение дробных чисел со знаком, находящихся в регистрах Rd и Rr. Формат чисел — 1.7 (старший бит — целая часть, 7 младших битов — дробная). Результат умножения (формат результата — 2.14) сдвигается влево на один бит для приведения к формату 1.15 и заносится в регистровую пару R1:R0. Обратите внимание, что результат умножения 0x80 (-1) на 0x80 (-1) равен 0x8000 (-1). Поэтому при сдвиге возникнет переполнение дополнительного кода, которое необходимо отслеживать и обрабатывать программно

Регистр SREG

I

Т

Н

S

V

N

Z

С

-

-

-

-

-

-

о

о

Число тактов

2

Пример

fmuls r23,r22 movw r23:r22,rl:r0

; Умножить г23 и г22

; Скопировать результат обратно

; в г23:г22

FMULSU Rd, Rr

Умножение дробного беззнакового числа и дробного числа со знаком

Операция

Rl:R0 = (RdxRr) «1

Код операции

00000011 ldddlrrr

1 слово (2 байта)

Операнды

16<d<23,16<r<23

Описание

Осуществляет умножение дробных чисел, находящихся в регистрах Rd (число со знаком) и Rr (число без знака). Формат чисел — 1.7 (старший бит — целая часть, 7 младших битов — дробная). Результат умножения (формат результата — 2.14) сдвигается влево на один бит для приведения к формату 1.15 и заносится в регистровую пару R1:R0

Регистр SREG

I

Т

н

S

V

N

Z

С

-

-

-

-

-

-

о

о

Число тактов

2

Пример

fmulsu r23,r22 rrovw r23:r22,rl:r0

; Умножить г23 и г22

; Скопировать результат обратно

; в r23:R22


ICALL

Косвенный вызов подпрограммы

Операция

STACK =

PC + 1; PCI15..0] = Z, PQ21..16] = 0; SP

= SP- 2 (3)

Код операции

1001 0101 0000 1001

1 слово (2 байта)

Операнды

Нет операндов

Описание

Косвенный вызов подпрограммы. Выполняет переход к подпрограмме, адрес которой находится в регистре Z. Адрес следующей за ICALL команды (2 или 3 байта) сохраняется в стеке. Область действия команды — младшие 128 Кбайт памяти программ

Регистр SREG

I

T

H

S

V

N

Z

С

-

-

-

-

-

-

-

-

Число тактов

3(в моделях с PC < 16 битов)

4(в моделях с PC > 16 битов)

Пример

mov r30,r0 icall

; Задать смещение

; Вызвать подпрограмму, адрес которой ; находится в регистрах г31:г30

IJMP

Косвенный переход

Операция

PQ15..0]

= Z, РС[21..16] = 0

Код операции

10010100 0000 1001

1 слово (2 байта)

Операнды

Нет операндов

Описание

Косвенный безусловный переход. Выполняет переход по адресу, находящемуся в регистре Z. Область действия команды — младшие 128 Кбайт памяти программ

Регистр SREG

I

Т

Н

S

V

N

Z

С

-

-

-

-

-

-

-

-

Число тактов

2

Пример

mov ijmp

r30,r0 ; Задать смещение

; Перейти по адресу г31:г30


IN Rd, А

Пересылка значения из РВВ в РОН

Операция

Rd = 1/0(А)

Код операции

1011 OAAd dddd АААА

1 слово (2 байта)

Операнды

0<d < 31,0< А<63

Описание

Пересылает содержимое регистра ввода/вывода А в регистр общего назначения Rd

Регистр SREG

I

T

н

S

V

N

Z

С

-

-

-

-

-

-

-

-

Число тактов

1

Пример

in r25,$16 cpi r25,4 breq exit

; Прочитать ; Сравнить ; Перейти,

содержимое порта В содержимое с константой если г25 = 4

exit:

INCRd

Инкрементирование РОН

Операция

Rd = Rd + 1

Код операции

1001 010d dddd 0011 1 слово (2 байта)

Операнды

0 d 31

Описание

Увеличивает содержимое регистра Rd на единицу. Так как эта команда не влияет на флаг переноса С, она идеально подходит для организации счетчика числа итераций цикла при выполнении вычислений над многобитными числами. При работе с беззнаковыми числами для выполнения перехода в соответствии с результатом выполнения команды могут использоваться только команды условного перехода BREQ и BRNE. При работе с числами в дополнительном коде могут использоваться все команды условного перехода для знаковых проверок. Флаг V устанавливается в 1 только в том случае, если до выполнения операции в регистре находилось значение $7F

Регистр SREG

I Т Н S V N Z С

— — — о о о о —

Число тактов

1

Пример

clr г22 ; Очистить регистр г22 loop:

inc r22 ; r22 = г22 + 1 cpi r22,$4F ;

brne loop ; Продолжать цикл, если r22 * $4F



0 ... 65 66 67 68 69 70 71 ... 195