КАТЕГОРИИ: Архитектура-(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) |
С 00 FC
Обобщенные технологии разработки приложений.Идеология объектно-ориентированного программирования породила CASE-технологии разработки и сборки программ на основе уже известных программных моделей, содержащих интерфейсы и прототипы (шаблоны — template) данных: COM(Component Object Model), STL(Standard Template Library), ATL(Active Template Library). Все эти новшества поддерживают визуальные среды разработки, например, такие известные, как Visual C++, Borland C++ Builder
Архитектура компьютера
Компьютер состоит из центрального процессора (ЦП) и памяти (рис. 1.1). Устройства ввода-вывода могут рассматриваться как частный случай памяти. Все компоненты компьютера обычно подсоединяются к общей шине. Физически шина — это набор разъемов, соединенных параллельно; логически шина — это спецификация сигналов, которые дают возможность компонентам обмениваться данными. Компьютеры могут иметь дополнительные прямые соединения между компонентами для повышения производительности (путем специализации интерфейса и расширения узких мест). С точки зрения программного обеспечения единственное различие состоит в скорости, с которой данные могут передаваться между компонентами. В ЦП находится набор регистров (специальных ячеек памяти), в которых выполняется вычисление. ЦП может выполнить любую хранящуюся в памяти команду. Элементарной единицей памяти всех современных компьютеров является байт, состоящий из восьми двоичных разрядов. Каждый байт имеет свой адрес. В наиболее распространенной 32-разрядной архитектуре адреса байтов изменяются от 0 до 232 - 1 с шагом 1. Память, с логической точки зрения, можно рассматривать как массив байтов: можно прочесть или записать байт с заданным адресом.
Однако физически при работе с памятью по шине передаются не отдельные байты, а машинные слова. В 32-разрядной архитектуре машинное слово — это четыре подряд идущих байта, при этом адрес младшего байта кратен четырем. (В 64-разрядной архитектуре машинное слово состоит из восьми байтов.)
Рассмотрим работу компьютера на простом примере.
Пусть оперативная память имеет размер 256 байт и делится на ячейки (машинные слова) размером 4 байта. Адреса байтов лежат в интервале от 0 до 255. Но это десятичные адреса. В компьютере они двоичные. 25510 в двоичной системе: 255 = 111111112. Диапазон адресов байтов от 0 до 111111112. В шестнадцатеричной системе - от 0 до FF (данная система счисления имеет следующий набор цифр: 0,1,2, …, 9, A, B, C, D, E, F). Группы из 4 байтов образуют ячейки. Адрес ячейки равен адресу младшего байта, входящего в нее (байта с меньшим номером).
Схематически структуру памяти учебного компьютера можно представить так:
Рис.1
Адреса ячеек меняются с шагом 4. Первая ячейка имеет адрес 00, последняя - FC. Адреса представляются двузначными шестнадцатеричными числами, что соответствует восьмизначным двоичным числам. Следовательно, при хранении адреса в памяти он занимает 1 байт (8 бит). Всего в памяти 64 ячейки (256/4). В ячейке может храниться либо число, либо команда программы. Разрядность адреса (длина адресного кода) равна 8 бит, поэтому размер адресного пространства равен 28=256 байт. Учебный компьютер (УК) работает только с целыми числами.
Согласно принципу Неймана - принципу хранимой в памяти программы, наряду с данными в оперативную память компьютера помещается программа управления его работой (у процессоров гарвардской архитектуры память для хранения команд и данных разделена). Способ представления программы "понятный" процессору ЭВМ называется языком машинных команд – ЯМК. Программа на ЯМК реализует алгоритм решения вычислительной задачи на компьютере-исполнителе.
Машинная команда должна содержать в себе ответы на следующие вопросы:
Пусть машинные команды имеют трехадресную структуру (формат). Это значит, что ячейка, в которой храниться команда, делится на 4 части (по одному байту на каждую часть). Будем их обозначать следующим образом: КОП - код операции, А1 - адрес первого операнда, А2 - адрес второго операнда, А3 - адрес результата.
Операндами называют данные, с которыми производится операция. В арифметических операциях это слагаемые, сомножители, уменьшаемое и вычитаемое, делимое и делитель.
Вот пример команды сложения двух чисел:
Для всех арифметических операций ответ на вопрос: "Какую команду выполнять следующей?" всегда одинаковый - следующей выполняется команда, находящаяся в следующей ячейке. Записывать команды будем в шестнадцатеричной форме. В памяти ЭВМ команда имеет двоичный вид. Используя связь между двоичной и шестнадцатеричной системами, легко получить внутреннее представление приведенной команды.
В табл.1 содержится система команд нашего УК. Запись (A1) + (A2) ==> A3 надо понимать так: содержимое ячейки с адресом A1 сложить с содержимым ячейки с адресом A2 и результат записать в ячейку A3; (A1) ==> A3 - содержимое ячейки A1 занести (скопировать) в ячейку A3.
Таблица 1.
Каждое число, участвующее в расчетах, занимает ячейку памяти. Программист должен сам распределять память под данные. Команды программы тоже занимают память.
Пусть, например, требуется вычислить выражение (А + B) x C. Под величины А, В, С выделим ячейки памяти с адресами:
Результат вычисления выражения поместим в ячейку 2С.
В графе "Адрес" указываются номера ячеек, в которых располагаются команды. Команды этой программы выполняются в "естественном порядке" возрастания адресов: сначала 0С, затем 10. Ячейке 2С значение присваивается дважды: сначала результат суммирования, затем - умножения. Первый результат - промежуточный, второй - окончательный. Эта программа не может быть исполнена. Во-первых, не определены значения исходных данных А, В, С. Во-вторых, пользователь не сможет узнать результаты вычислений, поскольку они останутся внутри памяти, в ячейке 2С, а в нее не заглянешь. Исходные данные задаются вводом. Ввод - это занесение данных в оперативную память через устройства ввода.Пусть устройством ввода является клавиатура. Результаты вычислений должны быть выведены - это отражение информации из оперативной памяти на устройствах вывода. (дисплей). Договоримся о следующем способе организации ввода-вывода. С клавиатурой и дисплеем связана последняя ячейка памяти - ячейка FC. Будем называть ее буферной ячейкой ввода-вывода. При вводе набираемое на клавиатуре значение попадает в ячейку FC. На дисплее постоянно отражается содержимое ячейки FC в шестнадцатеричном виде. Поэтому для вывода значения из любой ячейки памяти его надо переслать в буферную ячейку FC.
Ячейка FC выполняет роль своеобразной видеопамяти. На индикаторе пользователь всегда видит содержимое ячейки FC.
Структура команды пересылки следующая:
Эта команда, фактически, двухадресная. Содержимое второго адреса (А2) не влияет на ее исполнение (в дальнейшем на месте второго адреса будем писать нули). В результате выполнения команды пересылки значение в ячейке А3 становится равным (А1). При этом значение в ячейке А1 не меняется. Иначе это называется так: ячейке А3 присваивается значение ячейки А1. Поясним на примере. Пусть в 10-й ячейке находится число 5, а в 20-й ячейке число 7:
После выполнения команды 00 10 00 20 их значения станут одинаковыми
Вернемся к нашей программе. На дисплей нужно вывести результат вычислений, полученный в ячейке 2С. Для этого его следует присвоить ячейке FC. Значит, команда вывода будет такой: Ввод значения А в ячейку 20:
Дата добавления: 2014-01-11; Просмотров: 354; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |