Компьютер состоит из центрального процессора, памяти и устройств ввода-вывода. Компьютер работает под управлением некоторой программы, которая предварительно загружается в память с помощью загрузчика, входящего в состав операционной системы. Программа обращается к содержимому других ячеек памяти и устройствам ввода-вывода для получения данных и сохранения результатов работы программы.
Память компьютера разбита на ячейки-байты (один байт содержит 8 бит), можно обращаться к ячейке по её адресу - номеру байта в памяти. В компьютерах с 32-битным процессором максимальный объем адресуемой памяти равен `2^32=4`ГиБ, а с 64-битным - `2^64`. Данные в памяти хранятся в нескольких последовательных байтах, например, для хранения целых чисел нужно 4 байта, а вещественных - 8 байт.
Центральный процессор извлекает очередную команду программы и все необходимые данные для ее исполнения из памяти, выполняет её и записывает при необходимости результаты обратно в память.
В центральном процессоре есть небольшое количество регистров (обычно от 4 до 32), которые предназначены
* для ускорения выполнения команд за счет уменьшения обращений к памяти за данными;
* для уменьшения сложности и размеров команд за счет того, что только один из операндов может быть адресом ячейки в памяти.
Форматы машинных команд:
![Форматы команд](11377.gif)
Регистр SP указывает на вершину стека (первую занятую ячейку). Cтек используется для сохранения значений регистров, например, при вызове подпрограммы адрес команды из регистра PC сохраняется в стеке и в PC записывается адрес вызванной подпрограммы, а возврат из подпрограммы заключается в загрузке вершины стека в регистр PC.