• Видеорегистраторы
  • Игрушки для мальчиков
  • Надувные игрушки
  • Алиэкспресс
  • Игрушки для девочек
  • Ноутбуки
  • Планшеты
  • Новости
  • SB-Projects - SB-Assembler - перекрестное наложение>

    1. 8051 Введение .cr 8051 Чтобы загрузить это перекрестное наложение 8051, пожалуй, самый популярный...
    2. Аккумулятор
    3. Зарегистрировать R0 ... R7
    4. Зарезервированные слова
    5. Особые возможности
    6. Инициализация оверлея
    7. .EQ изменил поведение в версии 3
    8. Функция:
    9. .РБ Регистрация Банка
    10. Функция:
    11. Различия между другими ассемблерами

    8051 Введение

    .cr 8051 Чтобы загрузить это перекрестное наложение

    8051, пожалуй, самый популярный 8-битный микроконтроллер. Мне трудно найти подходящую причину его популярности, поскольку это далеко не лучший 8-битный микроконтроллер. Если вы только кратко рассмотрите возможности, например, микроконтроллера Z8 от Zilog или 68HC11 от Motorola, и вы согласитесь со мной. Но 8051 здесь и здесь, чтобы остаться.

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

    Если вы присмотритесь к тому, что Intel создала здесь, вы увидите ряд глупых ошибок в дизайне.
    Одним из самых больших недостатков стандартного ядра 8051 является то, что доступен только один 16-битный регистр указателя. Перемещение блока данных - это очень утомительная работа, которая переносит слишком много данных. Некоторые производители реализовали решения этой проблемы, добавив больше регистров указателей в базовый дизайн.
    Также отсутствие приличной инструкции сравнения является большим препятствием во время программирования.
    Или вы когда-нибудь пытались сдвинуть 4-байтовое число n битов влево на 8051? Время, необходимое для перемещения операндов в Аккумулятор и обратно, занимает 2/3 от общего времени, чтобы сместить значение на один бит влево!
    Наконец, я хотел бы подчеркнуть тот факт, что частота генератора оригинальных устройств была разделена на 12! Поэтому кварц 12 МГц дает тактовую частоту всего 1 МГц. Неудивительно, что Intel всегда выигрывал гонку МГц!

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

    Сила 8051 заключается в его гибкости, когда дело доходит до расширения периферии. Новые периферийные устройства могут быть добавлены без изменения ядра или набора команд. Только несколько регистров специальных функций добавляются для добавления новых функций в стандартное ядро.

    Модель программирования

    Модель программирования на рисунке ниже показывает наиболее важные регистры процессора 8051. Здесь я приведу лишь краткое описание особенностей модели программирования 8051. Я не намерен делать оригинальную документацию устаревшей, поэтому, пожалуйста, обратитесь к оригинальной документации для получения более подробной информации. Вы также можете найти много полезной информации на www.8052.com ,

    Аккумулятор

    Слово статуса программы

    Бит 7 CY Флаг переноса Бит 6 ACY Вспомогательный бит переноса 5 F0 Флаг общего назначения Бит 4 RS1 Флаг выбора банка регистров Бит 3 RS0 Флаг выбора банка регистров Бит 2 Флаг переполнения OV Бит 1 F1 Флаг общего назначения Бит 0 P Флаг четности

    Зарегистрировать R0 ... R7

    Указатель стека

    Data PoinTeR

    Счетчик программ

    тайминг

    SB-Assembler Version 3 может показывать время цикла каждой инструкции, когда флаг списка TON включен. Все приведенные значения времени представляют собой число состояний T, которое требуется для выполнения инструкции. На реальном 8051 состояние Т занимает 12 тактовых импульсов генератора. Другие производные могут нуждаться в меньшем количестве тактов на Т-состояние.

    Зарезервированные слова

    Перекрытие SB-Assembler 8051 содержит несколько зарезервированных слов. Зарезервированные слова являются фиксированными именами регистров и битов. Вам лучше избегать этих зарезервированных слов, когда вы назначаете свои собственные ярлыки. Например, не называйте свои метки R0, или A или C.
    Если вы используете зарезервированные слова в качестве имен меток, рано или поздно вы можете ожидать непредсказуемого поведения ассемблера. Обратите внимание, что ассемблер не предупредит вас, если вы попытаетесь присвоить метку с зарезервированным именем!
    Зарезервированные имена не могут использоваться в выражениях, как имена меток. Если вы попытаетесь использовать зарезервированное слово в выражении, будет сообщено о неопределенной ошибке метки, поскольку в этом случае она рассматривается как обычная метка.

    Вот список всех зарезервированных слов:

    В отличие от других 8051 ассемблеров, SB-Assembler не имеет предопределенного набора имен SFR. Все имена SFR должны быть назначены с использованием обычных меток. Обратите внимание, что это относится только к регистрам SFR, а не к таким регистрам, как A, R0, DPTR или C. SB-Assembler автоматически использует адресацию SFR, когда значение метки находится в диапазоне адресов SFR (от $ 80 до $ FF).
    Лично я рассматриваю это как преимущество, потому что вам не нужен специальный выделенный ассемблер для каждой возможной производной 8051. Вы просто создаете список всех SFR и их адресов, используя директиву .EQ. Таким образом, SB-Assembler может использоваться для всех возможных производных 8051, сейчас и в будущем.
    Я добавил два включаемых файла в пакет загрузки для стандартных процессоров 8051 и 8052. Просто включите один из этих файлов в начале вашей программы, и вы можете использовать любой из стандартных регистров SFR. Вы можете легко изменить один из этих файлов, чтобы представить функции вашего собственного процессора.

    Особые возможности

    Регистрация адресации

    Короткая адресация

    Битовая адресация

    Примеры:

    MOV C, $ 00 Битовый номер адресован непосредственно MOV C, $ 20.0 Тот же результат, что и в предыдущей строке MOV C, $ 7F Битовый номер адресован непосредственно MOV C, $ 2F.7 Тот же результат, что и в предыдущей строке MOV C, $ 80 Использовать SFR-битовый номер напрямую MOV C, $ 80.0 Тот же результат, что и в предыдущей строке MOV C, $ FF Используйте битовый номер SFR непосредственно в MOV C. $ F8.7 Тот же результат, что и в предыдущей строке MOV C, LABEL.3 LABEL следует оценивать в адресную битовую память MOV C, SILLY.EXAMPLE. 2 Имя метки может содержать точки MOV C, $ 20 + 1,2. Допускаются даже арифметические функции MOV C, $ 21,2. Тот же результат, что и в предыдущей строке.

    Инициализация оверлея

    При инициализации оверлея 8051 каждый раз, когда он загружается .CR директивы.

    • Указатель регистра (тот, который изменен .RB директива) устанавливается в 0.
    • Большая порядковая модель выбрана для .DA а также .DL директивы. Это означает, что слова или длинные слова сначала сохраняются с старшим байтом.
    • Максимальное значение счетчика программы установлено в $ FFFF.

    Небольшое слово о порядке байтов, которое я выбрал, может быть здесь. Я попытался выяснить, какое решение Intel было принято в отношении модели с прямым порядком байтов при разработке 8051.
    При записи в память значения JMP, CALL и DPTR используют модель с прямым порядком байтов, в то время как регистры SFR DPL и DPH сохраняются с младшим байтом. Когда вы посмотрите на порядок таймеров SFR, вы увидите, что они полностью смешали старший и младший байты разных таймеров. И чтобы сделать путаницу полные адреса возврата хранятся в младшей модели в стеке.
    Я думаю, что способ, которым JMP, CALL и DPTR упорядочивают свои байты, является самым важным, поэтому я решил использовать модель с прямым порядком байтов для 8051.

    .EQ изменил поведение в версии 3

    Синтаксис:

    ЭТИКЕТКА .RB expression.n

    Функция:

    Объяснение:

    Примеры:

    00D0- PSW .EQ $ D0 Битовая адресуемая SFR (оканчивающаяся на 0) 0000- 0000- FLAG1 .EQ $ 20,0 Просто флаг в битовой адресуемой ОЗУ 007F-FLAG2 = $ 2F.7 Просто еще один флаг 00D7-CY .EQ PSW.7 Определение флага переноса в PSW 00E2-SILLY .EQ PSW + $ 10.2 Разрешены даже выражения

    .РБ Регистрация Банка

    Синтаксис:

    Выражение

    .RB

    Функция:

    Объяснение:

    Примеры:

    00D0- PSW .EQ $ D0 Определить PSW 0000- .RB 0 Предположим, что банк регистров 0 используется 0000-53 D0 E7 ANL PSW, #% 1110.0111 Выбрать банк регистров 0 0003-EA MOV A, $ 02 автоматически переводится в R2 0004- EA MOV A, R2 Is R2 0005-E5 0A MOV A, $ 0A Невозможно преобразовать в любой регистр 0007- 0007- .RB 1 Предположим, что банк регистров 1 используется 0007-43 D0 08 ORL PSW, #% 0000.1000 Выбрать банк регистров 1 000A-53 D0 EF ANL PSW, #% 1110.1111 000D-E5 02 MOV A, $ 02 Невозможно перевести в любой регистр 000F-EA MOV A, R2 Is R2 0010-EA MOV A, $ 0A автоматически переводится на R2 0011-0011-A9 0A MOV R1, R2 R2 переводится на немедленный адрес 0013-C0 0A PUSH R2 Обычно невозможно, R2 переводится 0015-52 0A ANL R2, A Обычно невозможно, R2 переводится 0017-0017-EA MOV A, <$ 12 Принудительное использование регистровой адресации 0018-E5 0A MOV A,> $ 0A Принудительная прямая адресация

    Различия между другими ассемблерами

    Есть некоторые различия между SB-Assembler и другими ассемблерами для процессоров 8051. Эти различия требуют от вас адаптации существующих исходных файлов, прежде чем они будут собраны SB-Assembler. Это не слишком сложно, и это (маленькая) цена, которую вы должны заплатить за очень универсальный кросс-ассемблер.

    • Для SB-Assembler добавлены инструкции JMP и CALL, чтобы дать разумное решение для выбора между AJMP и LJMP или ACALL и LCALL.
    • Автоматический выбор режима кратчайшей адресации, когда оперативная память находится в текущем выбранном банке регистров.
    • Имена SFR не определены по умолчанию. Программист обязан объявлять имена SFR как обычные метки.
    • Очевидные различия в обозначениях директив, общих для всех кроссов SB-Assembler.
    • Не забывайте, что SB-Assembler не допускает пробелов внутри или между операндами. Только в версии 3 допускается один пробел после каждой запятой, разделяющей операнды в поле операндов.
    Или вы когда-нибудь пытались сдвинуть 4-байтовое число n битов влево на 8051?

    Новости

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

    Развивающие игрушки для ребенка от 1 года до 2 лет
    Невероятно трогательно выглядит маленький человек, который делает свои первые неловкие шаги. Прожив свой первый год, малыш становится уже совсем другим, он все еще нуждается в вашей трепетной заботе,

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

    Интерактивные игрушки - животные для девочек и мальчиков - Фитомания - живи лучше, стань лучше!
    PGRpdiBvbmNsaWNrPSJ5YUNvdW50ZXI0NDQyNjkxMS5yZWFjaEdvYWwoJ2FkLXlhLTAnKTsiPjxzY3JpcHQgYXN5bmMgc3JjPSIvL3BhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tL3BhZ2VhZC9qcy9hZHNieWdvb2dsZS5qcyI+PC9zY3JpcHQ+DQo8aW5zIGNsYXNzPSJhZHNieWdvb2dsZSINCiAgICAgc3R5bGU9ImRpc3BsYXk6YmxvY2s7IHRleHQtYWxpZ246Y2VudGVyOyINCiAgICAgZGF0YS1hZC1mb3JtYXQ9ImZsdWlkIg0KICAgICBkYXRhLWFkLWxheW91dD0iaW4tYXJ0aWNsZSINCiAgICAgZGF0YS1hZC1jbGllbnQ9ImNhLXB1Yi02OTgwODI5MTYzODEyMDQ3Ig0KICAgICBkYXRhLWFkLXNsb3Q9IjcwNDQ5OTIyOTgiPjwvaW5zPg0KPHNjcmlwdD4NCiAgICAgKGFkc2J5Z29vZ2xlID0gd2luZG93LmFkc2J5Z29vZ2xlIHx8IFtdKS5wdXNoKHt9KTsNCjwvc2NyaXB0PjwvZGl2Pg==

    Развивающие игры и занятия для детей 8 месяцев. Методика проведения, видео.
    Восьмимесячный ребенок продолжает активно познавать мир. Каждый его день наполнен новыми открытиями и впечатлениями. Чтобы стимулировать малыша активнее развиваться физически и интеллектуально, рекомендуется

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

    Игрушки на праздник - девочкам и мальчикам
    Собираю здесь интересные идеи для подарков (новый год скоро!) для девочек и мальчиков - "крупногабаритные" игрушки, нестандартные и необычные. Здесь техника для девочек, светофоры для мальчиков, и т.п.

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

    Купить детский гараж для машинок, многоуровневая детская парковка
    Гараж Мега гараж "Нордпласт" 4 уровня, 4 машинки и 1 мотоцикл, с дорогой 431207 (06307) Всем известно, какая это большая проблема – найти место для парковки машины. Игрушечным машинкам,

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