Это тебе нужно изучить архитектуру микроконтроллера. Несмотря на их великое множество, архитектура всех микроконтроллеров похожа.
Основные части микроконтроллера: АЛУ (арифметико-логичекое устройство), память и средства ввода/вывода (периферия).
АЛУ служит для выполнения логических операций с переменными. Память делится на програмную (куда записывается программа) и память общего пользования (для хранения переменных). Есть две различных архитектуры - гарвардская и Ньюмановская. Разница в том, что при одной архитектуре (при гарвардской) программная область и область данных - разделены (переменные не могут быть записаны в программную область) - эта архитектура в основном и используется в настоящее время, при другой архитектуре (ньюмановской) область данных и программная область совмещены.
Регистры - это специальные ячейки памяти, которые служат для определенных целей - операций с переменными, управления портами ввода/вывода и т.д. Микроконтроллер, например, не может выполнить логическую операцию между двумя переменными, зато он может выполнить операцию между переменной в регистре и другой переменной. Или чтобы сконфигурировать какое-либо ус-во ввода/вывода, загружаются нужные значения в отведенный регистр - например скорость передачи последовательного порта. Не все регистры могут быть записаны, некоторые могут быть только считаны и наоборот.
Флаги - это биты специального флагового регистра. Этот регистр служит для контроля программы. Существует несколько флагов, которые устанавливаются (в 1) или сбрасываются (в 0), при достижении микроконтроллером определенного состояния. Например, если результат последней операции 0, то устанавливается флаг 0. Этот флаг (бит флагового регистра) можно проверить и в зависимости от его значения задать разное поведение программы.
Эта тема довольно обширная, самое простое взять книжку по микроконтроллерам и почитать про их архитектуру.
|