
- •Содержание
- •Цель и содержание работы
- •Задание для домашней подготовки
- •Контрольные вопросы
- •Архитектура микроконтроллеров st7
- •Введение
- •3.2. Структурная схема st7lite2
- •Описание вводов/выводов (pin)
- •Карта регистров и памяти
- •Регистры функциональных устройств st7
- •Flash память программ
- •3.5.1. Способы программирования
- •Интерфейс icc
- •3.5.2. Защита flash памяти
- •Память данных eeprom
- •3.7. Центральный процессор (cpu)
- •3.7.1. Главные особенности cpu
- •3.7.2. Регистры центрального процессора (cpu)
- •Указатель стека (sp – stack pinter)
- •3.7.3. Работа со стеком
- •3.8. Система команд st7
- •3.8.1. Способы адресации
- •17 Способов адресации
- •Inherent (Неявная адресация)
- •Непосредственная (Immediate)
- •Индексная (без смещения, короткая, длинная)
- •Косвенная (короткая, длинная)
- •Косвенная индексная (короткая, длинная)
- •Команды поддерживающие прямую, индексную, косвенную и косвенно-индексную адресацию
- •Относительный способ (прямой, косвенный)
- •3.8.2. Описание системы команд
- •Использование предбайта
- •Сброс при незаконном коде операции
- •Введение в среду разработки stvd7
- •Установка и настройка среды
- •Установка stvd7 3.11 (с поддержкой inDart-stx)
- •Установка stvd7 3.3.1 (с поддержкой эмулятора sim)
- •Работа в среде stvd7
- •Создание рабочего пространства и проекта
- •Добавление файлов в проект
- •Отладка программы в среде stvd7
- •Меню Debug
- •Меню View в режиме отладки
- •Дополнительные окна в меню в режиме отладки
- •Лабораторные задания
- •Приложение 1
- •Приложение 2 Программа формирования в памяти массива чисел
- •Приложение 3 Шаблон основной программы микроконтроллера st7
- •Архитектура микроконтроллеров st7
- •620002, Екатеринбург, ул. Мира, 19
- •620002, Екатеринбург, ул. Мира, 19
Указатель стека (sp – stack pinter)
Регистр SPдоступен для чтения/записи.Cостояние регистра послеRESET: 01FFh. Указатель стека – 16-битовый регистр, который всегда указывает на следующее свободное место в стеке (на адрес).
Примечание.Состояние регистраSPпослеResetеще зависит от типаMCU, по значению в этом состоянии можно программно определить типMCU.
3.7.3. Работа со стеком
Стек предназначен для сохранения контекста CPU(регистров: РС, СС, А, Х) во время вызова подпрограмм и обработчиков прерываний, а также для сохранения пользовательских данных (с помощью инструкцийPUCH,POP). Последовательность сохранения контекста регистров в стеке:PCL,PCH,X,A,CC.
В случае переполнения указателю стека SPприсваивается максимальный адрес стека, значения по этому адресу затираются новыми данными, которые помещаются в стек. Переполнение стека не контролируется, поэтому при работе со стеком необходимо отслеживать объем помещаемых в стек данных и избегать его переполнения.
Положение указателя стека можно изменить на произвольное значение в пределах допустимого диапазона командой LDSP,A. Начальное значение указателя стека устанавливается командойRSP.
Размер стека и его расположение в памяти зависит от типа MCU, например:
– ST72254: 128 байт (от 0100hдо 017Fh);
– ST72521: 256 байт (от 0100hдо 01FFh).
При установке микроконтроллера в начальное состояние регистр SPуказывает на старший адрес стека. После записи байта в стек содержимое регистраSPуменьшается на единицу, адресуя незаполненную ячейку стека (рис. 3.5).
Рис. 3.5. Иллюстрация работы стека
3.8. Система команд st7
Символы, используемые при описании команд.
– {…} означает содержимое регистра или ячейки памяти.
– $ означает шестнадцатеричное число.
– # означает непосредственный операнд.
3.8.1. Способы адресации
Ядро ST7 обеспечивает 17 различных способов адресации, которые могут быть разделены на семь основных групп:
-
Способ адресации
Пример команды
Неявная (Inhern)
nop
Непосредственная (Immediate)
Ld A,#$45
Прямая (Direct)
Ld A,$36
Индексная (Indexed)
Ld A,($58,X)
Непрямая, косвенная (Indirect)
Ld A,([$72],X)
Относительная (Relative)
Jrne loop
Битовых операций
Bset byte,#7
Набор команд ST7 разработан cучетом минимизации их формата (количества байт). Основные способы адресации могут быть подразделены на два подспособа, названныедлинным и коротким.
Длинный способ может использовать полное 64-килобайтное адресное пространство, однако использует большее число байт и циклов центрального процессора. Короткий способ адресации более компактный и более быстрый, но получает доступ только к нулевой странице памяти к диапазону адресов 0000h–00FFh. Только короткий способ адресации используется в командахCLR,CPL,NEG.BSET, BRES, BTJT, BTJF, INC, DEC, RLC, SLL, SRL, SRA, SWAP.
Ассемблер ST7 оптимизирован для использования длинной и короткой способов адресации. В качестве примера в табл. 3.4 приведены способы адресации.
Т а б л и ц а 3.4