Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Система команд микропроцессора. Примеры написания программ.

Дешифраторы | Преобразователи кодов | Синтаксис селекторов | Цифроаналоговые и анало-цифровые преобразователи. | Архитектура с тремя шинами | Ассемблер. Мнемоника и символические имена. Директивы ассемблера. | Ассемблирование и компилирование | Применение | Система команд микропроцессора. Основные характеристики команд. Способы адресации. | Моделирование аппаратных средств |


Читайте также:
  1. A. Лімбічна система
  2. C) система нормативных правовых актов регулирования семейных отношений.
  3. DSM — система классификации Американской психиатрической ассоциации
  4. I чемпионата по силовому многоборью г. Красноярска среди команд
  5. I. Общая характеристика направленности и система мотивации человека
  6. I. Парижская валютная система (1816 - 1914 гг.).
  7. I. Психология управления как наука. Процесс и система управления

Система команд ОМЭВМ представляет большие возможности обработки данных, обеспечивает реализацию логических, арифметических операций, а также управление в режиме реального времени. Реализована побитовая, потетрадная (4 бита), побайтовая (8 бит) и 16-разрядная обработка данных. БИС семейства МК51 представляет собой 8-разрядную ОМЭВМ, содержащую в своем составе ПЗУ, ОЗУ, регистры специального назначения, АЛУ и внешние шины имеют байтовую организацию. Двухбайтовые данные используются только регистром-указателем (DPTR) и счетчиком команд (РС). Следует отметить, что регистр-указатель данных может быть использован как двухбайтовый регистр DPTR или как два однобайтовых регистра специального назначения DPH и DPL. Счетчик команд всегда используется как двухбайтовый регистр.

Набор команд ОМЭВМ имеет 42 мнемонических обозначения (аббревиатур) команд для конкретизации 33 функций этой системы. Синтаксис большинства команд ассемблерного языка ОМЭВМ состоит из мнемонического обозначения функции, вслед за которым идут операнды, указывающие методы адресации и типы данных. Различные типы данных или режимы адресации определяются установленными операндами, а не изменениями мнемонических обозначений. Например, аббревиатура ²MOV² используется восемнадцатью различными командами для обработки трех типов данных (битов, байтов, адресов) в различных адресных пространствах.

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

Все команды условных переходов осуществляются относительно содержимого счетчика команд с адресом перехода, вычисляемым ЦПУ во время выполнения команды.

В таблице 9.1. приведены конструкции, влияющие на установку флагов. В таблице 9.2. приведены обозначения и символы, используемые в системе команд.

Систему команд ОМЭВМ условно можно разбить на пять групп:

- арифметические команды;

- логические команды с байтовыми переменными;

- команды передачи данных;

- команды битового процессора;

- команды ветвления программ и передачи управления ОМЭВМ.

Таблица 9.1 - Команды, влияющие на установку флагов

Мнемоника Флаг Флаг Флаг Мнемоника Флаг Флаг Флаг
C OV AC C OV AC
ADD x x x CLR C      
ADDC x x x CPL C x    
SUBB x x x ANL C, bit x    
MUL   x   ANL C, /bit x    
DIV   x   ORL C, bit x    
DA x     ORL C, /bit x    
RRC x     MOV C, /bit x    
RLC x     CJNE x    
SETB C              

 

Примечания: 1. x- флаг равен 0 или 1.

2. Операции над SFR с адресом байта 208 или с адресами битов 209 –215 (т.е. PSW или бит PSW) также влияют на установку флагов.

Арифметические команды. В наборе команд ОМЭВМ имеются следующие арифметические операции: сложение, сложение с учетом флага переноса, вычитание с заемом, инкрементирование, декрементирование, сравнение, десятичная коррекция, умножение и деление. В АЛУ производятся действия над целыми числами без знака. В двухоперандных операциях: сложение (ADD), сложение с переносом (ADDC) и вычитание с заемом (SUBB) аккумулятор является первым операндом и принимает результат операции. Вторым операндом может быть рабочий регистр выбранного банка рабочих регистров, регистр внутренней памяти данных с косвенно-регистровой и прямой адресацией или байт непосредственных данных.

Указанные в таблице 9.2 операции влияют на флаги переполнения, переноса, промежуточного переноса и флага четности в слове состояния процессора (PSW). Использование разряда переноса позволяет многократно повысить точность при операциях сложения (ADDC) и вычитания (SUBB).

Выполнение операций сложения и вычитание с учетом знака может быть осуществлено с помощью программного управления флагом переполнения (OV) регистра PSW.

Таблица 9.2 - Описание символов

Обозначение, символ Назначение
A Аккумулятор
Rr Регистры текущего банка регистров. r = 0...7
R Номер загружаемого регистра, указанного в команде
Direct Прямо адресуемый 8-битовый внутренний адрес ячейки данных, который может быть ячейкой внутреннего ОЗУ данных (0-127) или SFR (128-255)
@Rr Косвенно адресуемая 8-битовая ячейка внутреннего ОЗУ данных
Data 8 8-битовое непосредственное данное, входящее в код операции (КОП)
Data 16 16-битовое непосредственное данное, входящее в КОП
data H Старшие биты (15-8) непосредственных 16 битовых данных
data L Младшие биты (7-0) непосредственных 16-битовых данных
addr 11 11-битовый адрес назначения
addr 16 16-битовый адрес назначения
addr L Младшие биты адреса назначения
disp 8 8-битовый байт смещения со знаком
bit Бит с прямой адресацией, адрес которого содержит КОП, находящийся во внутреннем ОЗУ данных или SFR
а15, а14...а0 Биты адреса назначения
(X) Содержимое элемента X
((X)) (X) [М] Содержимое по адресу хранящемуся в элементе X Разряд М элемента X
(X) [M1-M2] Группа разрядов М1-М2 элемента X
  + - * / AND OR XOR Операции: Сложения Вычитания Умножения Деления логического умножения (операция И) логического сложения (операция ИЛИ) слож. по модулю 2 (операция “Исключающее ИЛИ”)

 

