Файл: Поваренкин Н. В. должность, уч степень, звание подпись, дата инициалы, фамилия контрольная работа по дисциплине (Микропроцессоры, устройства и программирование).docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 23.11.2023
Просмотров: 97
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
федеральное государственное автономное образовательное учреждение высшего образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
ИНСТИТУТ НЕПРЕРЫВНОГО И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ
| КАФЕДРА (22) |
| канд. техн. наук, доцент | | | | Поваренкин Н. В. |
| должность, уч. степень, звание | | подпись, дата | | инициалы, фамилия |
| КОНТРОЛЬНАЯ РАБОТА |
| |
| по дисциплине: (Микропроцессоры, устройства и программирование) |
| СТУДЕНТ ГР. № | | | | | |
| | номер группы | | подпись, дата | | инициалы, фамилия |
| Студенческий билет № | | | | | |
| Шифр ИНДО | 11.03.01 |
2. Максимальный контроль над железом. Язык Ассемблер позволяет программисту полностью контролировать работу железа и производить манипуляции с памятью, регистрами, портами ввода-вывода и другими устройствами.3. Оптимизация программ. Программист на языке Ассемблер может оптимизировать программу до мелочей и достичь максимально возможной скорости выполнения при минимальном потреблении ресурсов.Недостатки языка Ассемблер:1. Сложность и трудоемкость написания программ. Язык Ассемблер требует от программиста глубоких знаний железа и алгоритмов, что делает написание программы на нем крайне сложным и трудоемким процессом.2. Низкая читаемость кода. Код на языке Ассемблер крайне сложен для чтения и понимания, что затрудняет сопровождение программы и ее дальнейшее развитие.3. Не переносимость программ. Программы на языке Ассемблер зависят от конкретных процессоров и архитектуры железа, что делает их не переносимыми на другие платформы.Относительно второй части вопроса: да, язык Ассемблер может использоваться при написании программ для микроконтроллера на языке С. Однако, в большинстве случаев программисты предпочитают использовать язык C для написания программ для микроконтроллеров, так как это делает код более читаемым, переносимым и упрощает процесс создания сложных алгоритмов.Л1.2. Укажите назначение идентификаторов. Перечислите ограничения, накладываемые на идентификаторы. Могут ли идентификаторы использоваться для обозначения констант?Идентификаторы в программировании используются для обозначения переменных, функций, классов, структур и других объектов программы. Их назначение - обеспечивать удобочитаемость кода и возможность работы с переменными и объектами программы.Ограничения, накладываемые на идентификаторы:1. Идентификаторы не могут начинаться с цифр.2. Идентификаторы должны состоять только из букв, цифр или знака подчеркивания.3. Идентификаторы не могут содержать пробелы или специальные символы, кроме знака подчеркивания.4. Идентификаторы чувствительны к регистру: myVariable и myvariable — это разные идентификаторы.Идентификаторы могут использоваться для обозначения констант, однако, в этом случае обычно используются специальные правила именования, чтобы отличать константы от переменных и других объектов программы. Например, может использоваться префикс const или CONST_, или писать идентификаторы констант полностью заглавными буквами.
Л1.3. Укажите какие формы записи целых чисел используются для их представления в микроконтроллере. Могут ли для обмена данными между узлами контроллера использоваться числа, представленные в шестнадцатеричной системе счисления? Для чего нужен спецификатор числа?Целые числа в микроконтроллерах могут быть представлены с использованием разных форм записи. Например, наиболее распространенными формами являются:1. Десятичная система счисления. Целые числа записываются в виде десятичных чисел, например, 123, -45 и т.д.2. Двоичная система счисления. Целые числа записываются в виде двоичных чисел, например, 0b1010, 0b111000 и т.д.3. Шестнадцатеричная система счисления. Целые числа записываются в виде шестнадцатеричных чисел, например, 0x1A, 0xFF и т.д.Для обмена данными между узлами контроллера можно использовать числа, представленные в любой системе счисления, включая шестнадцатеричную. Однако в каждом случае необходимо знать, в какой системе счисления были представлены числа для правильного их чтения и интерпретации.Спецификатор числа используется для указания типа данных переменной или константы. Он определяет размер и формат памяти, который будет использоваться для хранения числа. Например, спецификатор int обозначает целое число, занимающее 2 или 4 байта в зависимости от платформы. Спецификаторы также могут содержать модификаторы, которые указывают на знаковость числа, его диапазон и другие свойства.Л1.4. Запишите формат команды, используемой при написании программы на Ассемблере. Дайте пояснение каждому элементу команды. Укажите разрядность команды в микроконтроллере 1887ВE7T. Поясните порядок расположения элементов при записи команды в память программ контроллера.Формат команды, используемой при написании программы на Ассемблере, может отличаться в зависимости от архитектуры процессора и специфики языка Ассемблер. Однако, в общем случае, формат команды включает следующие элементы:Метка: Опциональный элемент, который обозначает определенный адрес в памяти программ. Используется для обращения к этому адресу из других частей программы.Операция: Код операции, выполняемой процессором, такие как перемещение данных, арифметические или логические операции и т.д.Операнды: Данные, над которыми выполняется операция, такие как регистры процессора, адреса памяти, константы и т.д.
Разрядность команды в микроконтроллере 1887ВE7T составляет 16 бит.При записи команды в память программ контроллера порядок расположения элементов следует определенным правилам. В общем случае, команда записывается в виде последовательности кодов операций и операндов, где каждый элемент имеет фиксированный размер и размещается в соответствии с порядком выполнения команды. Так, например, если первым элементом команды является код операции, то он записывается в начале команды, за которым следует необходимое количество байтов для записи операндов и т.д. Порядок байт в операндах может быть различным в зависимости от архитектуры процессора, поэтому программист должен знать особенности конкретного устройства и правильно располагать элементы команды при ее записи в память программ.Л1.5. Дайте понятие метке. Укажите возможную длину метки. Перечислите признак метки. Поясните каким образом метка записывается в память программ. Перечислите запреты, которые накладываются на написание меток в программном коде. Зависит ли количество занимаемых меткой ячеек памяти в памяти программ от ее длины? Возможно ли применение в программном коде меток без одновременного наличия команд возврата к этим меткам?Метка в программировании — это идентификатор, который используется для обозначения определенного адреса в памяти программы. Она обычно используется для создания точек перехода в программе, к которым можно обращаться из других частей кода. Метки могут иметь фиксированную длину, которая зависит от архитектуры процессора и специфики языка Ассемблер.Признаки метки:1. Начинается с буквы или символа подчеркивания.2. Может содержать буквы, цифры и знак подчеркивания.3. Должна быть уникальной в пределах программы.4. Чувствительна к регистру.Метка записывается в память программ в виде ее символьного имени, которое затем связывается с соответствующим адресом в памяти. Обычно при написании меток используется специальный оператор (например, в языке Ассемблер это может быть двоеточие), который указывает на начало метки.Запреты, которые накладываются на написание меток в программном коде:1. Нельзя использовать зарезервированные слова языка в качестве метки.2. Нельзя начинать метку с цифры.3. Нельзя использовать специальные символы, кроме знака подчеркивания.4. Нельзя использовать метки, которые уже были определены в другой части программы.Количество занимаемых меткой ячеек памяти зависит от размерности адреса, заданной на аппаратном уровне. Например, если адресация осуществляется 16-битными словами, то метка будет занимать две ячейки памяти.
В программном коде можно использовать метки без одновременного наличия команд возврата к этим меткам. Однако, в этом случае метка не будет выполнять никаких полезных действий, так как из кода не будет производиться обращение к этой метке.Л1.6. Дайте понятие оператору языка Ассемблер. В чем состоит особенность применения операторов. Дайте пояснение по применению каждого оператора. При этом поясните назначение аргумента оператора и конечный результат, получаемый после его выполнения.Оператор в языке Ассемблер — это инструкция, которая указывает на определенное действие для выполнения процессором. Операторы выполняются последовательно, по одному за раз, и обрабатывают данные, находящиеся в регистрах процессора или в памяти.Особенность применения операторов в языке Ассемблер заключается в том, что каждый оператор выполняется с использованием низкоуровневых команд процессора. Это позволяет программисту получить максимальный контроль над процессором и оптимизировать код для лучшей производительности.Некоторые из основных операторов языка Ассемблер и их применение:1. MOV - копирует значение из одного регистра или ячейки памяти в другой регистр или ячейку памяти. Принимает два аргумента: исходное значение и место назначения.2. ADD - выполняет сложение двух значений. Принимает два аргумента: первое слагаемое и второе слагаемое.3. SUB - выполняет вычитание двух значений. Принимает два аргумента: уменьшаемое и вычитаемое.4. MUL - выполняет умножение двух значений. Принимает два аргумента: множимое и множитель.5. DIV - выполняет деление одного значения на другое с получением остатка. Принимает два аргумента: делимое и делитель.6. CMP - сравнивает два значения и устанавливает флаги процессора в соответствии с результатом. Принимает два аргумента: первое сравниваемое значение и второе сравниваемое значение.Результат выполнения оператора может быть различным в зависимости от типа операции и аргументов. В некоторых случаях результатом будет новое значение, полученное в результате выполнения операции. В других случаях оператор может просто установить определенные флаги процессора или изменить содержимое определенной ячейки памяти.Л1.7. Дайте понятие встроенной функции, используемой в языке Ассемблер. Поясните в чем необходимость создания собственных функций.