Ассемблер тілі

Автор работы: Пользователь скрыл имя, 27 Июня 2013 в 17:57, реферат

Краткое описание

Ассемблер тілі- ағылшын тілінен аударғанда “жинау” деген мағынаны білдіреді. Ол-машиналық тілдің аналогы болып саналады. Ассемблер тілінде жазылған программа жад сегменттері деп аталатын жад блоктарының тобынан тұрады. Программа осындай бір немесе бірнеше блок-сегменттерден тұруы мүмкін. Әр сегмент программа кодының әр қатарында орналасқан сөйлемдерден құрылады.
Программа сөйлемдерін (команда, макрокоманда, директива, коментарий) ассемблер трансляторы айқын анықтау үшін олар белгілі бір синтаксистік ережелерге сәйкес қалыптастырылуы тиіс.

Прикрепленные файлы: 1 файл

Ассемблер.docx

— 17.71 Кб (Скачать документ)

Ассемблер тілі- ағылшын тілінен аударғанда “жинау” деген мағынаны білдіреді. Ол-машиналық тілдің аналогы болып саналады. Ассемблер тілінде жазылған программа жад сегменттері деп аталатын жад блоктарының тобынан тұрады. Программа осындай бір немесе бірнеше блок-сегменттерден тұруы мүмкін. Әр сегмент программа кодының әр қатарында орналасқан сөйлемдерден құрылады.

Программа сөйлемдерін (команда, макрокоманда, директива, коментарий) ассемблер трансляторы  айқын анықтау үшін олар белгілі  бір синтаксистік ережелерге сәйкес қалыптастырылуы тиіс.

Негізгі элементтері оператор болып  табылатын басқа жоғары дәрежелі программалау тілдеріне қарағанда, ассемблер тілінің синтаксистік программасы жолдар қатарынан тұрады. Жол- ассемблер тілінің негізгі  бірлігі болып табылады.Егер жол  программада жалғыз болса, онда ол трансляция процессін аяқтайтын,end ассемблер  директивасынан тұру керек.

Ассемблер тілінің операторы кем  дегенде 4 жолдан тұрады. Жалғыз маңызды  жол – операция кодының  жолы. Операция кодының жолы ассемблер  тілінің операторында, сол мезеттегі  микропроцессор орындайтын команданы  анықтайды.Мысалы:

Операндылар жолы команда туралы қосымша  мәліметтен тұрады,мысалы: көлемі,операцияға қатысатын. Операндылар жолы операциялар  кодымен анықталады.Әрбір операция кодына операндылардың белгілі мәні сәйкес келуі керек.ADD командасы  үшін, қосылатын 2 операнды қажет.    

   Ассемблер тілінде жазылған программа жад сегменттері деп аталатын жадблоктарының тобынан тұрады. Программа осындай бір немесе бірнеше блок-сегменттерден тұруы мүмкін. Әр сегмент программа кодының әр қатарында орналасқан сөйлемдерден құрылады.

    Ассемблер тілінің сөйлемдері төрт түрлі болады:

  1. Командалар: машиналық кодтардың аналогтары. Бұл командалар трансляциялау кезінде МП-ң сәйкес командаларына түрленеді;
  2. Макрокомандалар: трансляциялау кезінде басқа сөйлемдерге алмасатын сөйлемдер;
  3. Дерективалар: ассемблер трансляторына орындалатын әрекеттер туралы түсінік береді, яғни қызметші ақпараттар жиыны. Дерективалар машиналвқ кодтарға түрленбейді;
  4. Комментарий: кез-келген белгілерден тұрады.

Ассемблер тілінің  екі артықшылығы бар:

Бұл тілдің көмегімен  программаны МП командалары деңгейінде жазуға болады және сандық кодтардың барлығын еске сақтауды талап етпейді. Программа командалары жазылып болған соң, Ассемблер программасы шақырылады да, ол бұл командаларды олардың кодтарына айналдырады. Командалар жиыныннан тұратын программа негізгі не алғашқы программа деп аталады, ал негізгі программаның сандық кодтары, яғни машиналық тілге айналған түрі – объектік программа деп аталады.

Ассемблердің атқаратын  негізгі қызметі – қолданушыға түсінікті негізгі прогрпмманы МП түсінетін объекттік программаға айналдыру. Ассемблердің кең тараған түрлері: IBM фирмасының MASM(Macro Assembler) программасы және Borland фирмасының TASM (Turbo Assembler) прграммасы. Ассемблер тіліндегі әр команда 4 өрістен тұруы мүмкін. Мысалы: get: mov cx,di; cx регистріне di регистрінің мәнін меншіктеу Бұл жерде get белгіні білдіреді, mov – меншіктеу командасы, cx, di операндтарды білдіреді, ал; белгісінен кейін тұрған мәлімет – коментарий.

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

Прежде, чем двигаться  дальше, рассмотрим синтаксис операторов в языке ассемблера. Необходимо определить основные элементы языка ассемблера, чтобы можно было пользоваться стандартными терминами для обозначения этих элементов языка.

Оператор языка  ассемблера состоит не более, чем из четырех полей. На рисунке приводится типичный оператор языка ассемблера и названия его полей. Единственное обязательное поле - поле кода операции. Программисты ссылаются иногда на множество кодов операций машины, подразумевая под этим ее систему команд. Поле кода операции в операторе языка ассемблера определяет ту команду, которую должен выполнить микропроцессор, в данном случае команду ADD (сложить).

Метка

Код операции

Операнды

Комментарий

Me1:

ADD

AX,BX

;


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

Поля метки и  комментария являются в команде  необязательными. Метка служит для  обозначения какого-то определенного  места в памяти ЭВМ. Любое место  в памяти однозначно определяется адресом, однако вычислить адрес команды  не просто, если вообще возможно. Метка  позволяет с помощью введенного программистом имени идентифицировать определенный адрес памяти. Можно  сказать, что поле метки содержит в символическом виде адрес, по которому хранится команда. Если в дальнейшем потребуется сделать ссылку на этот адрес, то нет необходимости определять абсолютное значение адреса, по которому хранится команда, так как в этой ссылке будет использоваться символическое  имя. Использование меток является одним из оснований для предпочтения языка ассемблера машинному языку. Преобразование символических имен в действительные адреса осуществляется ассемблером.

Поле комментария  служит для удобства программиста. Программист может использовать эту область для указания дополнительной информации о данной команде. Комментарии  не обязательно связаны только с  командами. Вы можете отвести под  комментарий всю строку поместив в первую позицию строки символ ";". Это дает программисту возможность включить в ассемблерную распечатку сопроводительную информацию, например описание применяемого алгоритма.

У каждого есть собственное представление о  том, как нужно комментировать программу, и у читателя наверняка появится свое мнение по этому вопросу. Вообще же, следует использовать в комментарии  инфориацию, относящуюся к решаемой задаче. В рассмотренном выше примере было бы бессмысленным коментировать команду замечанием типа: "Сложение AX с BX". Это было бы не более, чем перефразировка кода операции и операндов. Если вы собираетесь использовать комментарии, то пусть они в какой-то мере оправдают усилия, затраченные на их ввод и чтение.

 

 


Информация о работе Ассемблер тілі