Существуют три арифметические операции, которые выполняются только на аккумуляторе: две команды проверки содержимого аккумулятора А (JZ, JNZ), и команда десятичной коррекции при сложении двоично-десятичных кодов.

При операции умножения содержимое аккумулятора А умножается на содержимое регистра В и результат размещается следующим образом: младший байт в регистре В, старший - в регистре А.

В случае выполнения операции деление целое от деления помещается в аккумулятор А, остаток от деления - в регистр В.

Логические команды с байтовыми переменными. Система команд ОМЭВМ позволяет реализовать логические операции: “И”, “ИЛИ”, “ИСКЛЮЧАЮЩЕЕ ИЛИ” на регистре-аккумуляторе (А) и байте-источнике. Вторым операндом (байтом-источником) при этом может быть: рабочий регистр в выбранном банке рабочих регистров; регистр внутреннего ОЗУ, адресуемый с помощью косвенно-регистровой адресации; прямо адресуемые ячейки внутреннего ОЗУ и регистры специального назначения; непосредственная величина.

Указанные логические операции могут быть реализованы на любом прямо адресуемом регистре внутреннего ОЗУ или регистре специального назначения с использованием в качестве второго операнда содержимого аккумулятора А или непосредственных данных.

Существуют логические операции, которые выполняются только на аккумуляторе: сброс и инвертирование всех восьми разрядов А; циклический сдвиг влево и вправо с учетом флага переноса; обмен местами старшей и младшей тетрад (ниблов) внутри аккумулятора.

Команды передачи данных. Команды передачи между прямоадресуемыми регистрами позволяют заносить величину из порта в ячейку внутреннего ОЗУ без использования рабочих регистров или аккумулятора.

В логическом процессоре любой прямоадресуемый бит может быть помещен в бит переноса и наоборот.

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

Младший нибл (разряды 3 - 0) содержимого аккумулятора, может быть обменен с младшим ниблом содержимого ячеек внутреннего ОЗУ, выбираемых с помощью косвенно-регистровой адресации.

Команды битового процессора. Битовый процессор является частью архитектуры ОМЭВМ семейства МК51 и его можно рассматривать как независимый процессор побитовой обработки. Битовый процессор выполняет свой набор команд, имеет свое побитово адресуемое ОЗУ и свой ввод-вывод.

Команды, оперирующие с битами, обеспечивают прямую адресацию 128 битов (0 - 127) в шестнадцати ячейках внутреннего ОЗУ (ячейки с адресами 20Н - 2FH) и прямую побитовую адресацию регистров специального назначения, адреса которых кратны восьми: Р0 (80Н), TCON (88H), P1 (90H), SCON (98H), P2 (A0H), IE (A8H), P3 (B0H), IP (B8H), PSW (D0H), A (E0H), B (F0H).

Каждый из отдельно адресуемых битов может быть установлен в “1”, сброшен в “0”, инвертирован, проверен. Могут быть реализованы переходы: если бит установлен; если бит не установлен; переход, если бит установлен, со сбросом этого бита; бит может быть перезаписан в (из) разряда переноса. Между любым прямо адресуемым битом и флагом переноса могут быть произведены логические операции “И”, “ИЛИ”, где результат заносится в разряд флага переноса. Команды побитовой обработки обеспечивают реализацию сложных функций комбинаторной логики и оптимизацию программ пользователя.

Команды ветвления и передачи управления. Адресное пространство памяти программ ОМЭВМ не имеет страничной организации, что позволяет свободно перемещать фрагменты программы внутри адресного пространства, при этом не требуется пере засылка (изменение) номера страницы.

Перемещение отдельных фрагментов программы обеспечивает возможность использования перемещаемых программных модулей различными программами.

Команды 16-разрядных переходов и вызовов подпрограмм позволяют осуществлять переход в любую точку адресного пространства памяти программ объемом 64 Кбайт.

Команды 11-разрядных переходов и вызовов подпрограмм обеспечивают переходы внутри программного модуля емкостью 2Кбайт. В системе команд имеются команды условных и безусловных переходов относительно начального адреса следующей команды в пределах от (РС)-128 до (РС)+127. Команды проверки отдельных разрядов позволяют осуществлять условные переходы по состоянию “0” или “1” прямоадресуемых битов. Команды проверки содержимого аккумулятора (на ноль / не ноль) позволяют осуществлять условные переходы по содержимому А.

Косвенно-регистровые переходы в системе команд ОМЭВМ обеспечивают ветвление относительно базового регистра (содержимого DPTR или PC) со смещением, находящимся в аккумуляторе А.

Пример написания программы:

Пример программы Hello world для MS-DOS для архитектуры x86 на диалекте TASM:

 

.MODEL TINY

CODE SEGMENT

ASSUME CS:CODE, DS:CODE

ORG 100h

START:

mov ah,9

mov dx,OFFSET Msg

int 21h

int 20h

Msg DB 'Hello World',13,10,'$'

CODE ENDS

END START

 


Дата добавления: 2015-07-25; просмотров: 147 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
СПОСОБЫ АДРЕСАЦИИ ОПЕРАНДОВ| Формирование меандра

mybiblioteka.su - 2015-2024 год. (0.011 сек.)