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

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

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

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

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

11. Директивы описания переменных и сборка программы, программы подсчета числа элементов в массивах по заданным условиям.
1) Cборка программы из объектных файлов

1. директива .sect “секция[:подсекция]” – задает имя отдельной инициализированной секции (подсекции) программы.
   Имеется три стандартных имени секций не требующих использования директивы .sect:
   .text – секция программы (исполняемого кода)
   .data – секция данных (таблицы,инициализированные переменные)
   .bss имя, слов [, [блок] [, выравнивание] ] – секция данных (неинициализированные переменные): имя первого слова секции, число слов в секции, выравнивание на границу блока, выравнивание на границу двойного слова. Для задания других неинициализированных секций может использоваться директива
   метка .usect “секция[:подсек.]”, слов [, [блок] [, выравн.] ]
2. директива .def переменная [,переменная] ... – пречисляет имена переменных, заданных в программе и используемых в других программах
3. директива .ref переменная [,переменная] ... – пречисляет имена переменных, используемых в программе и заданных в другой программе
4. директива .global переменная [,переменная] ... – пречисляет имена общих переменных и заменяет директивы .def и .ref

Если программа состоит из нескольких частей (файлов), то дополнительные файлы могут включаться в основной (директивы .include и .copy) или транслироваться отдельно (в этом случае необходимы директивы .def, .ref или .global). При этом в проект командой Project | Add Files to Project… включаются файлы с исходным кодом (транслируются каждый раз) или с объектным кодом (расширение .obj – оттранслированы заранее).
Файлы с объектным кодом могут быть подключены к проекту также с помощью командного файла в котором задаются и физические адреса начала каждой секции. Порядок объединения файлов задается командой Project | Build Options… | Link Order или их порядком в командном файле.
Примечания:
а) файлы подключенные к проекту объединяются первыми;
б) в командном файле различаются в имени файла большие и малые буквы и не допускаются имена файлов со знаком минус (часть имени от знака минус “-“ игнорируется, т.к. знак минус является признаком режима).

2) Программа подсчета количества элементов массива удовлетворяющих заданному условию

Исходные данные и варианты задачи аналогичны практическому занятию №9.

Используемые команды:

    ; 1 - вход:  a) память, b) McDRR, c) PA
    ; 2 - выход: a) память, b) McDXR, c) PA
    ; 3 - счетчик: a) .set, b) .word
    ; 4 - данные: a) знаковые(Ц), b) беззнаковые(Ц), c) дробные(З)
    ; 5 - цикл: a) BANZ, b) RPTB
    	ror	a		; Подсчет четных/нечетных		(1)
    	sfta	a, -1		;	- " -				(1)
    	sftl	a, -1		;	- " -				(1)
    	sub	#Cons, a	; Сравнить с порогом знаковые		(2)
    	sub	*(CONS), a	; Сравнить с порогом знаковые		(2)
    	subs	*(CONS), a	; Сравнить с порогом беззнаковые	(2)
    	and	#1, a		; Для четных или нечетных		(2)
    	add	a, b		; Подсчет нечетных без BC		(1)
    	sub	a, b		; Подсчет четных без BC			(1)
    	bc	next, c		; Пропустить нечетные			(2)
    	bc	next, nc	; Пропустить четные			(2)
    	bc	next, alt	; Проп.отрицательные (<порога)		(2)
    	bc	next, ageq	; Проп.положительные (=>порога)		(2)
    	mar	*ar4+		; Увеличить счетчик			(1)
    next:				; Условие не выполняется

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