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

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

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

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

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

1. Основные группы команд, форматы команд, основные способы адресации данных.
1) Основные блоки операционного устройства процессора

1. 40-разрядное АЛУ;
2. два 40-разрядных аккумулятора A (AG, AH, AL), B (BG, BH, BL);
3. 8 вспомогательных регистров AR0-AR7;
4. регистры состояния ST0, ST1 с битами управления SXM, OVM и состояния C, OVA, OVB.

2) Память данных имеет страничную организацию, адресуемое пространство до 64 Кслов, разбита на 512 страниц по 128 слов и делится на:

1. регистры с отображением на память . . . . . . . 0х0000-0х005F;
2. сверхоперативная память на 0-й странице. . . 0х0060-0х007F;
3. внутренняя память с двойным доступом. . . . . 0х0080-0х3FFF;
4. внешняя память . . . . . . . . . . . . . . . . . . . . . 0х4000-0хFFFF.

Выбор текущей страницы памяти данных осуществляется с помощью 9-разрядного регистра DP.
Числа в 16-ричной системе счисления могут обозначаться двумя способами: 0х007F или 007Fh. При использовании второго способа, если число начинается с буквы (A-F), то перед ним обязательно добавляется ноль - 0F23Ah.

3) Основные способы адресации памяти данных

1. непосредственная;
2. абсолютная;
3. прямая;
4. косвенная.

Далее приведены три способа косвенной адресации из 16.

Поле MOD | Синтаксис операнда | Функции | Описание
Одинарный операнд (Smem)
0000 (0) | *ARx | адрес = ARx | ARx содержит адрес памяти данных
0001 (1) | *ARx- | адрес = ARx ARx = ARx - 1 | После доступа к памяти адрес в ARx уменьшается на 1
0010 (2) | *ARx+ | адрес = ARx ARx = ARx + 1 | После доступа к памяти адрес в ARx увеличивается на 1

4) Используемые условные сокращения

Символ | Значение
A | Аккумулятор A
AR | Вспомогательный регистр
ARx | Определяет указанный вспомогательный регистр (0…7)
B | Аккумулятор B
BК | Регистр размера кольцевого буфера
BRC | Счетчик повторения блока команд
C | Бит переноса в ST0
DP | 9-битное поле указателя страницы памяти данных в ST0 (0…511)
dst | Аккумулятор-приемник А или B)
K | Короткое непосредственное значение (константа) (0…255)
K3 | 3-битное непосредственное значение (0…7)
K5 | 5-битное непосредственное значение (-16…15)
K9 | 9-битное непосредственное значение (0…511)
lk | 16-битное длинное непосредственное значение
Lmem | 32-битный операнд памяти данных, использующий адресацию длинного слова
mmr, MMR | Регистр, отображаемый на память
MMRx, MMRy | Регистр, отображаемый на память, AR0-AR7 или SP
N | Регистр состояния ST (0 или 1), изменяемый в командах RSBX, SSBX
OVA | Флаг переполнения аккумулятора А в ST0
OVB | Флаг переполнения аккумулятора B в ST0
OVM | Бит режима переполнения в ST1
PC | Программный счетчик
SBIT | Разряд ST0 или ST1, изменяемый в командах RSBX, SSBX (0…15)
Sind | Операнд в памяти данных одиночного доступа, использующий косвенную адресацию
Smem | 16-битный операнд в памяти данных одиночного доступа
SP | Указатель стека
src | Аккумулятор-источник (А или B)
ST0 | Регистр состояния 0
ST1 | Регистр состояния 1
SXM | Бит режима расширения знака в ST1

5) Форматы некоторых команд ассемблера

    a)	сложение				add	Y, a		; Smem, src
    b)	модуль				abs	a		; src [, dst]
    c)	изменение знака			neg	a		; src [, dst]
    d)	установка бита			ssbx	SXM		; N, SBIT
    e)	сброс бита				rsbx	OVM		; N, SBIT
    f)	нет операции			nop			;
    g)	загрузка № страницы		ld	#X, DP	; #K9, DP
    h)	загрузка двойного слова	dld	X, a		; Lmem, dst
    i)	сохранение двойного слова	dst	a, Z		; scr, Lmem

6) Директивы ассемблера для задания переменных

1. директива .def – определить глобальную переменную
   формат: .def имя переменной ;
2. директива .set(.equ) – присвоить переменной числовое значение
   формат: имя переменной .set значение ;
3. директива .mmregs – определить адреса регистров процессора и некоторых периферийных устройств, отображаемых на память;
4. директива .text – задать секцию программы (исполняемого кода);
5. директива .data – задать секцию данных (таблицы, переменные);
6. директива .align – выровнять адрес на границу кратную степени двойки (без аргумента на начало страницы)
   формат: .align [граница] ;
7. директива .word – определить слово (слова) в памяти
   формат: имя .word значение[, значение[, значение] ] ;
8. директива .long – определить двойное слово (слова) в памяти
   формат: имя .long значение[, значение[, значение] ] .
   Даная директива автоматически выполняет выравнивание на границу двойного слова (адрес в памяти всегда четный).

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