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

Программирование микропроцессора

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

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

Когда человек-программист разрабатывает набор инструкций, чтобы напрямую сказать микропроцессору, как что-то делать (например, автоматически управлять скоростью впрыска топлива в двигатель), он программирует на собственном «языке» процессора. Этот язык, состоящий из тех же двоичных кодов, которые блок управления внутри микросхемы ЦП декодирует для выполнения задач, часто называют машинным языком . .

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

 Описание шестнадцатеричной двоичной инструкции ----------- -------- ------------------------------- ---------- | 7B 01111011 Переместить содержимое регистра A в регистр E | | 87 10000111 Добавить содержимое регистра A в регистр D | | 1C 00011100 Увеличить содержимое регистра E на 1 | | D3 11010011 Вывод байта данных на шину данных 

Эти инструкции можно легко спутать и забыть даже в шестнадцатеричной системе счисления. Для этого существует еще одно вспомогательное средство для программистов, называемое язык ассемблера . .

В языке ассемблера для описания шагов программы вместо реального шестнадцатеричного или двоичного кода используются мнемонические слова из двух-четырех букв. Например, инструкция 7B для Intel 8080 будет « MOV A, E »На ассемблере.

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

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

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

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

Чтобы «запустить» вашу программу, вы должны просто ввести имя файла вашей программы в приглашении, нажать клавишу Enter, и регистр счетчика программ микропроцессора будет установлен так, чтобы указывать на место («адрес») на диске, где находится первая инструкция. хранится, и ваша программа будет запускаться оттуда.

Хотя программирование на машинном языке или языке ассемблера позволяет создавать быстрые и высокоэффективные программы, для решения любых задач, кроме простейших, требуется много времени и навыков, потому что каждая инструкция на машинном языке настолько грубая. Ответ на этот вопрос - разработать для программистов способы писать на языках «высокого уровня», которые могут более эффективно выражать человеческие мысли. Вместо того, чтобы вводить десятки загадочных кодов на языке ассемблера, программист, пишущий на языке высокого уровня, сможет написать что-то вроде этого. . .

 Распечатать «Привет, мир!» 

. . . и ожидайте, что компьютер напечатает «Hello, world!» без дальнейших инструкций, как это сделать. Это отличная идея, но как микропроцессор понимает такое «человеческое» мышление, когда его словарный запас настолько ограничен?

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

Переводчик необходим для того, чтобы переводить слова каждого человека на язык другого человека по очереди. Для микропроцессора это означает другую программу, написанную другим программистом на машинном языке, которая распознает шаблоны символов ASCII высокоуровневых команд, таких как Print (Печать), и может преобразовывать их в необходимые мелкие шаги, которые микропроцессор может напрямую понять.

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

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

Интерпретируются такие языки программирования, как BASIC и FORTH. Компилируются такие языки, как C, C ++, FORTRAN и PASCAL. Скомпилированные языки обычно считаются предпочтительными для профессиональных программистов из-за эффективности конечного продукта.

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

Разработка этих интерпретаторов и компиляторов является самым впечатляющим достижением:люди, которые создают эти программы, определенно зарабатывают себе на жизнь, особенно если учесть ту работу, которую они должны выполнять, чтобы поддерживать свой программный продукт в актуальном состоянии с быстро меняющимися моделями микропроцессоров, появляющимися на рынке. !

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

Это означает, что программы на машинном языке (также компиляторы), написанные для компьютеров 80386, будут работать на новейшем и лучшем процессоре Intel Pentium IV, но программы на машинном языке, написанные специально для использования преимуществ большего набора команд Pentium, не будут работать на 80386, потому что старый ЦП просто не имеет некоторых из этих инструкций в своем словаре:блок управления внутри 80386 не может их декодировать.

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

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

СВЯЗАННЫЙ РАБОЧИЙ ЛИСТ:


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

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