Студопедия

КАТЕГОРИИ:


Архитектура-(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 байтов образуют ячейки. Адрес ячейки равен адресу младшего байта, входящего в нее (байта с меньшим номером).

 

 

Схематически структуру памяти учебного компьютера можно представить так:

 

Адреса ячеек Байты
         
         
      0A 0B
0C 0C 0D 0E 0F
         
         
..        
F8 F8 F9 FA FB
FC FC FD FE FF

Рис.1

 

Адреса ячеек меняются с шагом 4. Первая ячейка имеет адрес 00, последняя - FC. Адреса представляются двузначными шестнадцатеричными числами, что соответствует восьмизначным двоичным числам. Следовательно, при хранении адреса в памяти он занимает 1 байт (8 бит).

Всего в памяти 64 ячейки (256/4). В ячейке может храниться либо число, либо команда программы.

Разрядность адреса (длина адресного кода) равна 8 бит, поэтому размер адресного пространства равен 28=256 байт.

Учебный компьютер (УК) работает только с целыми числами.

 

Согласно принципу Неймана - принципу хранимой в памяти программы, наряду с данными в оперативную память компьютера помещается программа управления его работой (у процессоров гарвардской архитектуры память для хранения команд и данных разделена). Способ представления программы "понятный" процессору ЭВМ называется языком машинных команд – ЯМК. Программа на ЯМК реализует алгоритм решения вычислительной задачи на компьютере-исполнителе.

 

Машинная команда должна содержать в себе ответы на следующие вопросы:

  • какую операцию выполнить?
  • где находятся операнды?
  • куда поместить результат операции?
  • какую команду выполнять следующей?

 

Пусть машинные команды имеют трехадресную структуру (формат). Это значит, что ячейка, в которой храниться команда, делится на 4 части (по одному байту на каждую часть). Будем их обозначать следующим образом: КОП - код операции, А1 - адрес первого операнда, А2 - адрес второго операнда, А3 - адрес результата.

 

КОП А1 А2 А3

Операндами называют данные, с которыми производится операция. В арифметических операциях это слагаемые, сомножители, уменьшаемое и вычитаемое, делимое и делитель.

 

Вот пример команды сложения двух чисел:

 

КОП А1 А2 А3
     

 

где 01 - это код операции сложения;
  44 – адрес ячейки, в которой хранится первое слагаемое;
  48 - адрес ячейки, в которой хранится второе слагаемое;
  4С - адрес ячейки, в которую помещается результат (сумма).

 

Для всех арифметических операций ответ на вопрос: "Какую команду выполнять следующей?" всегда одинаковый - следующей выполняется команда, находящаяся в следующей ячейке.

Записывать команды будем в шестнадцатеричной форме. В памяти ЭВМ команда имеет двоичный вид. Используя связь между двоичной и шестнадцатеричной системами, легко получить внутреннее представление приведенной команды.

 

КОП А1 А2 А3
0000 0001 0100 0100 0100 1000 0100 1100

 

В табл.1 содержится система команд нашего УК.

Запись (A1) + (A2) ==> A3 надо понимать так: содержимое ячейки с адресом A1 сложить с содержимым ячейки с адресом A2 и результат записать в ячейку A3; (A1) ==> A3 - содержимое ячейки A1 занести (скопировать) в ячейку A3.

 

Таблица 1.

КОП Операция Пояснение
  Пересылка (A1) ==> A3
  Сложение (A1) + (A2) ==> A3
  Вычитание (A1) - (A2) ==> A3
  Умножение (A1) x (A2) ==> A3
  Деление нацело (A1) div (A2) ==> A3 целая часть от деления
  Получение остатка от деления нацело (A1)mod(A2)==>A3 остаток от деления нацело
  Останов Прекращение выполнения программы
FF Пустая команда При выполнении пропускается

 

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

 

Пусть, например, требуется вычислить выражение (А + B) x C.

Под величины А, В, С выделим ячейки памяти с адресами:

 

А В С
     

 

Результат вычисления выражения поместим в ячейку 2С.

 

Адрес КОП А1 А2 А3 Пояснение
0C       2C (20) + (24) ==> 2C A+B
10   2C   2C (2C) x (28) => 2C (A+B) x C

 

 

В графе "Адрес" указываются номера ячеек, в которых располагаются команды. Команды этой программы выполняются в "естественном порядке" возрастания адресов: сначала , затем 10.

Ячейке значение присваивается дважды: сначала результат суммирования, затем - умножения. Первый результат - промежуточный, второй - окончательный.

Эта программа не может быть исполнена. Во-первых, не определены значения исходных данных А, В, С. Во-вторых, пользователь не сможет узнать результаты вычислений, поскольку они останутся внутри памяти, в ячейке , а в нее не заглянешь.

Исходные данные задаются вводом.

Ввод - это занесение данных в оперативную память через устройства ввода.Пусть устройством ввода является клавиатура.

Результаты вычислений должны быть выведены - это отражение информации из оперативной памяти на устройствах вывода. (дисплей).

Договоримся о следующем способе организации ввода-вывода. С клавиатурой и дисплеем связана последняя ячейка памяти - ячейка FC. Будем называть ее буферной ячейкой ввода-вывода.

При вводе набираемое на клавиатуре значение попадает в ячейку FC. На дисплее постоянно отражается содержимое ячейки FC в шестнадцатеричном виде. Поэтому для вывода значения из любой ячейки памяти его надо переслать в буферную ячейку FC.

Ячейка FC выполняет роль своеобразной видеопамяти. На индикаторе пользователь всегда видит содержимое ячейки FC.

 

Структура команды пересылки следующая:

  А1 - - А3

Эта команда, фактически, двухадресная. Содержимое второго адреса (А2) не влияет на ее исполнение (в дальнейшем на месте второго адреса будем писать нули). В результате выполнения команды пересылки значение в ячейке А3 становится равным (А1). При этом значение в ячейке А1 не меняется. Иначе это называется так: ячейке А3 присваивается значение ячейки А1.

Поясним на примере. Пусть в 10-й ячейке находится число 5, а в 20-й ячейке число 7:

 

  A1 A3
адрес    
содержимое    

После выполнения команды 00 10 00 20 их значения станут одинаковыми

 

  A1 A3
адрес    
содержимое    

 

 

Вернемся к нашей программе. На дисплей нужно вывести результат вычислений, полученный в ячейке . Для этого его следует присвоить ячейке FC. Значит, команда вывода будет такой:

Ввод значения А в ячейку 20:

<== предыдущая лекция | следующая лекция ==>
Лазерний метод спостереження | Лекция 1. Основные элементы языка программирования Си
Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 354; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.035 сек.