Поиск по сайту: |
|
По базе: |
|
Главная > Обзоры по типам > Микроконтроллеры > ARM > Система команд |
|
|||||||||||||||||||||||||||||||
Умножение (MULL) и Умножение с накоплением (MLAL) с 64-битным результатом (long)Эти команды будут выполнены, если условие истинно. Все различные условия их выполнения перечислены в таблице 6. Машинный код обеих команд приведен на рис.22. Команды MULL и MLAL позволяют выполнить целочисленное умножение двух 32-битных операндов и получить 64-битный результат. Умножение со знаком и без знака может быть как с накоплением, так и без него. Поэтому существуют четыре разновидности умножения с 64-битным результатом.
В обеих командах умножения без накопления (UMULL и SMULL) используется следующая форма записи: RdHi,RdLo := Rm*Rs. Младшие 32 бита результата заносятся в регистр RdLo, а старшие 32 бита - в регистр RdHi. В обеих командах умножения c накоплением (UMLAL и SMLAL) используют два 32-битных регистра, которые умножаются друг на друга, и к полученному результату добавляется 64-битное слагаемое: RdHi,RdLo := Rm*Rs + RdHi,RdLo. Младшие 32 бита добавляемого к результату умножения слагаемого вычитываются их регистра RdLo, а старшие 32 бита - из регистра RdHi. После чего младшие 32 бита результата заносятся в регистр RdLo, а старшие 32 бита - в регистр RdHi. Команды UMULL и UMLAL производят действия только над целыми двоичными числами без знака (unsigned) и результат своего выполнения записывают как 64-битное целое число без знака. Команды SMULL и SMLAL производят действия только над целыми двоичными числами со знаком (signed) с дополнением до 2-х, а результат своего выполнения записывают как 64-битное целое число со знаком. Ограничения операнда Недопустимо использование регистра R15 в качестве регистра-операнда или регистра-результата. Регистры RdHi, RdLo и Rm должны быть определены как различные регистры. Флаги регистра CPSR Возможность воздействия на флаги регистра CPSR определяется битом S в соответствующем поле команды. Флаги N и Z устанавливаются в соответствии с результатом умножения: флаг N становится равным 63-му биту результата, а флаг Z устанавливается только, если все 64 бита результата - нули. Флаги С и V устанавливается в неизвестные состояния. Число машинных тактов при выполнении Команда MULL выполняется за 1S + I(m + 1) машинных тактов, а команда MLAL - за 1S + I(m + 2) машинных тактов, где S и I зависят от типа машинных тактов, m - количество 8-битных множителей, необходимых для выполнения умножения, и зависит содержимого операнда-множителя Rs. Возможные значения m перечислены ниже. Для команд умножения со знаком (SMULL, SMLAL):
Синтаксис в ассемблере Таблица 9. Синтаксис команд умножения с 64-битным результатом
Примеры
<---- Вернуться к Системе команд ---> Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|