Главная страница
Навигация по странице:

  • Таблица 6.2. Системы счисления (Radix). Тип Синтаксис

  • Таблица 6.3. Основные арифметические операторы MPASM Оператор Описание

  • Таблица 6.4. Используемые по умолчанию назначения расширений файлов. Расширение

  • Таблица 6.5. Параметры, используемые директивой list. Параметр

  • NOLIST

  • Пример 12.1. Пример файла MPSIM.INI

  • Таблица 6.6. Основные команды симулятора MPSIM. Команда Параметр

  • КУРС ЛЕКЦИЙ ПО МИКРОПРОЦЕССОРНОЙ ТЕХНИКЕ. Курс лекций по микропроцессорной технике. Введение


    Скачать 1.34 Mb.
    НазваниеКурс лекций по микропроцессорной технике. Введение
    АнкорКУРС ЛЕКЦИЙ ПО МИКРОПРОЦЕССОРНОЙ ТЕХНИКЕ.doc
    Дата16.03.2017
    Размер1.34 Mb.
    Формат файлаdoc
    Имя файлаКУРС ЛЕКЦИЙ ПО МИКРОПРОЦЕССОРНОЙ ТЕХНИКЕ.doc
    ТипКурс лекций
    #3832
    страница20 из 22
    1   ...   14   15   16   17   18   19   20   21   22


    Здесь и далее используются следующие соглашения по использованию символов:

    • [ ] – для аргументов по выбору;

    • < > – для выделения специальных ключей , или дополнительного выбора;

    • | – для взаимоисключающих аргументов (выбор ИЛИ);

    • строчные символы – для обозначения типа данных.

    Выбор по умолчанию, приведенный в табл. 6.1, может быть изменен командной строкой:

    • /

    • /

    • /

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

    • метки (labels)

    • мнемоника (mnemonics)

    • операнды (operands)

    • комментарий (comments)

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

    Максимальная длина строки 255 символов.

    Один или несколько пробелов должны отделять метку и мнемонику или мнемонику и операнд(ы). Операнды могут отделяться запятой. Например:

    List p=16C54, r=HEX

    ORG 0x1FF ;Вектор сброса

    GOTO START ;Возврат на начало

    ORG 0x000 ;Адрес начала исполнения

    ;программы

    START

    MOVLW 0x0A ;Выполнение программы

    ;PIC МК

    MOVLW 0x0B ;Выполнять всегда

    GOTO START

    END

    Метки

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

    Метка может начинаться с символа или нижнего тире (_) и содержать буквенные символы, числа, нижние тире и знак вопроса. Длина метки может быть до 32 символов.
    Мнемоники

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

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

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

    В ассемблере MPASM используются следующие форматы выражений:

    • текстовая строка;

    • числовые константы и Radix;

    • арифметические операторы и приоритеты;

    • High / Low операторы.

    Текстовая строка – это последовательность любых допустимых ASCII символов (в десятичном диапазоне от 0 до 127), заключенная в двойные кавычки. Строка может иметь любую длину в пределах 132 колонок. При отсутствии ограничения строки она считается до конца линии. Если строка используется как буквенный операнд, она должна иметь длину в один символ, иначе будет ошибка.

    Числовая константа представляет собой число, выраженное в некоторой системе счисления. Перед константой может стоять + или –. Промежуточные величины в константах рассматриваются как 32-разрядные целые без знака.

    MPASM поддерживает следующие системы счисления (представления значений или Radix): шестнадцатиричную, десятичную, восьмиричную, двоичную и символьную. По умолчанию принимается шестнадцатиричная система. Табл. 6.2 представляет различные системы счисления.

    Операторы – это арифметические символы, подобные + и –, которые используются при формировании выражений. Каждый оператор имеет свой приоритет. В общем случае приоритет устанавливается слева направо, а выражения в скобках оцениваются первыми. В табл. 6.3 приведены обозначения, описания и примеры применения основных операторов MPASM.

    Таблица 6.2. Системы счисления (Radix).

    Тип

    Синтаксис

    Пример

    Десятичная

    D'<цифры>' или .<цифры>

    D'100' или .100

    16-ричная

    H'<цифры>' или 0x<цифры>

    H'9f' или 0x9f

    Восьмиричная

    O'<цифры>'

    O'777'

    Двоичная

    B'<цифры>'

    B'00111001'

    Символьная

    '<символ>' или A'<символ>'

    "C" или A'C'




    Таблица 6.3. Основные арифметические операторы MPASM

    Оператор

    Описание

    Пример

    $

    Текущий счетчик команд

    goto $ + 3

    (

    левая скобка

    1 + ( d * 4 )

    )

    правая скобка

    ( lenght + 1 ) * 255

    !

    операция «НЕ» (логическая инверсия)

    if ! ( a - b )



    дополнение

    flags = flags

    -

    инверсия (двоичное дополнение)

    – 1 * lenght

    High

    выделить старший байт слова

    movlw high llasid

    Low

    выделить младший байт слова

    movlw low (llasid + .251)

    upper

    выделить наибольший байт слова

    movlw upper (llasid + .251)

    *

    Умножение

    a = c * b

    /

    Деление

    a = b / c

    %

    Модуль

    lenght = totall % 16

    +

    Сложение

    Tot_len = lenght * 8 + 1

    -

    Вычитание

    Entry_Son = ( Tot – 1 ) / 8

    <<

    сдвиг влево

    Val = flags << 1

    >>

    сдвиг вправо

    Val = flags >> 1

    >=

    больше либо равно

    if ent >= num

    >

    больше

    if ent > num

    <

    меньше

    if ent < num

    <=

    меньше либо равно

    if ent <= num

    ==

    равно

    if ent == num

    !=

    не равно

    if ent != num

    &

    поразрядное «И»

    flags = flags & err_bit

    ^

    поразрядное «ИСКЛЮЧАЮЩЕЕ ИЛИ»

    flags = flags ^ err_bit

    |

    поразрядное «ИЛИ»

    flags = flags | err_bit

    &&

    логическое «И»

    if (len == 512)&&( b == c )

    ||

    логическое «ИЛИ»

    if (len == 512 ) || ( b == c )

    =

    установить равным...

    entry_index = 0

    ++

    увеличить на 1 (инкремент)

    i ++



    уменьшить на 1 (декремент)

    i —

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

    Операторы инкремента и декремента могут применяться к переменной только в качестве единственного оператора в строке. Они не могут быть встроенным фрагментом более сложного выражения.
    Комментарии

    Поле комментария может использоваться программистом для текстового или символьного пояснения логической организации программы. Поле комментария полностью игнорируется ассемблером, поэтому в нем можно применять любые символы. Комментарии, которые используются в строке сами по себе, должны начинаться с символа комментария (* или ;). Комментарии в конце строки должны быть отделены от остатка строки одним или более пробелами или табуляцией.
    Расширения файлов, используемые MPASM и утилитами

    Существует ряд расширений файлов, применяемых по умолчанию MPASM и связанными утилитами. Назначения таких расширений приведены в табл. 6.4.

    Таблица 6.4. Используемые по умолчанию назначения расширений файлов.

    Расширение

    Назначение

    .ASM

    Входной файл ассемблера для MPASM .ASM

    .OBJ

    Выходной файл перемещаемого объектного кода из MPASM .OBJ

    .LST

    Выходной файл листинга, генерируемый ассемблером MPASM или MPLINK: .LST

    .ERR

    Выходной файл ошибок из MPASM: .ERR

    .MAP

    Выходной файл распределения памяти из MPASM: .MAP

    .HEX

    Выходной файл объектного кода в шестнадцатиричном представлении из MPASM: .HEX

    .HXL/.HXH

    Выходной файл объектного кода в шестнадцатиричном представлении c раздельным представлением младших и старших байт: .HXL, .HXH

    .LIB

    Библиотечный файл, созданный MPLIB и привязанный компоновщиком MPLINK: .LIB

    .LNK

    Выходной файл компоновщика: .LNK

    .COD

    Выходной символьный файл или файл отладчика. Формируются MPASM или MPLINK: .COD

    Листинг представляет собой текстовый файл в формате ASCII, который содержит машинные коды, сгенерированные в соответствии с каждой ассемблерной командой, директивой ассемблера или макрокомандой исходного файла. Файл листинга содержит: имя продукта и версии, дату и время, номер страницы вверху каждой страницы.

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

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

    Существует четыре основных типа директив в MPASM:

    • директивы данных;

    • директивы листинга;

    • управляющие директивы;

    • макро-директивы.

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

    Директивы листинга управляют листингом файла MPASM и форматом. Они определяют спецификацию заголовков, генерацию страниц и другие функции управления листингом.

    Директивы управления позволяют произвести секционирование обычного ассемблерного кода.

    Макро-директивы управляют исполнением и распределением данных в пределах определений макротела.

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

    CODE – начало секции объектного кода

    Синтаксис:

    [
    1   ...   14   15   16   17   18   19   20   21   22


    написать администратору сайта