ЭУМК по дисциплине "Проектирование проблемно-ориентированных вычислительных средств" › Практика › Практическое занятие "Группа команд работы с аккумулятором"

# Электронный учебно-методический
комплекс по дисциплине
"Проектирование проблемно-ориентированных вычислительных средств"

для специальности

1-40 02 02 «Электронные вычислительные средства»

Оглавление | Программа | Теория | Практика | Контроль знаний | Об авторах

4. Организация обмена информацией между памятью данных, программ и устройствами ввода-вывода. Параллельные команды.
1) Подгруппа команд передачи данных из группы команд пересылки данных

Синтаксис | Выражение (операция) | С | Ц | Зависит | Влияет
MVDD Xmem, Ymem | Ymem = Xmem | 1 | 1 |  |
MVMM MMRx, MMRy | MMRy = MMRx {mmr(MMRy)=mmr(MMRx)} | 1 | 1 |  |
MVDK Smem, dmad | EAR = dmad, data(EAR) = Smem EAR = EAR + 1 {data(dmad) = Smem} | 2 | 2 |  |
MVKD dmad, Smem | DAR = dmad, Smem = data(DAR) DAR = DAR + 1 {Smem = data(dmad)} | 2 | 2 |  |
MVDM dmad, MMR | DAR = dmad, MMR = data(DAR) DAR = DAR + 1 {mmr(MMR)=data(dmad)} | 2 | 2 |  |
MVMD MMR, dmad | EAR = dmad, data(EAR) = MMR EAR = EAR + 1 {data(dmad)=mmr(MMRx)} | 2 | 2 |  |
MVDP Smem, pmad | PAR = pmad, prog(PAR) = Smem PAR = PAR + 1 {prog(pmad) = Smem} | 2 | 4 |  |
MVPD pmad, Smem | PAR = pmad, Smem = prog(PAR) PAR = PAR + 1 {Smem = prog(pmad)} | 2 | 3 |  |
READA Smem | PAR = A(19-0), Smem = prog(PAR), PAR = PAR + 1 {Smem = prog(A)} | 1 | 5 |  |
WRITA Smem | PAR = A(19-0), prog(PAR) = Smem, PAR = PAR + 1 {prog(A) = Smem} | 1 | 5 |  |

2) Подгруппы параллельных команд из группы команд пересылки данных

Синтаксис | Выражение (операция) | С | Ц | Зависит | Влияет
Команды параллельной загрузки и сохранения
ST src, Ymem || LD Xmem, dst | Ymem = hi(src) << ASM || dst = Xmem << 16 | 1 | 1 | SXM |
ST src, Ymem || LD Xmem, T | Ymem = hi(src) << ASM || T = Xmem | 1 | 1 | SXM |
Команды параллельной загрузки и умножения
LD Xmem, dst || MAC Ymem, dst_ | dst = Xmem << 16 || dst_ = dst_ + T * Ymem {+=} | 1 | 1 | SXM, OVM, FRCT | C, OVdst_↑
LD Xmem, dst || MACR Ymem, dst_ | dst = Xmem << 16 || dst_ = rnd(dst_ + T * Ymem) | 1 | 1 | SXM, OVM, FRCT | C, OVdst_↑
LD Xmem, dst || MAS Ymem, dst_ | dst = Xmem << 16 || dst_ = dst_ – T * Ymem {-=} | 1 | 1 | SXM, OVM, FRCT | C, OVdst_↑
LD Xmem, dst || MASR Ymem, dst_ | dst = Xmem << 16 || dst_ = rnd(dst_ – T * Ymem) | 1 | 1 | SXM, OVM, FRCT | C, OVdst_↑
Команды параллельного сохранения и умножения
ST src, Ymem || MAC Xmem, dst | Ymem = hi(src) << ASM || dst = dst + T * Xmem { += } | 1 | 1 | SXM, OVM, FRCT | C, OV↑
ST src, Ymem || MACR Xmem, dst | Ymem = hi(src) << ASM || dst = rnd(dst + T * Xmem) | 1 | 1 | SXM, OVM, FRCT | C, OV↑
ST src, Ymem || MAS Xmem, dst | Ymem = hi(src) << ASM || dst = dst – T * Xmem { -= } | 1 | 1 | SXM, OVM, FRCT | C, OV↑
ST src, Ymem || MASR Xmem, dst | Ymem = hi(src) << ASM || dst = rnd(dst – T * Xmem) | 1 | 1 | SXM, OVM, FRCT | C, OV↑
ST src, Ymem || MPY Xmem, dst | Ymem = hi(src) << ASM || dst = T * Xmem | 1 | 1 | SXM, OVM, FRCT | C, OV↑
Команды параллельного сохранения и сложения/вычитания
ST src, Ymem || ADD Xmem, dst | Ymem = hi(src) << ASM || dst = (Xmem << 16) + dst_ | 1 | 1 | SXM, OVM | C, OV↑
ST src, Ymem || SUB Xmem, dst | Ymem = hi(src) << ASM || dst = (Xmem << 16) – dst_ | 1 | 1 | SXM, OVM | C, OV↑

