русс | укр

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

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

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

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


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

Например,


Дата добавления: 2013-12-23; просмотров: 852; Нарушение авторских прав


Операнд - строка

В ЯА запись вида

Например,

DB -2

M DB 2

DB ?

DB '*'

 

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

 

Если в директиве DB не указано имя, то по ней байт в памяти отводится, но он остается безымянным.

Ясно, что, если в массиве много элементов, то такой способ описания массива слишком громоздок.

 

Поэтому в ЯА допускается упрощенная форма описания массивов, когда он описывается одной директивой, но с несколькими операн­дами - со столькими, сколько элементов в массиве.

вместо наших 4 директив можно выписать только одну:

 

М DB 2,-2,?,'*'

По директиве DB снесколькими операндами ассемблер выделяет в памяти соcедние байты памяти, по одному на каждый операнд,

и записывает в эти байты значения операндов (для операнда ? ничего не записывает).

В нашем примереас­семблер следующим образом заполнит память:

М

02 FE 2A

 

Отметим, что имя, указанное в начале директивы, именует только первый из тих байтов.

В связи с этим тип имени М равен 1:

TYPE М = BYTE .

 

Остальные же байты остаютсябезымянными.

Для ссылок на них в ЯА используются выра­жения вида М+k,где k - целое число:

М+1 - для ссылки на байт со значением FE,

М+2 - для ссылки на следующий байт и т. д.

Особо подчеркнем, что запись

М+1 не следует понимать как сложениесодержимого ячейки с именем М ( т. е. числа 2) с числом 1.

 

<имя>±k

 

- означает, что к адресу указанно­го имени надо прибавить (или отнять) число k,

- в результате чего получится неко­торый новый адрес,

- и вот уже по этому адресу и осуществляется доступ к памяти. Таким образом, данная запись означает сложение/вычитание адресов.



Возможно еще одно сокращение в директиве DB:

- если в ней несколько сосед­них операндов - символы, то их можно объединить в одну строку.

следующие две директивы эквивалентны:

 

S DB 'a','b','c' S DB 'abc'

 

Отметим, что и в этом случае тип имени равен 1 (TYPE S = BYTE), т. к. любая из этих директив является сокращением следующих трех директив:

 

S DB 'а'

DB 'b'

DB 'c'

а здесь ясно видно, что имя Sобозначает только первый байт.

Вопрос о том, объединять соседние символы в одну строкуили нет, а если объединять, то какие именно, решает сам автор программы.



<== предыдущая лекция | следующая лекция ==>
Директива с несколькими операндами | Директива DW


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


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

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

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


 


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

 
 

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

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