Доступ к элементам стека с помощью регистра ВР — КиберПедия 

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

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

Доступ к элементам стека с помощью регистра ВР

2022-10-04 23
Доступ к элементам стека с помощью регистра ВР 0.00 из 5.00 0 оценок
Заказать работу

 

Доступ к элементам стека с помощью BP осуществляется на основе определения расстояния от нужного слова до вершины стека и базовой адресации.

BPпо умолчанию относится к сегменту стека, а не к сегменту данных.

Например,

MovBP, SP;BP:=SP

MovAX, [BP+4]; ≡ movAX, SS:[BP+4]

 


ЯА: элементарные конструкции и предложения (2ч)

 

 


1. Идентификаторы.

В ЯА это последовательность латинских букв, цифр и знаков?. @ _ $

 

Особенности:

- длина идентификатора не ограничена, но различимыми являются только первые 31 символа;

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

- точка может быть только первым символом идентификатора;

например,.ABR

- остальные знаки эквивалентны буквам и могут находиться в любом месте идентификатора;

- одноименные заглавные и строчные буквы считаются эквивалентными;

- идентификаторы не должны совпадать с ключевыми словами.

Идентификаторы делятся на 2 вида:

А) имя – это ссылка на адрес первого байта, содержащего данные (константы или переменные).

Имена описываются директивой декларации.

Например, FATALDB 13

Это имя имеет атрибут (тип) BYTE, WORD и т.д.

Б) Метки - это идентификатор инструкции или директивы, который используется для передачи управления.

- Метки сегментов и процедур

LAD Segment

Ends

 

Fun PROC

  …

ENDP

- Метки команд (инструкций) располагаются в начале строки и отделяются от МНК двоеточием.

- Метка имеет атрибут NEAR или FAR.

В ЯА допускается только одна метка на строке, но можно метку поместить на отдельной строке, что позволяет пометить инструкцию, расположенную на следующей строке.

       - Запрещены метки, состоящие из одного «?» или «$».

- Одну и ту же инструкцию можно пометить дважды.

Например,

Nachalo:

Lab: ADD AX, DX

JMP Nachalo

JMP Lab

 

2. Ключевые(зарезервированные)слова имеют определенный смысл и соответственно воспринимаются Ассемблером.

Например,

            .286 – директива, позволяющая использовать в программе команды МП i80286;

             AND – мнемоника команды;

             AX – имя регистра;

            .ERR – директива генерации кода ошибки.

3. Целые числа могут быть записаны в двоичной, десятичной, восьмеричной или 16-ричной системах счисления. На это указывает буква в конце числа (спецификатор)

ПСС Спецификатор Примеры
10 D или ничего 25, -386, +4d
2 B 101b, -1001B
8 Oили Q 74q, -22Q
16 H 1A3h, -0B4H

 

Примечания:

- для 16-чной СС, если число начинается с цифры от A до F, то перед ним ставится ноль,

- в числах можно использовать заглавные или строчные латинские буквы.

 

4. Символьные данные заключаются в одинарные либо двойные кавычки, либо в апострофы, но левый и правый ограничители должны быть одинаковыми.

Примечания:         

- в качестве символов можно использовать любые символы и буквы;

- заглавные и строчные буквы различаются;

- если внутри строки символов нужно использовать кавычки, то есть 2 возможности:

или удвоить кавычки, например, ‘Don’’t’;

или использовать другой вариант ограничителя строки, например, «Don’t» или

‘Кафе «Мир»’

5. Выражения

  В ЯА выражения состоят из чисел и/или символов, обозначающих числа.

Выражения определяют операнд или его адрес.

Например, в декларации

AlfaEQU1014; константа Alfa=2

Возможные операции в выражениях:

+, -, *, /, mod, (), notk (поразрядная инверсия от операнда k)

Highn – старший байт числа n

lown – младший байт числа n

Выражением считается список констант в декларации.

Например, AreaDB 2, -8, 7

В инструкциях выражения используются для вычисления только адреса операндов.

При этом возможны виды адресации, которые программе можно записать разными записями:

1) Косвенная[Рг Б] или [Рг И]

где [Рг Б] – содержимое базового регистра (BPили BX)

[Рг И] – содержимое индексного регистра (CIили DI)

2) ИндекснаяDisp [Рг И] или [РгИ]+disp

где disp – смещение в байтах, которое может быть const или выражением;

3) БазоваяDisp [Рг Б] или [РгБ]+disp

4) Базово-индекснаяDisp [Рг Б] [Рг И]

                               Disp [Рг Б] + [Рг И]

                               Disp [Рг Б + Рг И]

                               [Рг Б] [Рг И] + disp

                               [Рг Б] + [Рг И] + disp

                   [Рг Б + Рг И] + disp

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

Пример:

MovAX,2[DI]; AX:=ОП [ [DI] + 0002H]

Mov [BX], AL; ОП [BX]:= [AL]

 


Поделиться с друзьями:

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.009 с.