КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Память ПК, сегментная адресация, динамическая память
Вопросы для проверки знаний. 1. Найти с учетом приоритетов операций значения арифметических выражений: а) 30/6 div 2; б) 28 mod 12-24/3; в) 65 div 12/3. 2. Какие логические операции есть в языке Паскаль? 3. Найти значения логических условий: а)NOT (5 <= 3) AND (2 <= 2); б)V1 OR V2 AND NOT (V1) при V1=false; V2= true. 4. Как найти в языке Паскаль значение обратной тригонометрической функции: а) arcsin(x), если известно, что yгол x лежит на сегменте [p;1,5p]? б) arccos(x), если известно, что yгол x лежит на сегменте [0,5p;p]? В современных языках программирования, а также вычислительных системах в качестве минимальной адресуемой единицы памяти (ячейки) принят 1 байт (8 бит). Каждая ячейка памяти должна иметь свой уникальный адрес, который используется для работы с ней. Адреса - это целые числа, представленные в компьютере в двоичной системе. Они начинаются с нуля для первой ячейки и возрастают для каждой последующей ячейки на 1. Максимально возможный адрес зависит от того, сколько бит (двоичных разрядов) отведено в компьютере под его запись. В случае, если двоичная длина адресов в компьютере составляет N бит, на них можно записать 2 N различных адресов (от 0 до 2 N -1). Поскольку адреса являются целыми числами, компьютер может использовать для работы с ними обычные арифметические операции. Очевидно, для расширения возможностей работы ПК желательно иметь потенциальную возможность работы с большими объемами памяти. Из-за того, что двоичная длина адреса N в компьютере фиксирована, а для работы с адресами используются процессоры другой разрядности, то для задания адресов используют специальные приемы. IBM/PC использует для адресации памяти возможности микропроцессора 8086, в котором адреса имеют длину N =20 бит, следовательно, процессор позволяет адресовать участок памяти размером 220 байт = 1024 К = 1 Мбайт. Его называют стандартной памятью ПК (у компьютеров с процессорами 80386 и выше адресное пространство составляет 4 Гбайт, однако в Паскале нет средств для поддержания работы с такой расширенной памятью). Поскольку основная часть арифметических операций микропроцессора 8086 рассчитана на действия с 16-разрядными числами, то МП 8086 позволяет программе одновременно работать с четырьмя различными сегментами: 1) кодовым (содержит машинные команды программы), 2) данных (хранится информация), 3) стека, 4) вспомогательный, используемый для хранения вспомогательных данных, который также называют динамической памятью. Для работы с данными 4 сегментами МП 8086 имеет четыре 16-битовых сегментных регистра (один на каждый сегмент) с именами CS, DS, SS и ES. Полный адрес в МП 8086 состоит из двух 16-битовых значений: адреса сегмента и смещения. Допустим, адрес сегмента данных (содержимое регистра DS) равен 2F84 (в шестнадцатеричной системе счисления), а смещение равно 0532. Необходимо найти фактический адрес. Вычисление его выполняется следующим образом: значение сегментного регистра сдвигается влево на 4 бита (что эквивалентно умножению числа на 10002 или 1016), а затем оно складывается с величиной смещения. Полученное 20-битовое значение и есть фактический адрес данных: Участок памяти величиной 16 байт называется параграфом, поэтому говорят, что сегмент всегда начинается на границе параграфа, поэтому можно сказать, что сегмент адресует память с точностью до параграфа, а смещение -- с точностью до байта. Каждому сегменту соответствует непрерывная и отдельно адресуемая область памяти. Стандартная запись адреса имеет форму сегмент:смещение; например, в рассмотренном примере адрес можно записать как 2F84:0532. Сегментную разбивку адресного пространства задачи может производить как программист, так и среда программирования. Размещением сегментов в оперативной памяти управляет операционная система. Динамическая память в Паскале рассматривается как сплошной массив байтов, который называется кучей (англ. - хип). Физически хип располагается в старших адресах памяти сразу за областью памяти, которую занимает тело программы. Динамические переменные создаются в хипе во время выполнения программы. С помощью этих переменных можно обрабатывать данные, объем которых до начала выполнения программы заранее не известен. Память под них выделяется блоками, которые связываются друг с другом. Такой способ хранения данных называется динамическими структурами. Обращение к динамическим данным осуществляется через указатели. Это переменные специального вида, предназначенные для хранения адресов областей памяти. В указателе можно хранить адрес данных или программного кода. Указатель, как любой адрес байта памяти, по своей внутренней структуре представляет собой совокупность двух слов (данных типа word), трактуемых как сегмент и смещение.
Дата добавления: 2014-01-06; Просмотров: 430; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |