Студопедия

КАТЕГОРИИ:


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

Входные и выходные файлы MPASM




Повнофункціональний універсальний макроасемблер для всього сімейства мікропроцесорів PICmicro. Асемблер дозволяє генерувати шістнадцятирічний файл для запису в мікро контролер або формувати об’єктні файли для переміщення лінкером MPLINK.

Організатор бібліотек MPLIB

Лінкер MPLINK

Асемблер MPASM

Лекція 3. Асемблер

Begin

Begin

If EmptyO(sp) Then i:= 0 Else i:= Pos (TopO(sp), '(+ - * /) ');

NumAct:= tab [ i, Pos(op, ' = (+ - * /) ') – 1 ];

End;

 

Function Calc (op:Char; Var sp: u):Boolean;

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

если успешно, то возвращает True.}

Var x, y:Real;

Calc:= True;

If Empty(sp) Then Begin Calc:= False; Exit; End;

y:= Pop (sp);

If Empty(sp) Then Begin Calc:= False; Exit; End;

x:= Pop (sp);

Case op Of

'+': x:= x + y;

'-': x:= x - y;

'*': x:= x * y;

'/': If y=0 Then Calc:= False Else x:= x / y;

End;

Push (sp, x);

End;

.......................................................................................................................................

Begin { головная программа}

ClrScr;

v:= ' 4 * (2 + 3) / 9 = ';

ho:= Nil; h:= Nil;

j:= 1; Ok:= True; f:= False;

While Not f Do

If v[j] In ['0'..'9']

{если v[j] операнд, то положить его в стек, иначе вып-ть действие из tab}

Then Begin Val (v[j], x, k); Push (h, x); Inc(j); End

Else If v[ j ] In [ '(', '+', '-', '*', '/', ')', '=' ]

Then { если v [ j ] есть операция}

Case NumAct(ho, v[j]) Of

{ошибка в выражении} 0: Begin Ok:= False;

f:= True;

End;

{операцию в стек} 1: Begin PushO (ho, v[j]); Inc(j ); End;

 

{выч-ть верх операцию} 2: Begin Ok:= Calc (PopO (ho), h);

f:= Not Ok;

{а текущю оп-цию в стек} PushO (ho, v[j]);

Inc(j);

End;

 

{ ' (' из стека } 3: Begin c:= PopO (ho);

Inc(j);

End;

{ выч-ть верх. оп-цию} 4: Begin Ok:= Calc (PopO(ho), h);

f:= Not Ok;

End;

 

{конец выражения} 5: Begin res:= Pop (h);

Ok:= Empty (h) And (j >= Length(v));

f:= True;

End;

End; {Case}

If Ok Then Writeln (v, res:10:6)

Else Write ('ошибка в выражении или деление на­ 0 ');

Readkey;

Еnd.

 

Типы файлов, связанные с ассемблером MPASM.

 

Тип файла Описание
.ASM Исходный файл MPASM, <Source name>.ASM
.LST Файл листинга программы, <Source name>.LST
.ERR Список ошибок, возникших при компиляции, <Source name>.ERR
.HEX Файл кода программы, <Source name>.HEX
.HXL/.HXH     Файлы кода программы, отдельно младшие и старшие байты кода, <Source name>.HXL < Source name >.HXH  
.COD Файл для отладчика, <Source name>.COD
.0 Объектный файл программы, <Source name>.0

Исходный файл (.ASM)

Исходный файл программы может быть создан в любом текстовом редакторе ASCII. Текст программы должен удовлетворять следующим требованиям:

Каждая строка исходного файла может содержать до четырех информационных полей:

  • метка;
  • мнемоника команды;
  • операнды команды;
  • комментарии.

Необходимо соблюдать порядок расположения информационных полей в строке. Метки должны начинаться с первой колонки. Мнемоники команд должны начинаться со второй (и далее) колонки. Операнды следуют за мнемоникой команды. Комментарии могут следовать за операндами, мнемониками и метками и могут начинаться в любой колонке. Максимальная ширина колонки 255 символов. Метки от мнемоник должны отделяться двоеточием, пробелами или символами табуляции, операнды должны разделяться запятыми.

 

Метки

Метка должна начинаться в колонке 1. За ней может следовать двоеточие (:), пробелы, символы табуляции или конец строки.

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

Максимальная длина метки 32 символа.

По умолчанию метки чувствительны к регистру символов, этот параметр может быть изменен в командной строке при запуске MPASM. Если в имени метки используется двоеточие, то отделенная часть трактуется как оператор, а не как часть имени метки.




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


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


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



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




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