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

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

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

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

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

7. Форматы представления целых и дробных данных с фиксированной запятой. Особенности выполнения операций умножения с целыми и дробными числами.
1) Форматы представления целых и дробных данных с фиксированной запятой

Стандартное представление дробного 16-разрядного числа в дополнительном коде (так называемый формат Q15):

Бит | D15 | D14 | D13 | D12 | D11 | D10 | D9 | D8 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0
Вес | -20 | 2-1 | 2-2 | 2-3 | 2-4 | 2-5 | 2-6 | 2-7 | 2-8 | 2-9 | 2-10 | 2-11 | 2-12 | 2-13 | 2-14 | 2-15

В старшем разряде находится знак (разряд с весом -1), в остальных разрядах отрицательные степени двойки (1/2, 1/4, 1/8 и т.д. до 1/32768).
Стандартное представление целого 16-разрядного числа в дополнительном коде (так называемый формат Q0):

Бит | D15 | D14 | D13 | D12 | D11 | D10 | D9 | D8 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0
Вес | -215 | 214 | 213 | 212 | 211 | 210 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20

В старшем разряде находится знак (разряд с весом -32768), в остальных разрядах положительные степени двойки (16384, 8192, 4096 и т.д. до 2 и 1).

2) Особенности выполнения операций умножения с целыми и дробными, знаковыми и беззнаковыми числами

Для умножения беззнаковых чисел в процессоре имеются две команды:

    	MPYU	Smem, dst	; Перемножение двух беззнаковых чисел
    	MACSU	Xmem, Ymem, src ; Умножение знакового числа на беззнаковое
    				  с аккумулированием результата.

При умножении целых чисел должен быть сброшен бит FRCT, а результат операции находится в младшей части аккумулятора.
При умножении дробных чисел должен быть установлен бит FRCT, а результат операции находится в старшей части аккумулятора.

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

Синтаксис | Выражение (операция) | С | Ц | Зависит | Влияет
MAC Smem, src MAS Smem, src | src = src ± T * Smem {src ±= T*Smem} | 1 | 1 | FRCT, OVM | OV↑
MACR Smem, src MASR Smem, src | src = rnd(src ± T * Smem) | 1 | 1 | FRCT, OVM | OV↑
MAC Xmem, Ymem, src [, dst] MAS Xmem, Ymem, src [, dst] | dst = src ± Xmem * Ymem, T = Xmem {dst += …} | 1 | 1 | FRCT, OVM | OV↑
MACR Xmem, Ymem, src [, dst] MASR Xmem, Ymem, src [, dst] | dst = rnd(src ± Xmem * Ymem), T = Xmem | 1 | 1 | FRCT, OVM | OV↑
MACA T, src [, dst] MASA T, src [, dst] | dst = src ± T * A(32-16) {dst = src ± T * hi(A)} {dst±=…} | 1 | 1 | FRCT, OVM | OV↑
MACAR T, src [, dst] MASAR T, src [, dst] | dst = rnd(src ± T * A(32-16)) {dst = rnd(src ± T * hi(A))} | 1 | 1 | FRCT, OVM | OV↑
MACA Smem [, B] MASA Smem [, B] | B = B ± Smem * A(32-16), T = Smem {B = B ± Smem * hi(A)} {B ±= …} | 1 | 1 | FRCT, OVM | OVB↑
MACAR Smem [, B] | B = rnd(B + Smem * A(32-16)), T=Smem {B = rnd(B + Smem * hi(A))} | 1 | 1 | FRCT, OVM | OVB↑
MAC # lk, src [, dst] | dst = src + T * #lk {dst+=…} | 2 | 2 | FRCT, OVM | OV↑
MAC Smem, # lk, src [, dst] | dst = src + Smem * #lk, {dst+=…} T = Smem | 2 | 2 | FRCT, OVM | OV↑
MACSU Xmem, Ymem, src | src=src + uns(Xmem) * Ymem, T=Xmem {src += …} | 1 | 1 | FRCT, OVM | OV↑
SQURA Smem, src SQURS Smem, src | src = src ± Smem * Smem, T = Smem {dst = src ± square(Smem)} {dst±=square()} | 1 | 1 | FRCT, OVM | OV↑

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

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

    Cnt	.set	8-1		; Число элементов массива
    PAinp	.set	25		; Параллельный порт
    McDXR0	.set	23h		; Передатчик МБПП 0
    	ld	#0, DP		; Текущая страница 0(для MMR)		(1)
    	stm	#Cnt, BRC	; Длина массива данных(счетчик)		(2)
    	ld	#0, a		; Обнулить аккум. для беззнак.		(1)
    	rptb	loop-1		; Повторить до loop пока BRC<>0		(2)
    	portr	PAinp, AL	; Чтение пар.порта (DP=0 для AL)	(2)
    	ld	AL, a		; Перезагрузка для знаковых чисел	(1)
    	stlm	a, McDXR0	; Выдача в последовательный порт	(1)
    loop:				; Окончание цикла для rptb

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