3) Подгруппа команд с двойным операндом из группы арифметических операций

Синтаксис | Выражение (операция) | С | Ц | Зависит | Влияет
DADD Lmem, src [, dst] ( dst = src + dbl(Lmem) ){+=} ( dst = src + dual(Lmem) ) | Если C16 = 0 dst = Lmem + src Если C16 = 1 dst(39–16)=Lmem(31–16)+src(31–16) dst(15–0) =Lmem(15–0) +src(15–0) | 1 | 1 | SXM и OVM (если С16=0) | C, OV↑
DADST Lmem, dst ( dst = dadst (Lmem, T) ) | Если C16 = 0 dst = Lmem+(T<<16+T) Если C16 = 1 dst(39–16)= Lmem(31–16)+ T dst(15–0) = Lmem(15–0) – T | 1 | 1 | SXM и OVM (если С16=0) | C, OV↑
DRSUB Lmem, src ( dst = dbl(Lmem) – src ) ( dst = dual(Lmem) – src ) | Если C16 = 0 src = Lmem – src Если C16 = 1 src(39–16)=Lmem(31–16)–src(31–16) src(15–0) =Lmem(15–0) –src(15–0) | 1 | 1 | SXM и OVM (если С16=0) | C, OV↑
DSADT Lmem, dst ( dst = dsadt (Lmem, T) ) | Если C16 = 0 dst = Lmem–(T<<16+T) Если C16 = 1 dst(39–16)= Lmem(31–16)– T dst(15–0) = Lmem(15–0) + T | 1 | 1 | SXM и OVM (если С16=0) | C, OV↑
DSUB Lmem, src ( src = src - dbl(Lmem) ){-=} ( src = src - dual(Lmem) ) | Если C16 = 0 src = src – Lmem Если C16 = 1 src(39–16)=src(31–16)–Lmem(31–16) src(15–0) =src(15–0) –Lmem(15–0) | 1 | 1 | SXM и OVM (если С16=0) | C, OV↑
DSUBT Lmem, dst ( dst = dbl(Lmem) – T ) ( dst = dual(Lmem) – T ) | Если C16 = 0 dst = Lmem–(T<<16+T) Если C16 = 1 dst(39–16)= Lmem(31–16)– T dst(15–0) = Lmem(15–0) – T | 1 | 1 | SXM и OVM (если С16=0) | C, OV↑

4) Подгруппа команд сдвига из группы логических операций

Синтаксис | Выражение (операция) | С | Ц | Зависит | Влияет
ROL src ( src = src\\CARRY ) | Циклич.сдвиг влево через С (39…32=0) | 1 | 1 | C | C
ROLTC src ( roltc (src) ) | Циклич.сдвиг влево из ТС (39…32=0) | 1 | 1 | TC | C
ROR src ( src = src//CARRY ) | Циклич.сдвиг вправо через С (39…32=0) | 1 | 1 | C | C
SFTA src, SHIFT [, dst] ( src = src <<C SHIFT ) | dst = src<<SHIFT{арифметический} Все 40 разрядов, 39-й в C | 1 | 1 | SXM, OVM | C, OV↑
SFTC src ( shiftc (src) ) | если src(31)=src(30) то src=src<<1 TC = 0 иначе(или src=0) TC = 1 | 1 | 1 |  | TC
SFTL src, SHIFT [, dst] ( src = src <<< SHIFT ) | dst = src << SHIFT {логический} (39…32=0) | 1 | 1 |  | C

В командах циклического и логического сдвига в операции участвуют 32 младших разряда аккумулятора (0...31), а 8 старших разрядов (32...39) обнуляются.

Оглавление | Программа | Теория| Практика | Контроль знаний | Об авторах
© БГУИР , 2012