Студопедия

КАТЕГОРИИ:


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

Основные типы операндов




Структура программы на языке Ассемблер

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

Текст программы разбит на строки. Каждая строка либо соответствует машинной команде, либо является директивой ассемблера или макрокомандой. Команды и директивы можно набирать как большими, так и малыми латинскими буквами. Русские буквы можно использовать только в комментариях.

Строка программы, в общем случае, состоит из четырех полей:

Поле метки   Поле операции Поле операндов Поле комментария
M1: Add AX, BX ; сложение

 

Имена данных, процедур, сегментов или метки команд могут состоять не более чем из 31 латинских букв (AZ, az) и цифр (от 0 до 9), причем первым символом должна быть обязательно буква. Большие и маленькие буквы не различаются. При написании текста программ могут использоваться знаки ?, @, $, _, & и разделители ,. [ ] () < > { } + / * %! ' "? \ = # ^.

Практически каждое предложение содержит описание объекта, над которым или при помощи которого выполняется некоторое действие. Мнемоническая команда указывает ассемблеру, какое действие должен выполнить данный оператор. В сегменте данных команда (или директива) определяет поле, рабочую область или константу. В сегменте кода команда определяет действие, например, пересылка (MOV) или сложение (ADD).

 

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

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

Команда может иметь один или два операнда, или вообще быть без операндов. Рассмотрим следующие три примера:

Команда Операнд Комментарий

 

Нет операндов RET;Вернуться

Один операнд INC CX;Увеличить CX

Два операнда ADD AX,12;Прибавить 12 к AX

Рассмотрим особенности использования в командах имен, имен в квадратных скобках и чисел. В следующих примерах положим, что WORDA определяет слово в памяти:

 

MOV AX,BX;Переслать содержимое BX в регистр AX

MOV AX,WORDA;Переслать содержимое WORDA в регистр AX

MOV AX,[BX];Переслать содержимое памяти с адресом, хранящимся

; в регистре BX, в регистр AX

MOV AX,25;Переслать значение 25 в регистр AX

MOV AX,[25];Переслать содержимое по смещению 25

 

· Постоянные или непосредственные операнды — число, строка, имя или выражение, имеющие некоторое фиксированное значение./* Имя не должно быть перемещаемым, то есть зависеть от адреса загрузки программы в память. К примеру, оно может быть определено операторами equ или =. */

num equ 5imd = num-2 mov al,num;эквивалентно mov al,5 ;5 здесь непосредственный операнд add [si],imd; imd=3 - непосредственный операнд mov al,5;5 - непосредственный операнд

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

mov ax,0000h mov ds,ax mov ax,ds:0000h;записать слово в ax из области памяти; по физическому адресу 0000:0000

Счетчик адреса — специфический вид операнда. Он обозначается знаком $.
транслятор подставляет вместо него текущее значение счетчика адреса.

jmp $+3; безусловный переход на команду mov команда jmp занимает 2 байта.

cld; длина команды cld составляет 1 байт

mov al,1

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

mov al,4;константу 4 заносим в регистр al mov dl,pass+4;байт по адресу pass+4 в регистр dl add al,dl;команда с регистровыми операндами

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




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


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


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



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




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