русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Оператор


Дата добавления: 2014-11-27; просмотров: 860; Нарушение авторских прав


Команд

Оператор

Макрокоманд

 

Рис.1 Формат предложения ассемблера

Директива

Имя Операнд_1 ;

Комментарий

Операнд_n

Рис. 2 Формат директив

 


КОП

Имя Операнд_1

Метки

, Комментарий

Операнд_2

 

Рис. 3 Формат команд и макрокоманд

На этих рисунках:

· имя метки – идентификатор, значением которого является адрес первого байта того предложения исходного текста программы, которое обозначает;

· имя – идентификатор, отличающий данную директиву от однородных именных директив. В результате обработки ассемблером определенной директивы этому имени могут быть присвоены определенные характеристики;

· код операции (КОП) и директива – это мнемонические обозначения соответствующей машинной команды, макрокоманды или директивы транслятора;

· операнды – части команды, макрокоманды или директивы ассемблера, обозначающие объекты, над которыми производятся действия. Операнды ассемблера описываются выражениями с числовыми и текстовыми константами, метками и идентификаторами переменных с использованием знаков операций и некоторых зарезервированных слов.

Для использования диаграмм нужно найти и затем пройти путь от входа диаграмм (слева) к ее выходу (направо). Если такой путь существует, то предложение или конструкция синтаксически правильны. Если такого пути нет, значит эту конструкцию компилятор не примет. При работе с синтаксическими диаграммами надо обращать внимание на направление обхода указываемое стрелками, так как среди путей могут быть и такие, по которым можно идти справа налево. По сути, синтаксические диаграммы отражают логику работы транслятора при разборе входных предложений программы.

Допустимыми символами при написании текста программ являются:



1. Все латинские буквы A-Z, a-z. При этом заглавные и прописные буквы считаются эквивалентными.

2. Цифры от 0 до 9.

3. Знаки ?, @, $, _ , &.

4. Разделители: , . [ ] ( ) < > { } + / * % ! “ ” ? \ = # ^

 

Классификация операндов, поддерживаемых транслятором ассемблера:

- Постоянные или непосредственные операнды – число, строка, имя или выражение, имеющие некоторое фиксированное значение.

- Адресные операнды – задают физическое расположение операнда в память с помощью указания двух составляющих адреса: сегмента и смещения

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

- Счетчик адреса $ - когда транслятор ассемблера встречает в исходной программе этот символ, то он подставляет вместо него текущее значение счетчика адреса. Значение счетчика адреса, или как его иногда называют счетчика размещения, представляет собой смещение текущей машинной команды относительно начала сегмента кода.

- Регистровый операнд – это просто имя регистра. В программе на ассемблере можно использовать имена всех регистров общего назначения и большинства системных регистров.

- Базовый и индексные операнды. Этот тип операндов используется для реализации косвенной базовой, косвенной индексной адресации или их комбинации и расширений.

- Структурные операнды используются для доступа к конкретному элементу сложного типа данных, называемого структурой.

- Записи (аналогично структурному типу) используются для доступа к битовому полю некоторой записи.

Операнды являются элементарными компонентами, из которых формируется часть машинной команды, обозначающая объекты, над которыми выполняется операция. В более общем случае операнды могут входить как составные части в более сложные образования, называемые выражениями. Выражения представляют собой комбинации операндов и операторов, рассматриваемые как единое целое. Результатом вычисления выражения может быть адрес некоторой ячейки памяти или некоторое константное значение.

 

Возможные типы операторов ассемблера:

- Арифметические операторы. К ним относятся унарные операторы «+» и «-», бинарные «+» и «-», операторы умножения «*», целочисленного деления «/», получения остатка от деления «mod».

- Операторы сдвига выполняют сдвиг выражения на указанное количество разрядов Синтаксис операторов сдвига:

 

Выражение shr (shl) число сдвигаемых разрядов

 

- Операторы сравнения (возвращают значения «истина» или «ложь») предназначены для формирования логических выражений. Логическое значение «истина» соответствует цифровой единице, а «ложь» – нулю.

 

 

Таблица 1Операторы сравнения.

Оператор Значение
eq ИСТИНА, если выражение_1 равно выражение_2
ne ИСТИНА, если выражение_1 не равно выражение_2
it ИСТИНА, если выражение_1 меньше выражение_2
le ИСТИНА, если выражение_1 меньше или равно выражение_2
gt ИСТИНА, если выражение_1 больше выражение_2
ge ИСТИНА, если выражение_1 больше или равно выражение_2

 

- Логические операторы выполняют над выражениями побитовые операции. Выражения должны быть абсолютными, то есть такими, численное значение которых может быть вычислено транслятором.

 

Синтаксис логических операторов:

 

Выражение_1

not Выражение_2

and not

or

xor

 

- Индексный оператор [ ] .Наличие скобок транслятор воспринимает как указание сложить значение выражение_1 за этими скобками с выражением_2, заключенным в скобки.

 

Синтаксис индексного оператора.

[ Выражение_2 ]

Выражение_1

 

- Оператор переопределения типа ptr применяется для переопределения или уточнения типа метки или переменной, определяемых выражением. Тип может применять одно из следующих значений: byte, word, dword, qword, tbyte, near, fer.

 

Таблица 2. Операторы и их приоритет.

Оператор Приориетет


length, suze, width, mask, (,), [, ], <, > 1

. 2

: 3

ptr, offset, seg, type, this 4

high, low 5

+, - (унарные) 6

*, /, mod, shl, shr 7

+, - (бинарные) 8

eq, ne, it, le, gt, ge 9

not 10

and 11

or, xor 12

short, type 13



<== предыдущая лекция | следующая лекция ==>
Лабораторная работа №1 | Загрузка и выполнение программ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

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

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.985 сек.