Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МвСУ_16.11.2011.doc
Скачиваний:
7
Добавлен:
01.04.2025
Размер:
6.76 Mб
Скачать

4.2.2. Регистровая модель микроконтроллеров семейства 68нс05/705/08

Процессор содержит 5 программно-доступных регистров (рис. 33): 8-разрядные аккумулятор А, индексный регистр X, регистр признаков CCR, а также 16-разрядный программный счетчик PC и указатель стека SP.

Регистр А служит для хранения одного из операндов и результата арифметических и логических операций.

8-разрядный индексный регистр X содержимое которого используется для формирования адреса при индексной адресации и позволяет пользователю индексировать или адресовать 32-килобайтовое адресное пространство.

Рис. 33. Регистровая модель процессора 68НС05

Указатель стека SP, является 16-разрядным регистром, в котором содержится адрес следующей ячейки стека. В обеспечение совместимости с семейством MС68НС05 во время сброса указатель стека устанавливается в состояние $00FF. Процессор использует содержимое регистра SP для определения фактического адреса операнда.

ПС содержит адрес очередной выполняемой команды. Число используемых разрядов ПС зависит от объема внутренней памяти МК. Максимальный объем адресуемой памяти для семейства 68НС05 составляет 32 Кбайт, для обращения к которой служат разряды 0-14 ПС.

Регистр CCR содержит значения пяти признаков:

С - признак переноса (принимает значение С=1 при возникновении переноса из старшего разряда результата);

Z - признак нуля (принимает значение Z=l при нулевом результате);

N - признак знака (равен старшему разряду результата, при обработке чисел со знаком имеет значения N=0 при положительном результате, N=1 при отрицательном результате);

I - маска прерывания (при значении 1=0 обработка прерываний разрешается, при 1=1 запрещается);

Н - признак переноса между тетрадами (используется при операциях над двоично-десятичными числами).

4.2.3. Способы адресации и система команд микроконтроллеров семейства 68нс05/705/08

МК выполняет набор операций над операндами, размещенными в регистрах А, X и памяти. Команды имеют длину от 1 до 3 байт: первый байт содержит код операции, второй и третий байты обеспечивают адресацию операнда. Для выборки операнда используются следующие способы адресации:

- регистровая (операнд располагается в регистре А или X);

- индексная (адресом операнда служит содержимое регистра X);

- индексная со смещением (адрес операнда образуется сложением содержимого регистра X и 8- или 16-разрядного смещения, заданного во втором и третьем байте команды);

- прямая (8-или 16- разрядный адрес операнда задается во втором и третьем байте команды);

- непосредственная (8-разрядный операнд содержится во втором байте команды);

- относительная (используется только в командах ветвления, адрес команды образуется сложением текущего содержимого ПС и заданного во втором байте команды 8-разрядного смещения, которое является числом со знаком).

Выполняемые МК команды делятся на группы команд пересылки, арифметических и логических операций, сдвигов, битовых операций и установки признаков, управления программой и процессором.

Команды пересылки осуществляют загрузку операндов из памяти в регистры А, X или запись содержимого этих регистров в память. При загрузке (команды LDA, LDX) используются все способы адресации, кроме относительного, при записи в память (команды STA, STX) не используется также непосредственная адресация. Команды TAX, TXA выполняют пересылку операндов между регистрами А, X.

Команды арифметических операций выполняют соответствующие действия над операндами, один из которых располагается в аккумуляторе А, где размещается затем результат. При операциях сложения и вычитания с учетом и без учета признака переноса С (команды ADC, ADD, SBC, SUB) второй операнд М адресуется любым способом, кроме относительного. При операциях инкремента, декремента (команды INC, INCA, INCX, DEC, DEC A, DECX) и изменения знака (перевод в дополнительный код, команды NEG, NEGA, NEGX) используются только короткие способы адресации операнда. Команда умножения MUL выполняется над 8-разрядными операндами без знака, расположенными в регистрах А, X; 16-разрядное произведение размещается в этих же регистрах (старший байт - в X, младший байт - в А). Операция деления микроконтроллером не производится. Команды сравнения CMP, CPX выполняют вычитание операндов без записи результата, но с установкой значений признаков N, Z, С в соответствии с полученным результатом.

Команды логических операций AND, ORA, EOR выполняют операции И, ИЛИ, Исключающее ИЛИ над разрядами содержимого аккумулятора А и адресуемого операнда. При выполнении этих команд используются такие же способы адресации, как в командах сложения-вычитания. В командах логической инверсии СОМ, СОМА, СОМХ используются только короткие способы адресации. Команда битового тестирования BIT производит логическое умножение операндов (операция И) без записи результата, но с установкой признаков N, Z.

Команды сдвигов выполняют арифметические (команды ASL, ASIA, ASLX, ASR, ASRA, ASRX), логические (команды LSL, LSLA, LSLX, LSR, LSRA, LSRX) и циклические (команды ROL, ROLA, ROLX, ROR, RORA, RORX) сдвиги над операндами, расположенными в регистрах А, X или позициях памяти, выбираемой с помощью коротких способов адресации.

Команды управления программой реализуют безусловный переход JMP, условные и безусловные ветвления: Вес, BRCLR, BRSET и BRA, BRN, переход и ветвление к подпрограмме: JSR, BSR, возврат из подпрограммы RTS, программное прерывание SWI, возврат из прерывания RTI.

Команды перехода и ветвления к подпрограмме JSR, BSR заносят из PC в стек адрес очередной команды программы, а затем загружают в PC новое содержимое. В команде JSR адрес ячейки памяти, из которой загружается новое содержимое PC, определяется с помощью индексной, индексной со смещением или прямой адресации. В команде BSR адрес вызываемой подпрограммы определяется с помощью относительной адресации.

Команда программного прерывания SWI загружает в стек не только текущее содержимое PC, но и содержимое основных регистров: А, X, CCR. При выполнении этой команды заполняется 5 ячеек стека. Команда возврата из прерывания RTI восстанавливает прежнее содержимое регистров А, X, CCR, PC из стека.

Для управления процессором служат команда RSP, переводит МК в энергосберегающие режимы ожидания и останова с разрешением прерывания (установка признака 1=1) для последующего возврата в нормальный режим.