Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Промышленные технологии

Основы программирования микропроцессоров

Основы программирования микропроцессоров

Набор инструкций микропроцессора уникален для каждого чипа. Например, Intel 80386 использует другое двоичное кодирование, чем Motorola 68020, что означает, что идентичные операции требуют различных машинных кодов.

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

Когда разработчик пишет код, напрямую управляющий ЦП — например, регулируя впрыск топлива двигателя — он программирует на родном языке машины процессора, серии двоичных бит, которые блок управления ЦП декодирует.

Хотя машинный язык технически двоичный, программисты почти всегда пишут его в шестнадцатеричном виде для читаемости. Ниже приведены несколько распространенных инструкций для Intel 8080:

Hexadecimal Binary Instruction description
----------- -------- -----------------------------------------
7B 01111011 Переместить содержимое регистра A в регистр E
87 10000111 Сложить содержимое регистра A с регистром D
1C 00011100 Инкрементировать содержимое регистра E на 1
D3 11010011 Вывести байт данных на шину данных

Даже с шестнадцатеричной нотацией эти коды могут сбивать с толку. Ассемблер (Assembly language) предлагает мнемоническую сокращенную запись — например, 7B становится MOV A,E — которая все еще транслируется в двоичный код ассемблером (assembler) перед исполнением.

После написания программы её нужно загрузить в память. Для неволатильного хранения программатор ПЗУ (ROM programmer) записывает двоичный образ в чип ПЗУ; для волатильной памяти загрузчик или рутина операционной системы может принять нажатия клавиш или дисковые файлы и разместить код в ОЗУ.

На полнофункциональном ПК компилятор записывает собранный код в дисковый файл. При запуске вызов имени файла заставляет счетчик команд ЦП указывать на первую инструкцию, и программа выполняется.

Хотя программирование на машинном коде или ассемблере дает высокоэффективный код, оно трудоемко и подвержено ошибкам. Высокоуровневые языки (C, C++, Java) позволяют разработчикам выражать намерение — например, print "Hello, world!" — без детализации отдельных машинных шагов.

Программы высокого уровня превращаются в машинный код компиляторами (статическая трансляция) или интерпретаторами (трансляция во время выполнения). Скомпилированный код работает быстрее, так как трансляция не происходит во время исполнения, тогда как интерпретируемый код несет накладные расходы на каждую инструкцию.

Распространенные компилируемые языки включают C, C++, FORTRAN и Pascal, в то время как BASIC и FORTH обычно интерпретируются. Поскольку наборы инструкций различаются между ЦП, компиляторы и интерпретаторы должны нацеливаться на конкретную архитектуру процессора.

Производители вроде Intel и Motorola смягчают проблемы совместимости, проектируя новые ЦП обратно-совместимыми (backward-compatible). Например, Pentium IV поддерживает полный набор инструкций 80386 плюс дополнительные инструкции. Код, скомпилированный для 80386, запустится на Pentium, но код, использующий Pentium-only инструкции, не запустится на 80386.

Компиляторы обычно позволяют разработчикам выбирать целевой ЦП; компиляция для 80386 гарантирует совместимость со старым железом, тогда как компиляция для Pentium может эксплуатировать новые функции, когда они доступны.

Связанный рабочий лист

Промышленные технологии

  1. Топ 10 языков программирования для облака, которые должен освоить каждый разработчик
  2. Операторы в C: исчерпывающее руководство
  3. Изучение C программирования: полное PDF-руководство для начинающих
  4. Bosque: новый язык Microsoft без циклов для повышения качества кода
  5. 9 языков программирования, которые обязательно нужно выучить в 2021 году
  6. Освоение программирования на C: подробное руководство для начинающих
  7. Язык программирования C: обзор, история и области применения
  8. Структура программы на C: разбор Hello World и процесс компиляции
  9. C#: обзор современного объектно-ориентированного языка от Microsoft
  10. Heidenhain запускает HIT 3.0: продвинутое онлайн-обучение ЧПУ для пользователей TNC