Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Команды арифметической обработки.
Группа содержит команды сложения (ADD, ADC, ADI, ACI, DAD), вычитания (SUB, SBB, SUI, SBI), увеличения на 1 (INR, INX), уменьшения на 1 (DCR, DCX) и десятичной коррекции DAA. Предусмотрены операции как над байтами (ADD, ADC, ACI, SUB, SBB, SUI, SBI, INR, DCR, DAA), так и над словами (DAD, INX, DCX). Во всех байтовых операциях используется аккумулятор, как источник и приемник результата, а источником второго операнда служит или регистр или ячейка памяти М или data 8. В некоторых операциях (ADC, ACI, SBB, SBI) учитывается состояние флага CY. В команде сложения DAD роль аккумулятора выполняет 16-разрядный регистр Н, содержимое которого складывается с содержимым 16-разрядных регисторов B, D, H, SP. Операции увеличения и уменьшения на 1,используемые для организации счетчиков, применяются как к 8, так и к 16-разрядным регистрам, включая SP, а также модификацию содержимого ячейки памяти М. Команда десятичной коррекции DAA поддерживает операцию сложения в упакованном BCD коде. Она используется для корректировки результата после сложения двух операндов в BCD коде. Например: ADD B;A--------ABCD+BBCD, DAA;ABCD----Коррекция А.
Команды передачи управления. Группа содержит три основные операции, организующие безусловный переход и типичные для большинства МС: переход (JMP), вызов подпрограммы (CALL), возврат из подпрограммы (RET). Для организации условного перехода каждая базовая операция имеет модифицированные варианты: условный переход (JCC),условный вызов подпрограммы (CCC),условный возврат из подпрограммы (RCC). Каждая условная операция обеспечивает проверку восьми условий, в соответствии с которыми меняется значение поля CC. Передача управления производится только при выполнении условия, указанного в команде. Состав условий позволяет контролировать состояние флагов CY, Z, М, Р. Мнемоника поля и условие перехода приведены ниже: C Carry CY=1 NC Not Carry CY=0 Z Zero Z=0 NZ Not Zero Z=1 M Minus M=1 P Positive M=0 PE Parity Even P=1 PO Parity Odd P=0. В операциях перехода и вызова подпрограмм используется прямой 16-разрядный адрес, обеспечивающий передачу управления в любую точку 64К-байтового пространства памяти. Пример: JNZ 2030. Если Z=1, то 2030----(PC). Команда передачи управления по содержимому пары HL (PCHL;PC --- HL)обеспечивает передачу управления по вычисляемому адресу.
Команды управления и дополнительные команды.
Две команды ВВ с прямой адресацией портов: команда ввода IN port и вывода OUT port. Группа содержит ряд команд поддержки системы прерываний: две команды, управляющие общим флагом прерываний EI и DI, а также команда установки маски прерываний и команда чтения маски прерываний. Эти команды подробнее рассмотрены ниже при рассмотрении системы ввода-вывода МП. Предусмотрена специальная однобайтовая команда RST n (n=0-7), представляющая собой укороченный вариант команды CALL address при address = 8*n. Рис. 6.4. Команда HLT используется для останова работы МП. В состоянии останова МП реагирует на прерывания при сброшенной маске и может быть выведен из состояния останова или по сигналу прерывания или перезапуском. Команда NOP –пустая операция, по которой никаких действий МП не производит. Она используется для организации коротких пауз и установки программных «заплат».
Рис. 6.4. Команды вызова и возврата из подпрограмм8085.
Язык Ассемблер Команды, непосредственно исполняемые МП, представляют собой двоичный код. Каждой команде МП соответствует определенная мнемоника, а набору команд уникальный набор мнемоник. Программирование с использованием мнемоник называется программированием на языке Ассемблер. Язык Ассемблер для каждого МП свой. Написанную на Ассемблере программу необходимо преобразовать в двоичный код и разместить в определенной области памяти. Кроме того, всем символическим именам и адресам в ассемблерной программе перед исполнением программы должны быть присвоены числовые значения. Поэтому в процессе преобразования(трансляции) ассемблерной программы МП посредством директив ассемблера сообщается дополнительная информация, управляющая размещением в памяти и преобразованием символических данных и не транслируемая в машинный код. Директивы Ассемблера. Директивы языка – это ассемблерные команды, которые встречаются в исходном коде, но не транслируются прямо в исполняемые коды. Хотя транслирующая программа берет на себя многие из рутинных задач программиста, такие как присвоение действительных адресов, преобразование чисел, присвоение действительных значений символьным переменным и т.п., программист все же должен указать ей некоторые параметры: начальный адрес рабочей программы, конец ассемблируемой программы, форматы данных и т.п. Всю эту информацию программист вставляет в исходный текст своей прикладной программы в виде псевдокоманд (директив) ассемблера, которые только управляют процессом трансляции и не преобразуются в коды объектной программы.
Существует четыре основных типа директив: · директивы данных; · директивы листинга; · управляющие директивы; · макро-директивы. Директивы данных управляют распределением памяти и обеспечивают доступ к символическим обозначениям данных. Директивы листинга управляют листингом файла и форматом данных. Они определяют спецификацию заголовков, генерацию страниц и другие функции управления листингом. Директивы управления позволяют произвести секционирование обычного ассемблерного кода. Макро-директивы управляют исполнением и распределением данных в пределах определений макротела. Рассмотрим три директивы: ORG, EQU, END. Директива ORG 100H задает ассемблеру адрес ячейки памяти (100Н), в которой должна быть расположена следующая за ней команда прикладной программы. Директивой EQU можно любому символическому имени, используемому в программе, поставить в соответствие определенный операнд. Например, запись TMRO EQU 01h приводит к тому, что в процессе ассемблирования всюду, где встретится символическое имя TMRO, оно будет заменено числом 1. Директива END дает ассемблеру указание об окончании трансляции. В результате трансляции должна быть получена карта памяти программ, где каждой ячейке памяти поставлен в соответствие хранящийся в ней код. Макроассемблер это развитие языка Ассемблер, в Макроассемблере предусмотрена возможность присвоения имени некоторой последовательности. В любом месте программы для вызова этой последовательности команд достаточно указать лишь ее имя. Макрокоманда аналогична функции, определяемой пользователем, она определяется 1 раз и затем вызывается по имени и вводится как последовательность кодов при каждом вызове. Макрокоманды обычно можно объединять в библиотеки для последующего использования в других программах на макроассемблере. Программа на языке АССЕМБЛЕР представляется в виде последовательности предложений – строк. Каждое предложение имеет четыре фиксированных поля: поле метки, поле кода, поле операнда и поле комментария. Поле МЕТКА позволяет обращаться к адресам по имени, а не по абсолютному адресу. Действительные адреса формируются только на заключительной стадии ассемблирования. Поля КОП и ОПЕРАНД содержат мнемоники команд МП. В поле операнда допускается использование выражений над введенными выше данными. Поле КОММЕНТАРИЙ начинается символом (;). Оно используется для пояснений выполняемых действий и игнорируется при трансляции. В качестве примера изучим программу умножения двух 8-и разрядных чисел без знака для МП 8085. Рассмотрим сначала ручное умножение двух 4-х разрядных двоичных чисел.
1 0 1 1 Множимое 1 0 0 1 Множитель 1 0 1 1 0 0 0 0 0 0 0 0 1 0 1 1 _______ ____ 1 1 0 0 0 1 1 Произведение
Рис. 6.5. Умножение двух 4-х разрядных двоичных чисел
Пусть множимое хранится в регистре E регистровой пары DE, и регистр D предварительно установлен в 0. Множитель будет храниться в регистре A. В регистровой паре HL будем формировать 16-и разрядное произведение. В регистре В организуем вычитающий счетчик числа повторений цикла (счетчик на 8). При достижении нулевого значения счетчика умножение чисел будет закончено и произойдет выход из цикла. Схема алгоритма умножения двух 4-х разрядных двоичных чиселпредставлена ниже.
Рис. 6.6. Алгоритм умножения двух 4-х разрядных двоичных чисел Программаумножения двух 4-х разрядных двоичных чиселна языке Ассемблер 8085 представлена в табл. 1.
Таблица. 1
|
|||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2017-02-07; просмотров: 246; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.223.0.53 (0.016 с.) |