Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Мнемоники инструкций и директивы

МЕТКИ

ЛЕКСЕМЫ

РЕЖИМЫ КОМПИЛЯЦИИ У TASM.EXE

Исторически первым компилятором асеемблерных программ для ПК был компилятор Microsoft Macro Assembler (MASM).

Borland International Inc. создала свой компилятор Borland Turbo Assembler (TASM) позже. Чтобы обеспечить совместимость с MASM, придумали РЕЖИМ КОМПИЛЯЦИИ “MASM”, в котором tasm.exe нормально обрабатывает все директивы Macro Assembler.

Но, желая усовершенствовать свой продукт, Borland ввела еще один режим компиляции - “IDEAL”.

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

Tasm.exe версий 4.01 и выше различает директивы обоих режимов контекстуально и, в большинстве случаев, даже не требует явного указания режима компиляции. Именно поэтому можно, к примеру, с одинаковым успехом использовать директиву «.286» или «Р286», разницы нет.

Уже знаем, что:

· Ассемблер = символический аналог МАШИННОГО ЯЗЫКА. Поэтому программа отражает АРХИТЕКТУРУ ПК.

· Программа на асм = совокупность блоков (сегментов).

Теперь определим, что…

Каждый сегмент = совокупность строк-предложений. Их 4 типа:

· команды или инструкции = символические аналоги машинных команд.

· макрокоманды —предложения, замещаемые другими предложениями во время трансляции;

· директивы, указания транслятору на выполнение некоторых действий. У директив нет аналогов в машинном представлении;

· комментарии, которые игнорируются транслятором.

 

ДОПУСТИМЫЙ НАБОР СИМВОЛОВ

 

1. все латинские буквы: A—Z, a—z. При этом заглавные и строчные буквы НЕ РАЗЛИЧАЮТСЯ;

2. цифры от 0 до 9;

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

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

Длина имён – до 32 символов. Имя НЕ МОЖЕТ НАЧИНАТЬСЯ С ЦИФРЫ!

 

 

1. Идентификаторы - коды операций, имена переменных и названия меток

@v5: mov ax, NumericVariable

2. Цепочки символов

DB “Это цепочка “, ’ символов ’

3. Целые числа: 129H, 0А4h, 123, 74, 10100111B, 110b

 

 

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

Метки позволяют вам присваивать имена переменным в памяти, значе-

ниям и адресам, где находятся конкретные инструкции.

 

.MODEL SMALL

.STACK 200h

.DATA

FactorialValue DW?

Factorial DW?

.CODE

FiveFactorial PROC

mov ax,@Data

mov ds,ax

mov [FactorialValue],1

mov [Factorial],2

mov cx,4

FiveFactorialLoop:

mov ax,[FactorialValue]

mul [Factorial]

mov [FactorialValue],ax

inc [Factorial]

loop FiveFactorialLoop

ret

FiveFactorial ENDP

END FiveFactorial

 

Каждая метка должна определяться только один раз, то есть метки должны быть уникальными.

Метка может занимать всю строку, то есть на этой строке кроме метки может отсутствовать инструкция или директива.

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

 

jmp DoAddition

...

DoAddition:;: Двоеточие НЕ является частью метки!

add ax,dx; Адрес ЭТОЙ команды равен значению метки DoAddition

 

Слова типа MOV, ADD, MUL и JMP - все это мнемоники инструкций, соответствующие инструкциям процессора 8086

 

ТASM.EXE компилирует каждую одну мнемонику инструкции непосредственно в соответствующую инструкцию на машинном языке.

Int 21H CD 21

 

Директивы не генерируют выполняемого кода. Вместо этого они управляют различными аспектами работы ТASM.EXE.

 

Пример: MOV BX, offset MemVar

 

<== предыдущая лекция | следующая лекция ==>
Атрибут комбинирования сегментов | Комментарии
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 448; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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