Научная статья на тему 'Система команд микропроцессорного ядра MicroBlaze'

Система команд микропроцессорного ядра MicroBlaze Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
141
36
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Зотов Валерий

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Система команд микропроцессорного ядра MicroBlaze»

Компоненты и технологии, № 2'2004 Софт

Продолжение. Начало в № 1'2004.

Система команд

микропроцессорного ядра MicroBlaze

Валерий Зотов

[email protected]

Команды сдвига данных

Инструкции этой группы предназначены для выполнения операций арифметического или циклического сдвига данных, хранящихся в регистре общего назначения, номер которого указывается в качестве второго параметра команды. В составе рассматриваемой группы команд можно выделить две подгруппы: основную и дополнительную. Инструкции сдвига данных, относящиеся к основной подгруппе, поддерживаются всеми элементами семейства микропроцессорных ядер МкгоЫаге по умолчанию. Дополнительные команды сдвига данных поддерживаются элементами этого семейства только при условии, что в процессе конфигурирования ядра МкгоЫаге включена соответствующая опция.

Основной набор инструкций сдвига содержит команды арифметического и циклического сдвига

ISRA Rd,Ra |

Регистр Ra

I SRC Rd,Ra |

Регистр Rd Регистр Ra

Ci

Регистр Rd

Carry Flag >■

Carry Flag

-■n

ISRL Rd,Ra |

Регистр Ra

\\\\\\\\\\\\\^

0-1 I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I

Регистр Rd

Рис. 13. Выполнение основных операций арифметического и циклического сдвига данных Таблица 12. Форматы основных команд арифметического и циклического сдвига данных

Carry Flag

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

Команда SRA Rd,Ra позволяет осуществить операцию арифметического сдвига вправо данных, которые содержатся в регистре с номером а, с сохранением состояния последнего (крайнего левого) разряда. Циклический сдвиг данных в регистре общего назначения с номером а на один разряд вправо, выполняемый через разряд переноса (займа) CARRY Flag регистра статуса, осуществляется с помощью команды SRCRd,Ra. Инструкция SRL Rd,Ra предназначена для реализации операции арифметического сдвига данных, содержащихся в регистре с номером а, вправо на один разряд с записью нулевого бита в «освободившийся» (крайний левый) разряд. Результат основных сдвиговых операций, осуществляемых с помощью команд SRA, SRC и SRL, записывается в регистр общего назначения с номером d. При выполнении этих сдвиговых инструкций бит данных, «выталкиваемый» из регистра общего назначения с номером а в процессе сдвига, записывается в двадцать девятый разряд регистра статуса, который содержит значение флага переноса (займа) CARRY Flag. На рисунке 13 в наглядной форме показан процесс выполнения основных сдвиговых операций, поддерживаемых микропроцессорным ядром MicroBlaze.

Дополнительные команды сдвига позволяют осуществить операцию арифметического или циклического сдвига данных вправо или влево на несколько разрядов. При использовании этих инст-

Поле кода операции Поле номера первого регистра Поле номера второго регистра Поле направления и типа сдвига Мнемоника Выполняемая операция

1 0 0 1 0 0 d d d d d a a a a a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 SRA Rd,Ra Арифметический сдвиг содержимого регистра Ra вправо на один разряд с сохранением последнего разряда и запись результата в регистр Rd

1 0 0 1 0 0 d d d d d a a a a a 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 SRC Rd,Ra Циклический сдвиг содержимого регистра Ra вправо на один разряд через разряд переноса/займа регистра статуса и запись результата в регистр Rd

1 0 0 1 0 0 d d d d d a a a a a 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 SRL Rd,Ra Арифметический сдвиг содержимого регистра Ra вправо на один разряд с записью 0 в последний разряд и сохранение результата в регистре Rd

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Номер разряда микрокоманды

Компоненты и технологии, № 2'2004

рукций необходимо указать три параметра. Первые два параметра выполняют те же функции, что и в основных командах сдвига данных. Значение третьего параметра команды косвенно или явно определяет, на какое количество разрядов выполняется сдвиг. В качестве третьего параметра дополнительных инструкций сдвига может указываться номер регистра общего назначения или непосредственно числовое значение. Если третий параметр команды представляет собой номер регистра, то последние пять разрядов (с 27-го по 31-й) содержимого этого регистра определяют, на какое количество разрядов производится сдвиг. Форматы дополнительных инструкций арифметического и циклического сдвига данных представлены в таблице 13.

