Прежде чем переходить к дальнейшему изучению материала, необходимо рассмотреть ряд понятий.
Мы уже разобрались с байтом и его размером. Теперь рассмотрим другие существующие размерности:
- 1 килобайт = 1024 байт;
- 1 мегабайт = 1024 килобайт;
- 1 гигабайт = 1024 мегабайт.
Почему именно 1024? Это число 2 в 10-й степени. В компьютере большинство значений являются степенью числа 2, потому что компьютер оперирует двоичной системой, и таким образом можно максимально эффективно использовать его возможности.
Сегмент— это область внутренней (оперативной) памяти компьютера (внешняя память представлена накопителями на магнитных дисках и лентах). Раньше, когда операционные системы были 16-битными, процессор не мог работать с памятью размером более 64 килобайт, потому что это максимальный размер области памяти, который можно адресовать, используя в этих целях адрес длиной в два байта. Поэтому память делилась на сегменты по размеру и по назначению. На данный момент мы используем 32-разрядную ОС, которая может адресовать до 4 Гбайт оперативной памяти (длина адреса — 32 бита или 4 байта).
Поэтому можно сказать, что память стала сплошной. Однако деление ее по назначению все-таки осталось.
Существуют следующие сегменты памяти:
- сегмент кода — в эту область памяти загружается машинный код, который будет потом выполняться процессором;
- сегмент данных — это область памяти для хранения данных;
- сегмент стека — область памяти для хранения временных (локальных) данных и адресов возврата из процедур.
Каждой запущенной программе отводится свой сегмент кода, данных и стека. Поэтому данные одной программы не могут пересекаться с данными или кодом другой программы. Да, существуют методы взаимодействия между процессами (программами), но это отдельный случай.
Регистр — ячейка памяти в процессоре. Размер ячейки зависит от ее разрядности. В 32-разрядных процессорах ячейки 32-битные, но есть и 64-битные. Таких регистров у процессора несколько, и каждый из них предназначен для определенных целей. Существуют также регистры общего значения, которые программа может использовать на свое усмотрение.
На рис. 1.6 показан регистр еах. Полная его длина 32 бита, но младшая половина— это регистр АХ (16-битный вариант регистра). То есть если мы "попросим" процессор показать нам содержимое регистра АХ, то мы увидим половину регистра еах. Иногда это очень удобно, особенно когда требуется прочитать только половину числа из регистра.
Я думаю, что этого будет достаточно для понимания основ работы компьютера и программ. Если вы хотите узнать больше, то советую почитать спецификации Intel, которых можно найти великое множество на сайте