- •Занятие 13. Организация и режимы работы памяти imb-совместимых пэвм.
- •Теоретическая часть
- •Байтовая адресация
- •Прямой и обратный порядок байтов
- •Расположение слов в памяти
- •Доступ к числам, символам и символьным строкам
- •Операции с памятью
- •Система прямого доступа к памяти
- •Режимы процессора
- •Реальный режим
- •Защищенный режим
- •Виртуальный реальный режим
Прямой и обратный порядок байтов
Существует два способа адресации байтов в словах:
-
в прямом порядке (а)
-
в обратном порядке (б)
Обратным порядком байтов (big-endian) называется система адресации, при которой байты адресуются слева направо, так что самый старший байт слова (расположенный с левого края) имеет наименьший адрес.
Прямым порядком байтов (little-endian) называется противоположная система адресации, при которой байты адресуются справа налево, так что наименьший адрес имеет самый младший байт слова (расположенный с правого края). Слова «старший» и «младший» определяют вес бита, то есть степень двойки, соответствующей данному биту, когда слово представляет число. В ПЭВМ на основе МП 80x86 используется прямой порядок, а в ПЭВМ на основе МП Motorola 68000 - обратный. В обеих этих системах адреса байтов 0,4, 8 и т. д. применяются в качестве адресов последовательных слов памяти в операциях чтения и записи слов.
Наряду с порядком байтов в слове важно также определить порядок битов в байте. Наиболее естественный порядок битов для кодирования числовых данных (непосредственно соответствующий их разрядам) - «слева направо»: b32,….,b1,b0. Однако существуют компьютеры, для которых характерен обратный порядок битов.
Расположение слов в памяти
В случае 32-разрядных слов их естественные границы располагаются по адресам 0,4,8 и т. д. При этом мы говорим, что слова выровнены по адресам в памяти. Если говорить в общем, слова считаются выровненными в памяти в том случае, если адрес начала каждого слова кратен количеству байтов в нем. По практическим причинам, связанным с манипулированием двоично-кодированными адресами, количество байтов в слове обычно является степенью двойки. Поэтому, если длина слова равна 16 бит (2 байтам), выровненные слова начинаются по байтовым адресам 0, 2, 4,..., а если она равна 64 бит (23 т.е. 8 байтам), то выровненные слова начинаются по байтовым адресам 0, 8, 16,....
Не существует причины, по которой слова не могли бы начинаться с произвольных адресов. Такие слова называются невыровненными. Как правило, слова выравниваются по адресам памяти, но иногда этот принцип нарушатся.
Доступ к числам, символам и символьным строкам
Обычно число занимает целое слово. Поэтому, для того чтобы обратиться к нему в памяти, нужно указать адрес слова, по которому оно, это число, хранится. Точно так же доступ к отдельно хранящемуся в памяти символу осуществляется по адресу его байта.
Во многих приложениях необходимо обрабатывать строки символов переменной длины. Для доступа к такой строке нужно указать адрес байта, в котором хранится ее первый символ. Последовательные символы строки содержатся в последовательных байтах. Существует два способа определения длины строки. Первый из них заключается в использовании специального управляющего символа, обозначающего конец строки и являющегося ее последним символом. Второй способ состоит в использовании отдельного слова памяти или регистра процессора, содержащего число, которое определяет длину строки в байтах.