Для осуществления операции циклического сдвига данных, хранящихся в регистре с номером а, вправо на N разрядов предусмотрены команды ВБКЬ Кй,Ка,КЪ и ВБЯЫ кй,ка,1тт. При использовании инструкции ВБКЬ значение N определяют последние пять разрядов содержимого регистра с номером Ъ. В команде ВБЯЫ значение N указывается непосредственно в виде константы 1тт. Условные изображения, приведенные на рис. 14, поясняют выполнение дополнительных команд арифметического и циклического сдвига данных.

Команды ВБКЛ кй,ка,кЪ и ВБКА1 кй,ка,1тт предназначены для выполнения операций арифметического сдвига содержимого регистра общего назначения с номером а вправо на N разрядов. При этом в «освободившиеся» (крайние левые) разряды регистра кй, используемого для записи результата операции, заносится значение нулевого разряда исходного регистра ка (рис. 14). Количество разрядов N, на которое производится сдвиг, в инструкции ВБКЛ определяется последними пятью разрядами содержимого регистра с номером Ъ, а в команде В8КА1 — значением константы 1шш.

Операции циклического сдвига содержимого регистра общего назначения с номером а на N разрядов влево реализуются с помощью инструкций ВБИ кй,ка,кЪ и ВБШкй,ка,1тт.

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 І27І 1 1 |зі| Регистр Rb

Количество разрядов сдвига 1

1 1

■—И II II II II II 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Регистр Ra

і

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Ригхстп РЫ

№№ Rd.Ra.Rb 1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 І27І 1 1 |зі| Регистр Rb

Количество разрядов сдвига 1

1 ’

> 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 I Регистр Ra

1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 PerucrnRd

lBSLLRd.Ra.Rb 1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 І27І 1 1 |зі| Регистр НЬ

Количество разрядов сдвига 1

1 4—1 Регистр Ra

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

I

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Регистр Rd

ІВЗШІ іи.ІІа.ітіп 1 Imm

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 І27І 1 1 |зі| Команда

Количество разрядов сдвига 1

1 1

1— 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Регистр Ra

1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 PerncrnRd

ІВБІ^АІ іи.ІІа.ітт 1 Imm

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 І27І 1 1 М Команда

Количество разрядов сдвига 1

1 ’

>— 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Регистр Ra

і

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Рагигтп RH

ІВБШ Rd.Ra.imm 1 Imm

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 І27І 1 1 |зі| Команда

Количество разрядов сдвига I

1 ^1 Регистр Ra

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

і

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Регистр Rd ных

Рис. 14. Выполнение дополнительных команд арифметического и циклического сдвига дан

Значение N при выполнении команды ВБИ Как видно из рис. 14, при использовании составляют пять последних разрядов содержи- дополнительных сдвиговых команд циклимого регистра с номером Ъ (рис. 14). В инст- ческий или арифметический сдвиг данных

рукции ВБШ это значение задается непосред- производится без участия разряда переноса

ственно в виде константы 1тт. Таблица 13. Форматы дополнительных команд арифметического и циклического сдвига данных

(займа) CARRY Flag регистра статуса.

Поле кода операции Поле номера первого регистра Поле номера второго регистра Поле номера третьего регистра Поле направления и типа сдвига Мнемоника Выполняемая операция

0 1 0 0 0 1 d d d d d a a a a a b b b b b 0 0 0 0 0 0 0 0 0 0 0 BSRL Rd,Ra,Rb Циклический сдвиг содержимого регистра Ra вправо на число разрядов, определяемое битами 27-31 содержимого регистра Rb, и запись результата в регистр Rd

0 1 0 0 0 1 d d d d d a a a a a b b b b b 0 1 0 0 0 0 0 0 0 0 0 BSRA Rd,Ra,Rb Арифметический сдвиг содержимого регистра Ra вправо на число разрядов, определяемое битами 27-31 содержимого регистра Rb, и запись результата в регистр Rd

0 1 0 0 0 1 d d d d d a a a a a b b b b b 1 0 0 0 0 0 0 0 0 0 0 BSLL Rd,Ra,Rb Циклический сдвиг содержимого регистра Ra влево на число разрядов, определяемое битами 27-31 содержимого регистра Rb, и запись результата в регистр Rd

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Номер разряда микрокоманды

Поле кода операции Поле номера первого регистра Поле номера второго регистра Нулевые разряды Поле направления и типа сдвига Поле значения константы Мнемоника Выполняемая операция

0 1 1 0 0 1 d d d d d a a a a a 0 0 0 0 0 0 0 0 0 0 0 і і і і і BSRLI Rd,Ra,Imm Циклический сдвиг содержимого регистра Ra вправо на число разрядов, определяемое значением константы 1тт, и запись результата в регистр Rd

