Реферат: Бакалаврская работа. Программная модель 32-разядной МЭВМ фирмы Motorola
							  При включении микроконтроллера происходит автоматическая установка начального состояния регистров. В регистре SR устанавливается значение бита S=1, и процессор начинает работать в режиме супервизора. Из памяти загружаются начальные значения содержимого программного счетчика PC и указателя стека. Если в процессе дальнейшей работы потребуется перевод процессора в режим пользователя, то с помощью команды MOVE to SR в регистр SR загружается новое содержимое, в котором бит S=0. Обратный перевод в режим супервизора производится при обслуживании запросов прерывания или возникновении исключительных ситуаций, а также в процессе установки процессора в начальное состояние (повторный запуск) при поступлении внешнего сигнала сброса или команды RESET.
Регистры VBR, SFC, DFC доступны только в режиме супервизора. В 32-разрядный регистр VBR заносится базовый адрес таблицы векторов исключений. Загрузка этого регистра производится командой MOVEC. При обслуживании исключений формируемое процессором значение Av=4Ne является относительным адресом (смещением), определяющим положение выбираемого вектора в таблице, которая может быть размещена в любом месте адресного пространства. В 3-разрядные регистры SFC,DFC с помощью команды MOVEC заносится код адресного пространства, который поступает на выводы FC2-0 микроконтроллера при выполнении команды MOVES. Таким образом обеспечивается расширение адресного пространства с помощью организации виртуальной памяти
Форматы данных
Процессор выполняет обработку битов, байтов, 16-разрядных слов, 32-разрядных длинных слов и двоично-десятичных чисел (1 байт = 2 десятичных разряда). Обрабатываемые данные - операнды могут располагаться в регистрах (данных или адреса) или оперативной памяти. Для выборки слова (байты B1-0) или длинного слова (байты B3-0) команда задает адрес старшего байта N, четный или кратный четырем. При этом слова и длинные слова размещаются таким образом, что младшие байты (разряды D7-0 данных) располагаются в ячейках памяти с большими адресами: N+1 или N=3 (рис.3.3). Такое размещение байтов в памяти от старшего к младшему соответствует естественному порядку их написания слева - направо. Этот порядок адресации байтов называется в зарубежной литературе "big-endian". Он отличается от порядка "little-endian", принятого компанией INTEL и рядом других производителей, когда размещение слова начинается с младшего байта, адрес которого служит адресом слова.
МП МС86300 имеет возможность доступа в памяти к байту (8 бит), слову (16 бит) и длинному слову (32 бита). В отличие от МП фирмы Intel (8086, 80286, 80386, 80486) в МП 68300 приняты следующие соглашения:
слова (длинные слова) могут размещаться только по четным адресам;
старшие байты слова (двойного слова) располагаются в ячейках с меньшими адресами;
адресом слова (двойного слова) считается его старший байт.
Таким образом, в соответствии с концепцией, принятой фирмой Моторола, слово размещается в памяти в двух соседних ячейках и начинается со старшего байта. Это означает, что при чтении слова, размещенного по адресу Х МС68300 считывает два соседних байта, причем байт по адресу Х интерпретируется как старший, а байт по адресу Х+1 как младший. Соответственно, длинное слово размещается в четырех смежных ячейках памяти, причем старший байт длинного слова находится по меньшему адресу.
Способы адресации
Процессор CPU32 реализует следующие способы адресации операндов:
- регистровая (операнд в регистре данных или адреса),
 - косвенно-регистровая (операнд в ячейке памяти, адресуемой содержимым регистра адреса),
 - косвенно-регистровая с постинкрементом (операнд в ячейке памяти, адресуемой содержимым регистра адреса, которое автоматически увеличивается после выборки операнда для адресации следующей ячейки),
 - косвенно-регистровая с предекрементом (операнд в ячейке памяти, адресуемой содержимым регистра адреса, которое автоматически уменьшается перед выборкой операнда для адресации предыдущей ячейки),
 - косвенно-регистровая со смещением (операнд в ячейке памяти, адрес которой является суммой содержимого регистра адреса и 16-разрядного смещения d16, заданного в команде),
 - косвенно-регистровая с индексированием (операнд в ячейке памяти, адрес которой является суммой содержимого регистра адреса, индексного регистра и данного в команде 8-разрядного смещения d8),
 - прямая (операнд в ячейке памяти, адрес которой задается числом Abs, указанным в команде),
 - относительная (операнд в ячейке памяти, адрес которой является суммой текущего содержимого программного счетчика PC и данного в команде 16-разрядного смещения d16 или базового смещения bd),
 - относительная с индексированием (операнд в ячейке памяти, адрес которой является суммой содержимого программного счетчика PC, индексного регистра и данного в команде 16-разрядного смещения d16 или 32-разрядного базового смещения bd),
 - непосредственная (значение операнда Im дано в команде).
 
Форматы команд
Команды процессора МС68300 могут содержать от одного до пяти слов. Любая команда всегда расположена по четному адресу. Формат команды в общем виде показан на рисунке 1:
| 
 Командное слово (первое слово, определяющее операцию и способ адресации)  | 
| 
 Непосредственный операнд (одно или два слова)  | 
| 
 Эффективный адрес источника (одно или два слова)  | 
| 
 Смещение (одно или два слова)  | 
Рисунок 1.
Система команд CPU32
Процессор CPU32 выполняет набор из 139 команд, которые реализуют следующие группы операций:
- операции пересылки,
 - арифметические операции,
 - логические операции,
 - операции сдвига,
 - операции сравнения и тестирования,
 - битовые операции,
 - операции управления;
 - операции условной установки байтов.
 
