КАТЕГОРИИ: Архитектура-(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) Исходный файл программы может быть создан в любом текстовом редакторе ASCII. Текст программы должен удовлетворять следующим требованиям: Каждая строка исходного файла может содержать до четырех информационных полей:
Необходимо соблюдать порядок расположения информационных полей в строке. Метки должны начинаться с первой колонки. Мнемоники команд должны начинаться со второй (и далее) колонки. Операнды следуют за мнемоникой команды. Комментарии могут следовать за операндами, мнемониками и метками и могут начинаться в любой колонке. Максимальная ширина колонки 255 символов. Метки от мнемоник должны отделяться двоеточием, пробелами или символами табуляции, операнды должны разделяться запятыми.
Метки Метка должна начинаться в колонке 1. За ней может следовать двоеточие (:), пробелы, символы табуляции или конец строки. Метка должна начинаться с символа латинского алфавита или символа подчеркивания (_) и может состоять из алфавитно-цифровых символов латинского алфавита, символа подчеркивания (_) или знака вопроса (?). Максимальная длина метки 32 символа. По умолчанию метки чувствительны к регистру символов, этот параметр может быть изменен в командной строке при запуске MPASM. Если в имени метки используется двоеточие, то отделенная часть трактуется как оператор, а не как часть имени метки.
Дата добавления: 2014-01-11; Просмотров: 545; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |