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

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

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

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

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

6. Способы модификации вспомогательных регистров. Простые команды умножения.
1) Способы модификации вспомогательных регистров и их особенности

Поле MOD | Синтаксис операнда | Функции | Описание
Одинарный операнд (Smem)
0000 (0) | *ARx | адрес = ARx | ARx содержит адрес памяти данных
0010 (2) 0001 (1) | *ARx± | адрес = ARx ARx = ARx ± 1 | После доступа к памяти адрес в ARx увеличивается (уменьшается) на 1
0011 (3) | *+ARx | адрес = ARx + 1 ARx = ARx + 1 | Перед использованием адрес в ARx увеличивается на 1, и этот новый адрес используется для адресации операнда
0110 (6) 0101 (5) | *ARx±0 | адрес = ARx ARx = ARx ± AR0 | После доступа AR0 прибавляется к (вычитается из) ARx
0111 (7) 0100 (4) | *ARx±0B | адрес = ARx ARx = B(ARx±AR0) | После доступа AR0 прибавляется к (вычитается из) ARx с обратным переносом (rc)
1010 (10) 1000 (8) | *ARx±% | адрес = ARx ARx = circ (ARx±1) | После доступа адр в ARx увелич. (уменьш.) с использованием циклической адресации
1011 (11) 1001 (9) | *ARx±0% | адрес = ARx ARx=circ(ARx±AR0) | После доступа AR0 приб. к (вычит. из) ARx с использованием циклической адресации
1100 (12) | *ARx(lk) | адрес = ARx + lk ARx = ARx | Сумма ARx и смещения длиной 16 битов (lk) используется как адрес памяти данных. ARx не модифицируется
1101 (13) | *+ARx(lk) | адрес = ARx + lk ARx = ARx + lk | Смещение длиной 16 битов (lk) прибавляется к ARx и эта сумма заменяет предыдущее содержимое ARx и используется для адресации операнда памяти данных
1110 (14) | *+ARx(lk)% | addr=circ (ARx+lk) ARx =circ (ARx+lk) | Смещение длиной 16 битов (lk) прибавляется к ARx с использованием циклической адресации и эта сумма заменяет предыдущее содержимое ARx и используется для адресации операнда памяти данных
1111 (15) | *(lk) | адрес = lk | Смещение длиной 16 битов без знака (lk) используется как абсолютный адрес памяти данных (абсолютная адресация)

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

Синтаксис | Выражение (операция) | С | Ц | Зависит | Влияет
MPY Smem, dst | dst = T * Smem | 1 | 1 | FRCT, OVM | OV↑
MPYR Smem, dst | dst = rnd(T * Smem) | 1 | 1 | FRCT, OVM | OV↑
MPY Xmem, Ymem, dst | dst = Xmem * Ymem, T = Xmem | 1 | 1 | FRCT, OVM | OV↑
MPY Smem, #lk, dst | dst = Smem * #lk , T = Smem | 2 | 2 | FRCT, OVM | OV↑
MPY #lk, dst | dst = T * #lk | 2 | 2 | FRCT, OVM | OV↑
MPYA dst | dst = T * A(32-16) {dst = T * hi(A)} | 1 | 1 | FRCT, OVM | OV↑
MPYA Smem | B = Smem * A(32-16), T = Smem {B = Smem * hi(A)[, T = Smem]} | 1 | 1 | FRCT, OVM | OVB↑
MPYU Smem, dst | dst = uns(T) * uns(Smem) {dst = T * uns(Smem)} | 1 | 1 | FRCT, OVM | OV↑
SQUR Smem, dst | dst = Smem * Smem, T = Smem {dst = square()} | 1 | 1 | FRCT, OVM | OV↑
SQUR A, dst | dst = A(32-16) * A(32-16) {dst = hi(A)*hi(a)} {dst = square()} | 1 | 1 | FRCT, OVM | OV↑

3) Программа пересылки данных из памяти в параллельный порт

При пересылке данных в параллельный порт используются следующие команды:

    PAout	.set	26		; Параллельный порт
    	mvdm	CNT, ar1	; Длина массива данных(счетчик)		(2)
    	ld	#0, DP		; Текущая страница 0 (для MMR)		(1)
    loop:				; Начало цикла для banz
    	portw	AL, PAout	; Вывод в пар.порт (DP=0 для AL)	(2)
    	banz	loop, *ar1-	; Повторить пока ar1<>0 (цикл)		(2)
    CNT	.word	8-1		; Число элементов массива		(1)

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