Команды загрузки/хранения
LDB, LDBU, LDH, LDHU, LDW R1,Rres Загрузка из памяти с 5-разрядной беззнаковой константой или с регистром смещения
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | ||
R1 | R2 | R3 | ||||
.D1 или .D2 | См. синтаксис R1 | нет | нет | Содержимое ячейки памяти | Загрузка |
Описание: каждая из этих команд загружает из внутренней памяти данных в регистр Rres общего назначения. Синтаксис R1, определяющий правило формирования адреса:
*+Rbas[Rsm] или *+Rbas[ucst5] – положительное смещение. К Rbas добавляется Rsm или ucst5, причём Rbas не изменяется. Исполнительным адресом является результат суммирования;
*-Rbas[Rsm] или *-Rbas[ucst5] – отрицательное смещение. Из Rbas вычитается Rsm или ucst5, причём Rbas не изменяется. Исполнительным адресом является результат вычитания;
*++Rbas[Rsm] или *++Rbas[ucst5] – преинкремент. К Rbas добавляется Rsm или ucst5, изменяя Rbas. Исполнительным адресом является изменённое содержимое Rbas;
*- -Rbas[Rsm] или *- -Rbas[ucst5] – предекремент. Из Rbas вычитается Rsm или ucst5, изменяя Rbas. Исполнительным адресом является изменённое содержимое Rbas;
*Rbas++[Rsm] или *Rbas++ [ucst5] – постинкремент. К Rbas добавляется Rsm или ucst5, изменяя Rbas. Исполнительным адресом является содержимое Rbas до его изменения;
*Rbas--[Rsm] или *Rbas--[ucst5] – постдекремент. Из Rbas вычитается Rsm или ucst5, изменяя Rbas. Исполнительным адресом является содержимое Rbas до его изменения.
Если смещение (Rsm или ucst5) не задаётся, ассемблер назначает нулевое смещение, а инкременты и декременты равны 1.
Rbas и Rsm должны быть на той же стороне ЦПУ, что и используемое устройство .D.
Rsm и cst5 до операции по формированию адреса сдвигаются влево на 0 (LDB и LDBU), 1 (LDH и LDHU) или 2 (LDW) разряда.
Адресная арифметика (сложение или вычитание) по умолчанию выполняется в линейном способе. Однако для А4 – А7 и В4 – В7 способ может быть изменён на циклический путём записи соответствующей величины в регистр AMR.
Для команд LDB(U) и LDH(U) загружаются только младшие 8 и 16 бит, соответственно, а остальные разряды Rres заполняются знаком (LDB и LDH) или нулями (LDBU и LDHU). Для LDW заполняются все 32 разряда Rres.
LDB, LDBU, LDH, LDHU, LDW R1,Rres Загрузка из памяти с 15-разрядной беззнаковой константой смещения
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | ||
R1 | R2 | R3 | ||||
.D2 | *+B14[ucst15] или *+B15[ucst15] | нет | нет | Содержимое ячейки памяти | Загрузка |
Описание: каждая из этих команд загружает из внутренней памяти данных в регистр Rres общего назначения. До операции по формированию адреса (вычитание не поддерживается) cst15 сдвигается влево на 0 (LDB и LDBU), 1 (LDH и LDHU) или 2 (LDW) разряда.
Адресная арифметика всегда выполняется в линейном способе.
Для команд LDB(U) и LDH(U) загружаются только младшие 8 и 16 бит, соответственно, а остальные разряды Rres заполняются знаком (LDB и LDH) или нулями (LDBU и LDHU). Для LDW заполняются все 32 разряда Rres.
STB, STH, STW R,*R1 Загрузка в память с 5-разрядной беззнаковой константой смещения или с регистром смещения
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | |
R1 | R2 | ||||
.D1 или .D2 | См. синтаксис R1 | нет | нет | Хранение |
Описание: каждая из этих команд загружает во внутреннюю память данных из регистра R общего назначения. Синтаксис R1 и выполнение Rbas и Rsm такие же, как у команд LD.
STB, STH, STWR,*R1 Загрузка в память с 15-разрядной беззнаковой константой смещения
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | |
R1 | R2 | ||||
.D1 или .D2 | См. синтаксис R1 | нет | нет | Хранение |
Описание: каждая из этих команд загружает во внутреннюю память данных из регистра R общего назначения. Синтаксис R1 и выполнение Rbas и Rsm такие же, как у команд LD.
Дата добавления: 2020-10-25; просмотров: 430;