Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Синтаксис ассемблера

Лекция 3. Основные команды процессора Intel x86

Организация стека в процессорах Intel x86

Стек — это организованный специальным образом участок памяти. Следует помнить, что «специальная организация» - это лишь логическое понятие, все ячейки памяти равнозначны. Стек располагается в сегменте описываемом регистром SS, смещение вершины стека определяется регистром SP(ESP), причем стек «растет вниз», то есть при записи в стек значение смещения (регистра SP) уменьшается, при чтении из стека — увеличивается.

Для работы со стеком в процессоре предусмотрены команды push, pop и их разновидности.

Так команда

push ax

помещает значение из регистра ax на вершину стека, и уменьшает значение sp на 2. Команда

pop ax

помещает в регистр ax значение находящееся на вершине стека, и увеличивает регистр sp на 2.

Стек используется, в основном, для передачи параметров в процедуры, сохранения значения регистров в процедурах, и для размещения локальных переменных процедур.


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

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

Макрокоманды - это оформляемые определенным образом предложения текста программы, замещаемые во время трансляции другими предложениями.

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

Комментарии содержат любые символы, в том числе и буквы русского алфавита.

Команды языка ассемблер записываются в программе в следующем формате:

[метка:] команда [операнд(ы)] [; комментарий]

В отличие от языков высокого уровня команды процессора (команды ассемблера) взаимно однозначно соответствуют машинным кодам конкретного процессора. Мы будем рассматривать язык ассемблера процессоров Intel x86. Система команд процессора Intel x86 условно разделена на несколько групп:

• Команды пересылок

Арифметические команды

Логические команды

Команды сдвигов

Команды переходов

Строковые команды

Команды управления состоянием процессора

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


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


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



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




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