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

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

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

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

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

5. Основные приемы, особенности и команды для организации циклов. Зацикливание одной команды, два способа зацикливания группы команд. Вызов подпрограмм.
1) Подгруппа команд повторения из группы команд управления ходом выполнения программы

Синтаксис | Выражение (операция) | С | Ц | Зависит | Влияет
RPT Smem {repeat(Smem)} | Повторение одной команды: RC=Smem | 1 | 3 |  |
RPT #K {repeat(#k)} | Повторение одной команды: RC=#K | 1 | 1 |  |
RPT #lk {repeat(#lk)} | Повторение одной команды: RC=#lk | 2 | 2 |  |
RPTB[D] pmad {[d]blockrepeat(pmad)} | Повторение блока команд RSA=PC+2[4¶], REA=pmad, BRAF=1 | 2 | 4 2¶ |  | BRAF↑
RPTZ dst, #lk {repeat(#lk),dst=0} | Повторение одной команды: RC = #lk, dst = 0 | 2 | 2 |  |

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

Синтаксис | Выражение (операция) | С | Ц | Зависит | Влияет
CALL[D] pmad {[d]call pmad} | Вызов подпрограммы ––SP, TOS=PC+2[4¶], PC=pmad(15–0) | 2 | 4 2§ |  |
CALA[D] src {[d]call src} | Вызов подпрограммы по аккумулятору ––SP, TOS=PC+1[3¶], PC=src(15–0) | 1 | 6 4¶ |  |
CC[D] pmad, cond [,cond[,cond]] {if (cond(s)) [d]call pmad} | Условный вызов подпрограммы Если cond(s)=ИСТИНА, то ––SP, TOS=PC+2[4¶], PC=pmad(15–0) | 2 | 5‡ 3§ 3¶ | cond | OV↓ (cond=OV)
FCALL[D] extpmad {far [d]call extpmad} | Дальний вызов подпрограммы ––SP, TOS=PC+2[4¶], ––SP, TOS=XPC, PC=extpmad(15–0),XPC=extpmad(19–16) | 2 | 4 2¶ |  |
FCALA[D] src {far [d]call src} | Дальний вызов по аккумулятору ––SP, TOS=PC+1[3¶], ––SP, TOS=XPC, PC = src(15–0), XPC = src(19–16) | 1 | 6 4¶ |  |

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

Синтаксис | Выражение (операция) | С | Ц | Зависит | Влияет
INTR K {int(k)} | ––SP, TOS = ++PC, PC = IPTR(15–7) + K<<2, INTM = 1 | 1 | 3 |  | INTM↑
TRAP K {trap(k)} | ––SP, TOS = ++PC, PC = IPTR(15–7) + K<<2 | 1 | 3 |  |

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

Синтаксис | Выражение (операция) | С | Ц | Зависит | Влияет
RET[D] {[d]return} | Возврат из подпрограммы PC = TOS, ++SP | 1 | 5 3¶ |  |
RETE[D] {[d]return_enable} | Возврат из прерывания PC = TOS, ++SP, INTM = 0 | 1 | 5 3¶ |  | INTM↓
RETF[D] {[d]return_fast} | Быстрый возврат из прерывания PC = RTN, ++SP, INTM = 0 | 1 | 3 1¶ |  | INTM↓
RC[D] cond [, cond [, cond]] {if (cond(s)) [d]return} | Условный возврат из подпрограммы Если cond(s) = ИСТИНА, то PC = TOS, ++SP | 1 | 5‡ 3§ 3¶ | cond |
FRET[D] {far [d]return} | Дальний возврат из подпрограммы XPC = TOS, ++SP, PC = TOS, ++SP | 1 | 6 4¶ |  |
FRETE[D] {far [d]return_enable} | Дальний возврат с разрешением прерывания XPC = TOS, ++SP, PC = TOS, ++SP, INTM = 0 | 1 | 6 4¶ |  | INTM↓

5) Программа пересылки данных из одной области памяти данных в другую через аккумулятор

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

    Cnt	.set	8-1		; Задание числа элементов массива
    	rsbx	SXM		; Беззнаковая арифметика		(1)
    	ssbx	SXM		; Знаковая арифметика			(1)
    	stm	#Cnt, ar1	; Длина массива данных(счетчик)		(2)
    	stm	#DAT, ar2	; Начальный адрес массива		(2)
    loop:				; Начало цикла для banz
    	ld	*ar2+, a	; Загрузка данных (знак/беззн)		(1)
    	ldu	*ar2+, a	; Загрузка данных беззнаковая		(1)
    	stl	a, *ar2+	; Сохранение данных			(1)
    	banz	loop, *ar1-	; Повторить пока ar1<>0 (цикл)		(2)

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