русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Команды АЛУ


Дата добавления: 2014-10-07; просмотров: 2875; Нарушение авторских прав


Арифметико-логическое устройство (АЛУ) (англ. arithmetic and logic unit, ALU) — блок процессора, который под управлением устройства управления (УУ) служит для выполнения арифметических и логических преобразований (начиная от элементарных) над данными, представляемыми в виде машинных слов, называемыми в этом случае операндами.

 

Арифметическо-логическое устройство в зависимости от выполнения функций можно разделить на две части:
микропрограммное устройство (устройство управления), задающее последовательность микрокоманд (команд);
операционное устройство (АЛУ), в котором реализуется заданная последовательность микрокоманд (команд).

 

Функции регистров, входящих в арифметическо-логическое устройство

  • Рг1 — сумматор (или сумматоры) — главный регистр АЛУ, в котором образуется результат вычислений;
  • Рг2,Рг3 — регистры операндов (слагаемого/сомножителя/делителя/делимого и др.) в зависимости от выполняемой операции;
  • Рг4 — регистр адреса (или адресные регистры), предназначенные для запоминания (бывает что формирования) адреса операндов результата;
  • Рг6 — k индексных регистров, содержимое которых используется для формирования адресов;
  • Рг7 — l вспомогательных регистров, которые по желанию программиста могут быть аккумуляторами, индексными регистрами или использоваться для запоминания промежуточных результатов.

Все выполняемые в АЛУ операции являются логическими операциями (функциями), которые можно разделить на следующие группы:

  • операции двоичной арифметики для чисел с фиксированной точкой;
  • операции двоичной (или шестнадцатеричной) арифметики для чисел с плавающей точкой;
  • операции десятичной арифметики;
  • операции индексной арифметики (при модификации адресов команд);
  • операции специальной арифметики;
  • операции над логическими кодами (логические операции);
  • операции над алфавитно-цифровыми полями.



 

Команды этой группы выполняют АЛУ операции между младшими полусловами регистров. Примечание: все команды этой группы влияют на флаги регистра CPSR.

 

OP THUMB ассемблер ARM эквивалент Действия
AND Rd, Rs ANDS Rd, Rd, Rs Rd:= Rd AND Rs
EOR Rd, Rs EORS Rd, Rd, Rs Rd:= Rd EOR Rs
LSL Rd, Rs MOVS Rd, Rd, LSL Rs Rd := Rd << Rs
LSR Rd, Rs MOVS Rd, Rd, LSR Rs Rd := Rd >> Rs
ASR Rd, Rs MOVS Rd, Rd, ASR Rs Rd := Rd ASR Rs
ADC Rd, Rs ADCS Rd, Rd, Rs Rd := Rd + Rs + Carry
SBC Rd, Rs SBCS Rd, Rd, Rs Rd := Rd - Rs - NOT Carry
ROR Rd, Rs MOVS Rd, Rd, ROR Rs Rd := Rd ROR Rs
TST Rd, Rs TST Rd, Rs Установить флаги регистра CPSR для Rd AND Rs
NEG Rd, Rs RSBS Rd, Rs, #0 Rd = -Rs
CMP Rd, Rs CMP Rd, Rs Установить флаги регистра CPSR для Rd - Rs
CMN Rd, Rs CMN Rd, Rs Установить флаги регистра CPSR для Rd + Rs
ORR Rd, Rs ORRS Rd, Rd, Rs Rd := Rd OR Rs
MUL Rd, Rs MULS Rd, Rs, Rd Rd := Rs * Rd
BIC Rd, Rs BICS Rd, Rd, Rs Rd := Rd AND NOT Rs
MVN Rd, Rs MVNS Rd, Rs Rd := NOT Rs

 

Все команды этого формата эквивалентны командам в режиме ARM согласно таблице 15. Число машинных тактов выполнения этих команд в режиме THUMB идентично с числом тактов выполнения ее в режиме ARM.

Примеры

 

EOR R3, R4 ; R3 := R3 EOR R4 и установить флаги условий.
ROR R1, R0 ; Сдвиг R1 вправо на число бит, указанное в R0,
  ; результат поместить в R1 и установить флаги условий.
NEG R5, R3 ; Вычесть содержимое R3 из нуля, разместить результат в регистре R5
  ; и установить флаги условий. Т.е. R5 = -R3.
CMP R2, R6 ; Установить флаги условий в зависимости от результата R2 - R6.
MUL R0, R7 ; R0 := R7 * R0 и установить флаги условий.


<== предыдущая лекция | следующая лекция ==>
Адресация памяти | Базирование и косвенные адреса


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.222 сек.