0 1 1 0 0 1 d d d d d a a a a a 0 0 0 0 0 0 1 0 0 0 0 і і і і і BSRAI Rd,Ra,Imm Арифметический сдвиг содержимого регистра Ra вправо на число разрядов, определяемое значением константы 1тт, и запись результата в регистр Rd

0 1 1 0 0 1 d d d d d a a a a a 0 0 0 0 0 1 0 0 0 0 0 і і і і і BSLLI Rd,Ra,Imm Циклический сдвиг содержимого регистра Ra влево на число разрядов, определяемое значением константы 1тт, и запись результата в регистр Rd

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Номер разряда микрокоманды

е

Компоненты и технологии, № 2'2004

Команды преобразования типов данных

ISEXT8 Rd.Ro I

id

М Регистр Ra

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Команды преобразования типов данных позволяют трансформировать значения, представленные различным количеством двоичных разрядов, в 32-разрядное слово. Форматы этих инструкций приведены в таблице 14.

Команда SEXT8 Rd,Ra предназначена для выполнения операции знакового расширения однобайтового значения, которое содержится в регистре общего назначения с номером a, до 32-разрядного слова. Для осуществления операции знакового расширения 2-байтового значения, которое находится в регистре с номером a, используется инструкция SEXT16 Rd,Ra. Результат преобразования данных, выполняемого с помощью команд SEXT8 и SEXT16, записывается в регистр общего назначения с номером d. Процесс выполнения инструкций преобразования типов данных демонстрирует рисунок 15.

Команду IMM Imm также можно отнести к группе инструкций преобразования типов данных. 16-разрядное значение Imm, указываемое в качестве единственного параметра инструкции, записывается в регистр, предназначенный для хранения временных данных. Это значение автоматически учитывается при выполнении следующей команды, относящейся к типу В, в качестве 16 старших разрядов значения, указываемого непосредственно в этой инструкции. Таким образом, инструкция IMM позволяет указывать 32-разрядные значения при использовании непосредственного способа определения операндов в команде.

....................................................................................11111111

Io2i|a24|o24|a24|o24|a24|c24|a2ilja24|a24|a2ilja24^2it^i24|a24|a24|a24|c24|o24i2^|a24|a2it|a24|c24|o2it| | | | | | |o3l| РвГИСф Rd

ISEXTl 6 Rd.Ra~l

|°зі| Регистр Ra

....................................1111111111111111

б|иід|дід|о1й1иід1аід|а1й|а1б|аід|дід1аід1иід1аід1дід|оід|оід| | | | | | | | | | | | | | |o3l| регистр Rd

