СТ6 и СТ7
ST6 ST7 и — 8-битных микроконтроллеров это линейка от STMicroelectronics . Они обычно используются в небольших встроенных приложениях, таких как стиральные машины .
Хотя они используют схожие периферийные устройства и продаются как часть одной и той же линейки продуктов, [1] [2] две архитектуры на самом деле совершенно разные.
Оба имеют 8-битный аккумулятор, используемый для большинства операций, а также два 8-битных индексных регистра (X и Y), используемые для адресации памяти. Кроме того, оба имеют 8-битные инструкции, за которыми следуют до 2 байтов операндов, и оба поддерживают манипуляции и ветвления в отдельных битах памяти.
На этом сходство заканчивается.
ST6 представляет собой гарвардскую архитектуру с 8-битным (256 байт) адресным пространством данных и отдельным 12-битным (4096 байт) программным пространством. Операнды всегда имеют длину 1 байт, а некоторые инструкции поддерживают два операнда, например «переместить 8-битный немедленный адрес памяти в 8-битный». Вызовы подпрограмм выполняются с использованием отдельного аппаратного стека. Регистры данных (но не программный счетчик или флаги) отображаются в памяти.
ST6 Режимы адресации ограничены немедленным 8-битным абсолютным адресом памяти и косвенными режимами регистрации (X) и (Y).
ST7 представляет собой архитектуру фон Неймана с одним 16-битным (64 КБ) адресным пространством. Первые 256 байт ОЗУ ( нулевая страница ) обладают дополнительной гибкостью. Инструкций с двумя операндами нет, за исключением «тестового бита и перехода». Его регистры не отображаются в памяти, и для вызовов подпрограмм он использует ОЗУ общего назначения (плюс регистр указателя стека ).
ST7 поддерживает широкий спектр режимов адресации, включая базовый+индексный и двойной косвенный.
Архитектура ST6
[ редактировать ]ST6 имеет 64 байта ОЗУ и 4096 байт ПЗУ программ . Доступ к более крупным суммам осуществляется путем переключения банков в младшей части 2K ПЗУ.
Адресное пространство ОЗУ на самом деле составляет 256 байт, разделенных следующим образом:
- 0–63: не реализовано.
- 64–127: Окно с переключением банков в ПЗУ программ и СППЗУ данных .
- 128–191: ОЗУ общего назначения.
- 192–255: регистры управления периферией (порты GPIO, таймеры и т. д.). Аккумулятор отображается по адресу 255, но чаще всего к нему обращаются неявно.
В адресное пространство не отображается 12-битный программный счетчик и связанный с ним аппаратный стек (глубиной четыре или шесть уровней, в зависимости от модели). Есть только два бита состояния ( перенос и ноль ), и они группируются в зависимости от режима процессора с отдельными битами состояния для нормальной работы, прерывания и немаскируемого прерывания .
Первые четыре ячейки ОЗУ общего назначения также известны как регистры X, Y, V и W, и некоторые инструкции могут получить к ним доступ, используя специальные режимы короткой адресации. Регистры X и Y служат индексными регистрами и могут использовать режимы косвенной адресации. (X)
и (Y)
.
Набор инструкций состоит из одного байта кода операции, за которым следуют до двух однобайтовых операндов. Набор инструкций можно резюмировать следующим образом:
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | б2 | б3 | Мнемоника | С | С | Описание |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
компенсировать | опк | 0 | — | — | Условные переходы (5-битные относительно ПК) | ||||||||
компенсировать | 0 | 0 | 0 | — | — | JRNZ Адрес | Перейти на ПК + SIMM5, если Z == 0 | ||||||
компенсировать | 1 | 0 | 0 | — | — | JRZ адрес | Перейти на ПК + simm5, если Z == 1 | ||||||
компенсировать | 0 | 1 | 0 | — | — | JRNC Адрес | Перейти на ПК + simm5, если C == 0 | ||||||
компенсировать | 1 | 1 | 0 | — | — | JRC Адрес | Перейти на ПК + simm5, если C == 1 | ||||||
imm4 | с | 0 | 0 | 1 | imm8 | — | Безусловные переходы (12-битный абсолютный) | ||||||
imm4 | 0 | 0 | 0 | 1 | imm8 | — | ЗВОНИТЕ imm12 | Нажмите ПК, перейдите на 12-битный адрес. | |||||
imm4 | 1 | 0 | 0 | 1 | imm8 | — | JP imm12 | Перейти на 12-битный адрес | |||||
— | 0 | 0 | 1 | 0 | 1 | — | — | (сдержанный) | |||||
рег | с | 1 | с | 1 | 0 | 1 | — | — | Регистрация операций (по X, Y, V или W) | ||||
рег | 0 | 1 | 0 | 1 | 0 | 1 | — | — | INC регистрация | С | Регистр приращения. Z установлен, C нет. | ||
рег | 1 | 1 | 0 | 1 | 0 | 1 | — | — | ЛД А, рег. | С | А := {X, Y, V или W} | ||
рег | 0 | 1 | 1 | 1 | 0 | 1 | — | — | DEC рег | С | Регистр декремента. Z установлен, C нет. | ||
рег | 1 | 1 | 1 | 1 | 0 | 1 | — | — | ЛД рег ,А | С | {X, Y, V или W} := A | ||
код операции | 0 | 1 | 1 | 0 | 1 | — | — | Разные операции | |||||
0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | адрес | imm8 | LDI-адрес, imm8 | Установите ОЗУ на 8-битное немедленное значение | ||
1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | — | — | (сдержанный) | |||
0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | — | — | РЕДКО | Возврат из прерывания. Всплываем комп, восстанавливаем флаги. | ||
1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | — | — | ВЕРНО | Возврат из подпрограммы. Извлеките компьютер из аппаратного стека. | ||
0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | — | — | С | С | С | Дополнение: C := msbit(A); А := ~А |
1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | — | — | РЛЦ А | С | А := А + А + С | |
0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | — | — | ОСТАНАВЛИВАТЬСЯ | Остановить процессор, тактовую частоту и большинство периферийных устройств до следующего прерывания. | ||
1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | — | — | ЖДАТЬ | Остановить процессор до следующего прерывания; часы продолжаются | ||
кусочек | опк | 0 | 1 | 1 | адрес | ? | Битовые операции (только абсолютный адрес) | ||||||
кусочек | 0 | 0 | 0 | 1 | 1 | источник | имя8 | JRR Бит , источник , адрес | С | C := источник.бит; перейти на ПК+simm8 при сбросе (очистить) | |||
кусочек | 1 | 0 | 0 | 1 | 1 | источник | имя8 | JRS Бит , источник , адрес | С | C := источник.бит; перейти на ПК+simm8, если установлено | |||
кусочек | 0 | 1 | 0 | 1 | 1 | летнее время | — | RES бит , dst | Сбросить (установить в 0) dst.bit | ||||
кусочек | 1 | 1 | 0 | 1 | 1 | летнее время | — | SET Бит , dst | Установить (в 1) dst.bit | ||||
код операции | данные | 1 | 1 | 1 | ? | — | Операции АЛУ с ОЗУ или непосредственные | ||||||
код операции | 0 | 0 | 1 | 1 | 1 | — | — | (Х) | Операнд: (X) | ||||
код операции | 0 | 1 | 1 | 1 | 1 | — | — | (И) | Операнд: (Y) | ||||
код операции | 1 | 0 | 1 | 1 | 1 | imm8 | — | imm8 | Операнд является 8-битным непосредственным ( только исходный код ). | ||||
код операции | 1 | 1 | 1 | 1 | 1 | адрес | — | адрес | Операнд — это 8-битный адрес ОЗУ. | ||||
0 | 0 | 0 | источник | 1 | 1 | 1 | ? | — | ЛД А, источник | С | А := источник | ||
1 | 0 | 0 | летнее время | 1 | 1 | 1 | ? | — | ЛД дст ,А | С | dst := A ( немедленно запрещено ) | ||
0 | 1 | 0 | источник | 1 | 1 | 1 | ? | — | ДОБАВИТЬ А, источник | С | С | А := А + источник | |
1 | 1 | 0 | источник | 1 | 1 | 1 | ? | — | СУБ А, источник | С | С † | А := А - источник | |
0 | 0 | 1 | источник | 1 | 1 | 1 | ? | — | КП А, источник | С | С † | А — источник | |
1 | 0 | 1 | источник | 1 | 1 | 1 | ? | — | И А, источник | С | А := А & источник | ||
0 | 1 | 1 | летнее время | 1 | 1 | 1 | ? | — | ВКЛ . | С | dst := dst + 1 ( немедленно запрещено ) | ||
1 | 1 | 1 | летнее время | 1 | 1 | 1 | ? | — | декабрь летнее время | С | dst := dst − 1 ( немедленно запрещено ) |
†: ^ а б Как ни странно, разные модели семейства ST6 используют разные соглашения о значении бита переноса после вычитания. Процессоры ST60 используют соглашение «перенос», которое очищает бит, если при вычитании происходит меньшее значение, тогда как процессоры ST62 и ST63 используют соглашение «заимствование», которое в этом случае устанавливает бит. [3] : 21–22,42
Архитектура ST7
[ редактировать ]ST7 имеет шесть регистров: аккумулятор, индексные регистры X и Y, указатель стека, программный счетчик и регистр кода состояния. Кроме того, двойная косвенная адресация позволяет нулевой странице ОЗУ служить дополнительными регистрами. Необычная, но полезная особенность заключается в том, что прерывание помещает в стек четыре таких регистра (A и X, а также обычные PC и CC), а возврат по прерыванию их восстанавливает.
Инструкции ALU делятся на две категории: с двумя операндами и с одним операндом.
Инструкции с двумя операндами используют аккумулятор в качестве первого источника. Режим адресации определяет второй источник, которым может быть:
- 8-битный немедленный
- 8-битный абсолютный адрес
- 16-битный абсолютный адрес
- Индексировано (X)
- Индексированный плюс 8-битное смещение (адрес8,X)
- Индексированный плюс 16-битное смещение (адрес16,X)
Назначением обычно является аккумулятор, но некоторые инструкции изменяют второй источник. (Непосредственные операнды в таких случаях запрещены.)
Инструкции с одним операндом используют указанный операнд как для источника, так и для назначения. Операнд может быть:
- Аккумулятор А
- Регистр X
- 8-битный абсолютный адрес
- Индексировано (X)
- Индексированный плюс 8-битное смещение (адрес8,X)
Регистр плюс смещение вычисляет сумму полной ширины, поэтому 8-битная форма может адресовать память до 255+255 = 510.
В дополнение к вышесказанному, есть три префиксных байта, которые могут быть добавлены к любой инструкции, для которой они имеют смысл:
- PDY (0x90) изменяет все ссылки на регистр X на Y. Это позволяет использовать режимы адресации (Y), (адрес8,Y) и (адрес16,Y). Это также влияет на неявные операнды, поэтому инструкция «загрузить X» становится «загрузить Y». Следствием этого является то, что нагрузка X может использовать только режимы адресации относительно X, а нагрузка Y может использовать только режимы адресации относительно Y.
- PIX (0x92) добавляет к инструкции шаг косвенного обращения. 8- или 16-битный адрес, следующий за байтом кода операции, заменяется 8-битным адресом ячейки памяти, которая содержит 8- или 16-битный адрес (последний в обратном порядке). Затем это может быть проиндексировано регистром X, как обычно. Это позволяет использовать режимы адресации (адрес8), (адрес16), ([адрес8],X) и ([адрес8.w],X).
- PIY (0x91) сочетает в себе вышеуказанные эффекты. Это позволяет использовать режимы адресации ([address8],Y) и ([address8.w],Y). (Его также можно использовать с другими режимами как часть инструкций «загрузить Y» и «сохранить Y».)
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | б2 | б3 | Мнемоника | Описание |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | с | кусочек | v | адрес | ? | Битовые операции | |||
0 | 0 | 0 | 0 | кусочек | 0 | адрес8 | soff8 | BTJT addr8 , # бит , метка | Перейти к ПК + soff8, если исходный бит истинен (установлен) | ||
0 | 0 | 0 | 0 | кусочек | 1 | адрес8 | soff8 | BTJF адрес8 , # бит , метка | Перейти к ПК + soff8, если исходный бит ложный (сброс) | ||
0 | 0 | 0 | 1 | кусочек | 0 | адрес8 | — | BSET адрес8 , # бит | Установить указанный бит на 1 | ||
0 | 0 | 0 | 1 | кусочек | 1 | адрес8 | — | BRES адрес8 , # бит | Сбросить (очистить) указанный бит в 0 | ||
0 | 0 | 1 | 0 | состояние | soff8 | — | Условные переходы (8-битное относительное смещение) | ||||
0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | soff8 | — | JRA Этикетки | Ветка всегда (истина) |
0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | soff8 | — | JRF Этикетка | Ветка никогда (ложь) |
0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | soff8 | — | JRUGT Этикетка | Переход, если беззнаковое число больше (C=0 и Z=0) |
0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | soff8 | — | JRULE Ярлык | Переход, если беззнаковое число меньше или равно (C=1 или Z=1) |
0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | soff8 | — | JRNC Этикетка | Переходить, если нет переноса (C=0) |
0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | soff8 | — | JRC Этикетка | Ответвление при переносе (C=1) |
0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | soff8 | — | JRNE Этикетка | Разветвление, если не равно (Z=0) |
0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | soff8 | — | JREQ Метка | Разветвление при равенстве (Z=1) |
0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | soff8 | — | JRNH Этикетка | Переход, если не полуперенос (H=0) |
0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | soff8 | — | JRH Этикетка | Переход в случае полупереноса (H=1) |
0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | soff8 | — | JRPL Лейбл | Переход, если плюс (N=0) |
0 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | soff8 | — | JRMI Этикетка | Переходить, если минус (N=1) |
0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | soff8 | — | JRNM Этикетка | Переход по маске прерывания (M=0) |
0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | soff8 | — | JRM Этикетки | Переход, если прерывания замаскированы (M=1) |
0 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | soff8 | — | JRIL Этикетка | Переход, если линия прерывания имеет низкий уровень |
0 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | soff8 | — | JRIH Этикетка | Переход, если линия прерывания имеет высокий уровень |
0 | режим | код операции | ? | — | Инструкции с одним операндом | ||||||
0 | 0 | 1 | 1 | код операции | адрес8 | — | ОП адрес8 | 8-битный абсолютный адрес | |||
0 | 1 | 0 | 0 | код операции | — | — | ОП А | аккумулятор | |||
0 | 1 | 0 | 1 | код операции | — | — | ОП Х | Регистр X (регистр Y с префиксом) | |||
0 | 1 | 1 | 0 | код операции | адрес8 | — | ОП (адрес8,X) | 8-битный адрес плюс X | |||
0 | 1 | 1 | 1 | код операции | — | — | ОП (Х) | Индексировано без смещения | |||
0 | режим | 0 | 0 | 0 | 0 | ? | — | ОБРАТНЫЙ операнд | Отрицание с дополнением до двух | ||
0 | режим | 0 | 0 | 0 | 1 | ? | — | (сдержанный) | |||
0 | режим | 0 | 0 | 1 | 0 | ? | — | (сдержанный) | |||
0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | — | — | МУЛ Х,А | X:A := X × A. (MUL Y,A с префиксом) |
0 | режим | 0 | 0 | 1 | 1 | ? | — | CPL- операнд | Дополнение единиц, логическое нет | ||
0 | режим | 0 | 1 | 0 | 0 | ? | — | SRL операнд | Сдвиг вправо логично. Msbit очищен, lsbit нужно перенести. | ||
0 | режим | 0 | 1 | 0 | 1 | ? | — | (сдержанный) | |||
0 | режим | 0 | 1 | 1 | 0 | ? | — | RRC Операнд | Поворот вправо через перенос, (операнд:C) := (C:operand) | ||
0 | режим | 0 | 1 | 1 | 1 | ? | — | SRA Операнд | Сдвиг вправо арифметики. Мсбит сохранился, лебит носить с собой. | ||
0 | режим | 1 | 0 | 0 | 0 | ? | — | SLL- операнд | Сдвиг влево. Мсбит носить с собой. | ||
0 | режим | 1 | 0 | 0 | 1 | ? | — | RLC- операнд | Поворот влево через перенос. | ||
0 | режим | 1 | 0 | 1 | 0 | ? | — | декабря операнд | Декремент. (установлены N и Z, перенос не влияет) | ||
0 | режим | 1 | 0 | 1 | 1 | ? | — | (сдержанный) | |||
0 | режим | 1 | 1 | 0 | 0 | ? | — | ВКЛ. операнд | Приращение. (установлены N и Z, перенос не влияет) | ||
0 | режим | 1 | 1 | 0 | 1 | ? | — | ТНЗ операнд | Тест ненулевой. Установите N и Z на основе операнда. | ||
0 | режим | 1 | 1 | 1 | 0 | ? | — | замены Операнд | Поменять местами половины операнда (4-битное вращение). | ||
0 | режим | 1 | 1 | 1 | 1 | ? | — | CLR операнд | Установите операнд на 0. N и Z установлены на фиксированные значения. операнд. | ||
1 | 0 | 0 | код операции | — | — | Разные инструкции. Ни один неявно не устанавливает коды условий. | |||||
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | — | — | Он пойдет | Возврат из прерывания (pop CC, A, X, PC) |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | — | — | ВЕРНО | Возврат из подпрограммы (поп-ПК) |
1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | — | — | ЛОВУШКА | Принудительное прерывание ловушки |
1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | — | — | (сдержанный) | |
1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | — | — | ПОП А | Вытащить A из стека |
1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | — | — | ПОП Х | Вытащить X из стека |
1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | — | — | ПОП СС | Извлечь коды условий из стека |
1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | — | — | (сдержанный) | |
1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | — | — | НАЖМИТЕ А | Поместите A в стек |
1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | — | — | НАЖМИТЕ Х | Поместите X в стек |
1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | — | — | НАЖМИТЕ СС | Поместить коды условий в стек |
1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | — | — | (сдержанный) | |
1 | 0 | 0 | 0 | 1 | 1 | 0 | — | — | — | (сдержанный) | |
1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | — | — | ОСТАНОВКА | Остановить процессор и часы |
1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | — | — | ВФИ | Дождитесь прерывания, останавливая процессор, но не часы. |
1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | — | — | ПДИ | Префикс инструкции; поменяйте местами X и Y в следующей инструкции |
1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | — | — | Толстый | Префикс инструкции; ПДИ плюс ПИКС |
1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | — | — | ПИКС | Префикс инструкции; использовать косвенную 8-битную память для операнда |
1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | — | — | ЛД X,Y | X := Y. При использовании PDY выполняется «LD Y,X». |
1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | — | — | ЛД S,X | S := X. Загрузить указатель стека. |
1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | — | — | ЛД С,А | S := A. Загрузить указатель стека. |
1 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | — | — | ЛД X,S | Х := С. |
1 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | — | — | ЛД Х,А | Х := А. |
1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | — | — | РШФ | Сбросить (очистить) флаг переноса |
1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | — | — | СКФ | Установить флаг переноса |
1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | — | — | РИМ | Сбросить маску прерываний (включить прерывания) |
1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | — | — | Сим | Установить маску прерываний (отключить прерывания) |
1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | — | — | РСП | Сбросить указатель стека (до верхней части ОЗУ) |
1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | — | — | НЕТ | Никакой операции. (=ЛД А,А) |
1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | — | — | ЛД А,С | А := С |
1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | — | — | ЛД А,Х | А := Х. |
1 | режим | код операции | ценить | ? | Инструкции с двумя операндами A := Оп операнд | ||||||
1 | 0 | 1 | 0 | код операции | imm8 | — | ОП # imm8 | 8-битный непосредственный операнд (запрещен как пункт назначения) | |||
1 | 0 | 1 | 1 | код операции | адрес8 | — | ОП адрес8 | 8-битный абсолютный адрес | |||
1 | 1 | 0 | 0 | код операции | аддри | адрес | ОП адрес 16 | 16-битный абсолютный адрес | |||
1 | 1 | 0 | 1 | код операции | аддри | адрес | ОП ( адрес16 , X) | Индексировано с 16-битным смещением | |||
1 | 1 | 1 | 0 | код операции | адрес8 | — | ОП ( адрес8 , X) | Индексировано с 8-битным смещением | |||
1 | 1 | 1 | 1 | код операции | — | — | ОП (Х) | Индексировано без смещения | |||
1 | режим | 0 | 0 | 0 | 0 | ценить | ? | СУБ А, операнд | А := А - операнд | ||
1 | режим | 0 | 0 | 0 | 1 | ценить | ? | CP A, операнд | Сравните A — операнд | ||
1 | режим | 0 | 0 | 1 | 0 | ценить | ? | SBC A, операнд | Вычитание с заимствованием A := A − операнд − C | ||
1 | режим | 0 | 0 | 1 | 1 | ценить | ? | CP X, операнд | Сравнить X — операнд | ||
1 | режим | 0 | 1 | 0 | 0 | ценить | ? | И А, операнд | A := A & операнд, поразрядно и | ||
1 | режим | 0 | 1 | 0 | 1 | ценить | ? | BCP A, операнд | Побитовый тест A и операнд | ||
1 | режим | 0 | 1 | 1 | 0 | ценить | ? | LD A, операнд | Загрузить операнд A := | ||
1 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | imm8 | — | (зарезервировано, =LD #imm8,A) | |
1 | режим | 0 | 1 | 1 | 1 | ценить | ? | LD операнд ,A | Сохранить операнд := A | ||
1 | режим | 1 | 0 | 0 | 0 | ценить | ? | Исключающее ИЛИ A, операнд | A := A ^ операнд, исключающее-или | ||
1 | режим | 1 | 0 | 0 | 1 | ценить | ? | АЦП А, операнд | A := A + операнд + C, добавить с переносом | ||
1 | режим | 1 | 0 | 1 | 0 | ценить | ? | ИЛИ А, операнд | А := А | операнд, включающий или | ||
1 | режим | 1 | 0 | 1 | 1 | ценить | ? | ДОБАВИТЬ X, операнд | А := А + операнд | ||
1 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | imm8 | х | (зарезервировано, =JP #imm8) | |
1 | режим | 1 | 1 | 0 | 0 | ценить | ? | JP операнд | PC := операнд, безусловный переход | ||
1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | soff8 | — | CALLR Метка | НАЖМИТЕ ПК, ПК := ПК + операнд |
1 | режим | 1 | 1 | 0 | 1 | ценить | ? | ВЫЗОВ операнда | Нажмите ПК, ПК := операнд | ||
1 | режим | 1 | 1 | 1 | 0 | ценить | ? | LD X, операнд | Загрузить X := операнд | ||
1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | imm8 | — | (зарезервировано, =LD #imm8,X) | |
1 | режим | 1 | 1 | 1 | 1 | ценить | ? | LD операнд ,X | Сохранить операнд := X |
Ссылки
[ редактировать ]- ^ Техническое описание: ST62T00C/T01C от 1998 г.
- ^ «Каталог микроконтроллеров/микропроцессоров EDN, 2006 г., 8-битные микропроцессоры, отсортированные по архитектуре набора команд» (PDF) . п. 26. 100616 edn.com
- ^ Jump up to: а б «Руководство по программированию семейства ST6» (PDF) . Версия 2.0. СТМикроэлектроника . Октябрь 2004 года . Проверено 28 февраля 2017 г.
- ^ «Руководство по программированию семейства ST7» (PDF) . Редакция 2. STMicroelectronics . Ноябрь 2005 года . Проверено 28 февраля 2017 г.