Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум по ассемблеру.pdf
Скачиваний:
68
Добавлен:
12.03.2016
Размер:
1.15 Mб
Скачать

КАК И ГДЕ ПРОГРАММА ХРАНИТ КОД И ДАННЫЕ

Виды памяти

Вообще видов памяти можно придумать множество, но тех, которыми ЦПУ может распоряжаться непосредственно, всего три:

1)Оперативная память (ОЗУ). Находится вне ЦПУ, т.е. на отдельной плате. Обладает большим объёмом (единицы

– десятки гигабайт), но относительно невысоким быстродействием. Как правило, имеет структуру линейного массива, номера ячеек, в котором, называются адресами. К ОЗУ можно обращаться непосредственно процессорными инструкциями, указывая адрес ячейки в памяти.

2)КЭШ память. Как правило, расположена на том же кристалле, что и ЦПУ. Имеет, приблизительно, в 1000 - 10000 раз меньший объём, но в 10 - 20 раз большее быстродействие. В каждый момент времени хранит копии тех участки ОЗУ, с которыми ЦПУ, в настоящий момент работает. Управляется автоматически, контроллером памяти ЦПУ. При помощи процессорных инструкций управлять непосредственно КЭШ памятью нельзя.

3)Регистры. Не только расположены на том же кристалле, но и являются частью архитектуры процессора. Обладают самым большим быстродействием. Считать или записать значение в регистр процессор может за один такт. Но регистров относительно мало, суммарный объём регистровой памяти в современных процессорах не превышает нескольких килобайт (включая векторные и служебные регистры). Регистры могут программироваться явно, соответствующими процессорными инструкциями. Так же для выполнения большинства операций процессору нужно, что бы хотя бы один из операндов был предварительно загружен в регистры.

Далее мы будем рассматривать только два из трёх указанных выше видов памяти: ОЗУ и регистры.

ОЗУ

Способы адресации

Несмотря на то, что ОЗУ представляет собой линейный массив, существует несколько способов её адресации. В основном, их наличие связано с необходимостью выделять определённые участки общей памяти для конкретных целей: машинного кода, данных, стека и т.д.

Сегменты

При сегментной адресации вся память разбита на сегменты размером по 64 килобайта. Сегменты расположены не ровно друг за другом, а могут накладываться. То есть существуют ячейки памяти, принадлежащие сразу нескольким сегментам.

Страницы

Способ организации памяти, при котором единицей отображения виртуальных адресов на физические является регион постоянного размера (т. н. страница). Типичный размер страницы - 4096 байт, для некоторых архитектур - до

128 КБ.

Регистры

Регистры общего назначения (РОН)

Регистры данных

Для хранения промежуточных результатов вычислений в процессорах x86 программисту доступно лишь 4 регистра: AX, BX, CX, DX. Все регистры имеют размер по 2 байта. Так же каждый регистр имеет псевдонимы для обращения только к младшему или только к старшему байту:

x8

AL, AH

BL, BH

CL, CH

DL, DH