[ЇММ Imm 1

І ІЗ ІІ4ІІ5І іб ІІ7І І8ІІ9ІІ10ІІ11ІІІ2ІПЗІН4ІПДІ Значение Imm, указанное в инструкции

1111111111111111

Регистр для хранения временных данных

Рис. 15. Выполнение инструкций преобразования типов данных

Команды передачи данных

Данную группу составляют инструкции, предназначенные для организации обмена данными между памятью и регистрами общего назначения. В системе команд микропроцессорного ядра МкгоБ1аге предусмотрены инструкции, позволяющие передавать данные в виде слов размерностью четыре байта (32 двоичных разряда), полуслов размерностью 2 байта (16 двоичных разрядов) и побайтно (8 двоичных разрядов). При выполнении операций обращения к памяти используется косвенная адресация. Значение адреса памяти при выполнении операций чтения или записи представляется в виде суммы содержимого некоторого базового регистра общего назначения и смещения. Номер базового регистра указывается в виде

второго параметра соответствующей команды. При мнемонической форме записи команд передачи данных значение смещения определяется с помощью третьего параметра инструкции. Смещение может задаваться двумя способами. Первый способ позволяет определить значение смещения в виде содержимого одного из регистров общего назначения. При использовании второго способа значение смещения является результатом знакового расширения 16-разрядной константы 1тт, указанной непосредственно в инструкции, до 32-разрядного слова. Поэтому в качестве третьего параметра команд передачи данных может использоваться номер регистра общего назначения или 16-разрядная константа 1тт. Номер регистра общего назначения, который используется в качестве источника данных, записываемых в память, или для

Таблица 14. Форматы инструкций преобразования типов данных

Поле кода операции Поле номера первого регистра Поле номера второго регистра Поле типа операции/значения константы Мнемоника Выполняемая операция

1 0 0 1 0 0 d d d d d a a a a a 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 SEXT8 Rd,Ra Знаковое расширение последнего байта содержимого регистра Ra и запись результата в регистр Rd

1 0 0 1 0 0 d d d d d a a a a a 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 SEXT16 Rd,Ra Знаковое расширение последних двух байт содержимого регистра Ra и запись результата в регистр Rd

1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 і і і і і і і і і і і і і і і і IMM Imm Запись значения Imm в регистр, предназначенный для хранения временных данных

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Номер разряда микрокоманды

Таблица 15. Форматы команд передачи данных из памяти в регистр общего назначения

Поле кода операции Поле номера первого регистра Поле номера второго регистра Поле номера третьего регистра Нулевые разряды Мнемоника Выполняемая операция

1 1 0 0 0 0 d d d d d a a a a a b b b b b 0 0 0 0 0 0 0 0 0 0 0 LBU Rd,Ra,Rb Загрузка из памяти в регистр Rd байта данных, адрес которого представлен в виде суммы содержимого регистров Ra и Rb

1 1 0 0 0 1 d d d d d a a a a a b b b b b 0 0 0 0 0 0 0 0 0 0 0 LHU Rd,Ra,Rb Загрузка из памяти в регистр Rd полуслова данных, адрес которого представлен в виде суммы содержимого регистров Ra и Rb

1 1 0 0 1 0 d d d d d a a a a a b b b b b 0 0 0 0 0 0 0 0 0 0 0 LW Rd,Ra,Rb Загрузка из памяти в регистр Rd слова данных, адрес которого представлен в виде суммы содержимого регистров Ra и Rb

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Номер разряда микрокоманды

Поле кода операции Поле номера первого регистра Поле номера второго регистра Поле значения константы Мнемоника Выполняемая операция

1 1 1 0 0 0 d d d d d a a a a a і і і і і і і і і і і і і і і і LBUI Rd,Ra,Imm Загрузка из памяти в регистр Rd байта данных, адрес которого представлен в виде суммы содержимого регистра Ra и знакового расширения константы Imm

1 1 1 0 0 1 d d d d d a a a a a і і і і і і і і і і і і і і і і LHUI Rd,Ra,Imm Загрузка из памяти в регистр Rd полуслова данных, адрес которого представлен в виде суммы содержимого регистра Ra и знакового расширения константы Imm

1 1 1 0 1 0 d d d d d a a a a a і і і і і і і і і і і і і і і і LWI Rd,Ra,Imm Загрузка из памяти в регистр Rd слова данных, адрес которого представлен в виде суммы содержимого регистра Ra и знакового расширения константы Imm

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Номер разряда микрокоманды

Компоненты и технологии, № 2'2004

ьви Rd.Ra.Ra.Rb

Регистр Ra

Регистр Rb

Адресе

записи

байта

Ячейки памяти

ШШ11

Регистр КЬ |о|с|оНс|о|о|о|с|о|о|о|о|о|о|с|о|о|с|о|с|о|с|о|

d24

31

Адресс

Ячейки памяти

ш

Регистр Rb

¿24 сІЗІ

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

БВ Rd,Ra,RЬ

Регистр Ra

Адресс .... байта“

5В Rd,Ra,RЬ Ячейки памяти

Регистр КЬ 11 І 11111

ШПП

d24 d31

Константа, указанная в команде .

л Адресс

с записи 115 байта

Регистр RЬ

d24 d31

Є-

| ШЦ Rd^Ra/Rb | Регистр Ra

Адресс Регистр Rb записи ----------------- байта

Ячейки памяти

Регистр КЬ ЩсЩЙЕсЩЩ

шиї Rd/Ra,lmm

Регистр Ra

Ячейки памяти •••

d16 гіЗІ

указанная манде

Адресс 15 записи байта

Регистр кь Ж(Н#ЖФ|с|оМ<Я1

dl6 d31

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

Ш1^,Ка,КЬ

Регистр Ка

Регистр КЬ

Адресс

чтения

ІІІІІІІІІІІІІІІІІІІІІІІІІІІІІІШ ►

Ячейки памяти — 1 1 1 11 1 1 11 1 11 1 NN ІІМІ ІІІІІІІІІІІІІІІІІІ

иж ш. иш ш -и

Регистр КЬ І І I 1111 ІІІІІ 1 III 1 м

Регистр КЬ

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

ШУ Rd.Ra.Rbl

Регистр Ка

Адресс

Регистр КЬ записи ----------------- байта

Ячейки памяти

Регистр КЬ

аіб d31

ЬНиі Kd.Ka.lmm

Регистр Ка

Константа, указанная в команде

----А----^ Адресс

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

_115 записи байта ,

Ячейки памяти ■■■ Регистр КЬ |

¿16 с!31

Рис. 20. Выполнение инструкций копирования полуслова данных из регистра общего назначения в память

Рис. 19. Выполнение команд побайтной передачи данных из регистра общего назначения в память

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

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

Инструкции ЬВи кй,ка,кЪ и ЬВШ Кй,Ка,1тт используются для передачи байта данных из памяти в регистр общего назначения с номером й при различных способах определения значения смещения. Передаваемые данные записываются в младшие восемь разрядов регистра КЛ В остальные разряды этого регистра заносится нулевое значение. Рисунок 16 иллюстрирует выполнение операций побайтной загрузки данных.

Команды 1Ии кй,ка,кЪ и 1Ии1 Кй,Ка,1тт выполняют загрузку полуслова данных, состоящего из 2 байт, из памяти в регистр общего назначения с номером й. Считанная информация размещается в младшие 16 разрядов регистра КЛ Неиспользуемые разряды этого регистра сбрасываются в состояние, соответствующее нулевому значению. Рисунок 17 в наглядной форме поясняет выполнение копирования полуслова данных из памяти в регистр общего назначения.

Для передачи слова данных из памяти в регистр общего назначения предназначены команды !Ж Кй,Ка,КЪ и !Ж! Кй,Ка,1тт. Процесс их выполнения показан на рисунке 18.

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

Запись младшего байта данных из регистра с номером й в память по адресу, равному сумме значений содержимого регистров с номерами а и Ъ или содержимого регистра ка и результата знакового расширения константы 1тт, осуществляется с помощью команд БВ Кй,Ка,КЪ и БВ1 кй,ка,1тт соответственно. Рисунке 19 поясняет выполнение операций побайтной передачи данных из регистра общего назначения в память.

е

Компоненты и технологии, № 2'2004

Таблица 16. Форматы команд передачи данных из регистра общего назначения в память

Поле кода операции Поле номера первого регистра Поле номера второго регистра Поле номера третьего регистра Нулевые разряды Мнемоника Выполняемая операция

1 1 0 1 0 0 d d d d d a a a a a b b b b b 0 0 0 0 0 0 0 0 0 0 0 SB Rd,Ra,Rb Запись байта данных из регистра Rd в память по адресу, равному сумме содержимого регистров Ra и Rb

1 1 0 1 0 1 d d d d d a a a a a b b b b b 0 0 0 0 0 0 0 0 0 0 0 SH Rd,Ra,Rb Запись полуслова данных из регистра Rd в память по адресу, равному сумме содержимого регистров Ra и Rb

1 1 0 1 1 0 d d d d d a a a a a b b b b b 0 0 0 0 0 0 0 0 0 0 0 SW Rd,Ra,Rb Запись слова данных из регистра Rd в память по адресу, равному сумме содержимого регистров Ra и Rb

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Номер разряда микрокоманды

Поле кода операции Поле номера первого регистра Поле номера второго регистра Поле значения константы Мнемоника Выполняемая операция

1 1 1 1 0 0 d d d d d a a a a a і і і і і і і і і і і і і і і і SBI Rd,Ra,Imm Запись байта данных из регистра Rd в память по адресу, равному сумме содержимого регистра Ra и знакового расширения константы 1тт

1 1 1 1 0 1 d d d d d a a a a a і і і і і і і і і і і і і і і і SHI Rd,Ra,Imm Запись полуслова данных из регистра Rd в память по адресу, равному сумме содержимого регистра Ra и знакового расширения константы 1тт

1 1 1 1 1 0 d d d d d a a a a a і і і і і і і і і і і і і і і і SWI Rd,Ra,Imm Запись данных из регистра Rd в память по адресу, равному сумме содержимого регистра Ra и знакового расширения константы 1тт

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Номер разряда микрокоманды

| SW Rd,Ra,Rb | Регистр Ra

Регистр Rb

Адресс

записи

слова

Ячейки памяти

Регистр Rb

SWI Rd,Ra,lmm

Регистр Ra

Константа, указанная i0 Адресе

МО________І15”ПИСИ

слова

Ячейки памяти

Регистр Rb

Рис. 21. Выполнение команд передачи слова данных из регистра общего назначения в память

Инструкции SH Rd,Ra,Rb и SHI Rd,Ra,Imm используются для передачи полуслова данных, состоящего из двух младших байт содержимого регистра общего назначения с номером d, в память. Выполнение команд записи полуслова данных из регистра общего назначения в память иллюстрирует рисунок 20.

Команды SW Rd,Ra,Rb и SWI Rd,Ra,Imm предназначены для сохранения в памяти содержимого регистра общего назначения с номером d. На рисунок 21 в наглядной форме показан процесс выполнения операций записи слова данных в память. ИИ

Окончание следует.

i Надоели баннеры? Вы всегда можете отключить рекламу.