Таблица1 - Набор команд процессора CPU32
| 
 Синтаксис ассемблера  | 
 Разрядность  | 
 Операция  | 
 Адресация  | 
| ADD Dn, <EA> | B, W, L | <dst> + Dn -> <dst> | 1,(3-9,13) | 
| ADD <EA> , Dn | B, W, L | Dn+ <src> - Dn | (1-14),1 | 
| ADDA <EA>, An | W, L | <dst> + An -> An | (1-14),2 | 
| ADDI # Im, <EA> | B, W, L | <dst> + Im -> <dst> | 12,(1,3-9,13) | 
| ADDQ # Im, <EA> | B, W, L | <dst> + Im -> <dst> | 12,(1-9,13) | 
| ADDX Dy, Dx | B, W, L | Dx + Dy + X -> Dx | 1,1 | 
| ADDX - (Ay),- (Ax) | B, W, L | <dst> + <src> + X -> <dst> | 5,5 | 
| SUB Dn, <EA> | B, W, L | <dst> - Dn -> <dst> | 1,(3-9,13) | 
| SUB <EA>, Dn | B, W, L | Dn+ <src> -> <dst> | (1-14),1 | 
| SUBA <EA>,An | W, L | An- <src> -> An | (1-14),2 | 
| SUBI # Im, <EA> | B, W, L | <dst> - Im -> <dst> | 12,(1,3-9,13) | 
| SUBQ # Im, <EA> | B, W, L | <dst> - Im -> <dst> | 12,(1-9,13) | 
| SUBX Dy, Dx | B, W, L | Dx - Dy - X -> <dst> | 1,1 | 
| SUBX - (Ay), - (Ax) | B, W, L | <dst> - <src> - X -> <dst> | 5,5 | 
| NEG <EA> | B, W, L | O - <dst> -> <dst> | (1,3-9,13) | 
| NEGX <EA> | B, W, L | O - <dst> - X -> <dst> | (1,3-9,13) | 
| ABCD Dy, Dx | W | Dx + Dy + X -> Dx | 1,1 | 
| ABCD - (Ay), - (Ax) | W | <dst> + <src> + X -> <dst> | 5,5 | 
| SBCD Dy, Dx | W | Dx- Dy - X -> Dx | 1,1 | 
| SBCD - (Ay), - (Ax) | W | <dst> - <src> - X -> <dst> | 5,5 | 
| NBCD <EA> | W | O - <dst> - X -> <dst> | (1,3-9,13) | 
| MULS <EA>, Dn | W, L | Dn * <src> -> Dn | (1,3-14),1 | 
| MULS.L <EA>, Dh-Dl | L | Dn * <src> -> Dn | (1,3-14),1 | 
| MULU <EA>, Dn | W, L | Dn * <src> -> Dn | (1,3-14),1 | 
| MULU.L <EA>, Dh-Dl | L | Dl * <src> -> Dh:Dl | (1,3-14),1 | 
| DIVS <EA>, Dn | W, L | Dn / <src> -> Dn | (1,3-14),1 | 
| DIVS.L <EA>, Dr:Dq | L | Dr:Dq / <src> -> Dr:Dq | (1,3-14),1 | 
| DIVSL.L <EA>, Dr:Dq | L | Dq / <src> -> Dr:Dq | (1,3-14),1 | 
| DIVU <EA>, Dn | W | Dn / <src> -> Dn | (1,3-14),1 | 
| DIVU.L <EA>, Dr:Dq | L | Dr:Dq / <src> -> Dr:Dq | (1,3-14),1 | 
| DIVUL.L <EA>, Dr:Dq | L | Dq / <src> -> Dr:Dq | (1,3-14),1 | 
| CLR <EA> | B,W,L | 0 -> <dst> | (1,3-9,13) | 
Таблица2 - Команды логических операций
| 
 Синтаксис ассемблера  | 
 Разрядность  | 
 Операции  | 
 Адресация  | 
| AND <EA>, Dn | B, W, L | Dn ^ <src> -> Dn | (1, 3 - 14), 1 | 
| AND Dn, <EA> | B, W, L | <dst> ^ Dn -> <dst> | 1, (1,3 - 9,13) | 
| ANDI # Im, <EA> | B, W, L | <dst> ^ Im -> <dst> | 12, (1, 3 - 9,13) | 
| ANDI # Im, CCR | W | CCR ^ Im -> CCR | 12, - | 
| ANDI # Im, SR | W | SR ^ Im -> SR | 12, - | 
| OR <EA>, Dn | B, W, L | Dn <src> -> Dn | (1, 3 - 14), 1 | 
| OR Dn, <EA> | B, W, L | <dst> Dn -> <dst> | 1, (1,3 - 9,13) | 
| ORI # Im, <EA> | B, W, L | <dst> Im -> <dst> | 12, (1, 3 - 9,13) | 
| ORI # Im, CCR | W | CCR Im -> CCR | 12, - | 
| ORI # Im, SR | W | SR Im -> SR | 12, - | 
| EOR Dn, <EA> | B, W, L | <dst> + Dn -> <dst> | 1, (1, 3 - 9,13) | 
| EORI # Im, <EA> | B, W, L | dst> + Im -> <dst> | 12, (1, 3 - 9,13) | 
| EORI # Im, CCR | W | CCR + Im -> CCR | 12, - | 
| EORI # Im, SR | W | SR + Im -> SR | 12, - | 
| NOT | B, W, L | <dst> -> <dst> | (1, 3 - 9.13) | 


