скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыРеферат: Взаимодействие основных частей ЭВМ при выполнении программы

    begin

      Line(X0 + 130 + 16 * I, Y0 + 120, X0 + 130 + 16 * I, Y0 + 200);

      Line(X0 + 130, Y0 + 120 + 16 * I, X0 + 210, Y0 + 120 + 16 * I)

    end;

   {CPU}

  SetColor(CPUCol);

  MoveTo(X0 + 83, Y0 + 203); {0}

  LineTo(X0 +  7, Y0 + 203); {1}

  LineTo(X0 +  7, Y0 + 117); {2}

  LineTo(X0 + 40, Y0 + 117); {3}

  LineTo(X0 + 40, Y0 + 45);  {4}

  LineTo(X0 + 127, Y0 + 45); {5}

  LineTo(X0 + 127, Y0 + 27); {6}

  LineTo(X0 + 213, Y0 + 27); {7}

  LineTo(X0 + 213, Y0 + 73); {8}

  LineTo(X0 + 127, Y0 + 73); {9}

  LineTo(X0 + 127, Y0 + 55); {10}

  LineTo(X0 + 50, Y0 + 55);  {11}

  LineTo(X0 + 50, Y0 + 117); {12}

  LineTo(X0 + 83, Y0 + 117); {12}

  LineTo(X0 + 83, Y0 + 203); {13}

  SetLineStyle(0, 0, 0);

   {Прямоугольники}

  SetColor(RTACol);

  Rectangle(X0 +  10, Y0 + 120, X0 +  80, Y0 + 200); {УУ(ЦУУ)}

  Rectangle(X0 +  55, Y0 + 120, X0 +  80, Y0 + 130); {КОП}

  Rectangle(X0 + 130, Y0 + 120, X0 + 210, Y0 + 200); {ОЗУ}

  Rectangle(X0 + 130, Y0 +  30, X0 + 210, Y0 + 70);  {АЛУ}

  Rectangle(X0 + 130, Y0 + 250, X0 + 210, Y0 + 290); {ВЗУ}

  Rectangle(X0 + 260, Y0 + 120, X0 + 360, Y0 + 150); {У.Ввода}

  Rectangle(X0 + 260, Y0 + 170, X0 + 360, Y0 + 200); {У.Вывода}

   {Подписи к прямоугольникам}

  SetColor(TxtCol);

КР. 991096.00.00.00 ПЗ Лист
——–

Изм.

Лист

№ докум.

Подп.

Дата

6
 


КР. 991096.00.00.00 ПЗ Лист
——–

Изм.

Лист

№ докум.

Подп

Дата

 

  SetTextJustify(2, 0);

  OutTextXY(X0 +  80, Y0 + 200, 'УУ(ЦУУ)');

  OutTextXY(X0 +  80, Y0 + 130, 'PC');

  OutTextXY(X0 + 210, Y0 + 200, 'ОЗУ');

  OutTextXY(X0 + 210, Y0 +  70, 'АЛУ');

  OutTextXY(X0 + 210, Y0 + 290, 'ВЗУ');

  OutTextXY(X0 + 360, Y0 + 150, 'У.Ввода');

  OutTextXY(X0 + 360, Y0 + 200, 'У.Вывода');

  SetTextJustify(0, 0);

   {Стрелки Big}

  SetColor(ARBCol);

  SetFillStyle(1, FILCol);

   {Вид стрелки}

  CArrow := BArrow;

  Arrow(X0 +  85, Y0 + 140, 40, 1); {ОЗУ - УУ(ЦУУ)}

  FloodFill(X0 +  90, Y0 + 140, ARBCol);

  Arrow(X0 + 150, Y0 +  75, 40, 3); {ОЗУ - АЛУ}

  FloodFill(X0 + 150, Y0 +  80, ARBCol);

  Arrow(X0 + 190, Y0 + 115, 40, 4); {АЛУ - ОЗУ}

  FloodFill(X0 + 190, Y0 + 110, ARBCol);

  Arrow(X0 + 150, Y0 + 205, 40, 3); {ВЗУ - ОЗУ}

  FloodFill(X0 + 150, Y0 + 210, ARBCol);

  Arrow(X0 + 190, Y0 + 245, 40, 4); {ОЗУ - ВЗУ}

  FloodFill(X0 + 190, Y0 + 240, ARBCol);

  Arrow(X0 + 215, Y0 + 135, 40, 1); {У.Ввода - ОЗУ}

  FloodFill(X0 + 220, Y0 + 135, ARBCol);

  Arrow(X0 + 255, Y0 + 185, 40, 2); {У.Вывода - ОЗУ}

  FloodFill(X0 + 250, Y0 + 185, ARBCol);

   {Стрелки Small}

  SetColor(ARSCol);

   {Вид стрелки}

  CArrow := SArrow;

  Arrow(X0 + 125, Y0 + 180, 40, 2); {УУ(ЦУУ) - ОЗУ}

  Arrow(X0 + 125, Y0 + 270, 80, 2); {УУ(ЦУУ) - ВЗУ}

  Arrow(X0 + 125, Y0 +  50, 80, 2); {УУ(ЦУУ) - АЛУ = КОП}

  Line(X0 + 45, Y0 + 115, X0 + 45, Y0 + 50);   {1}

  OutTextXY(X0 + 70, Y0 +  60, 'КОП');          {2}

   {УУ(ЦУУ) - У.Вводы, У.Вывода}

  Line(X0 +  45, Y0 + 205, X0 + 45,  Y0 + 295); {1}

  Line(X0 +  45, Y0 + 295, X0 + 380, Y0 + 295); {2}

  Line(X0 + 380, Y0 + 295, X0 + 380, Y0 + 135); {3}

  Arrow(X0 + 365, Y0 + 135, 15, 1); {in}        {4}

  Arrow(X0 + 365, Y0 + 185, 15, 1); {out}       {5}

   {Носики стрелок Small}

  SetColor(LightGreen);

  Arrow(X0 + 125, Y0 + 180, 0, 2); {1}

  Arrow(X0 + 125, Y0 + 270, 0, 2); {2}

  Arrow(X0 + 125, Y0 +  50, 0, 2); {3}

  Arrow(X0 + 365, Y0 + 135, 0, 1); {4}

  Arrow(X0 + 365, Y0 + 185, 0, 1); {5}

  SetColor(BRDCol);

  Rectangle(0, 0, GetMaxX, GetMaxY);

end; {BildWin}

{-------------------}

procedure BildContext;

const

  TxtCol: Word = LightBlue;

begin

  SetColor(BRDCol); {Устанавливаем цвет границы и рисуем ее}

  Rectangle(XC, YC, GetMaxX - X0, YC + 300);

  SetTextJustify(1, 1);

  SetColor(TxtCol + 1);  {Заголовок}

  OutTextXY(GetMaxX - (GetMaxX - X0 - XC) div 2 - X0, YC + 20, 'Обозначения ' +

                'на схеме:');

КР. 991096.00.00.00 ПЗ Лист
——–

Изм.

Лист

№ докум.

Подп.

Дата

7
 


  CArrow := BArrow;  {Стрелки}

  SetColor(ARBCol);

  SetFillStyle(1, Blue);

  Arrow(XC + 50, YC + 50, 40, 2);

  FloodFill(XC + 40, YC + 50, ARBCol);

  CArrow := SArrow;

  SetColor(ARSCol);

  Arrow(XC + 50, YC + 80, 40, 2);

  SetColor(LightGreen);

  Arrow(XC + 50, YC + 80, 0, 2);

  SetColor(MemCol);

  SetLineStyle(1, 0, 0);

  Line(XC + 10, YC + 110, XC + 34, YC + 110);

  Line(XC + 10, YC + 126, XC + 34, YC + 126);

  Line(XC + 14, YC + 106, XC + 14, YC + 128);

  Line(XC + 30, YC + 106, XC + 30, YC + 128);

  SetColor(CPUCol);

  Line(XC + 12, YC + 150, XC + 30, YC + 150);

  SetLineStyle(0, 0, 0);

  SetColor(TxtCol);

  SetTextJustify(0, 1); {Значения}

  OutTextXY(XC + 60, YC +  50, ' - Передача данных');

  OutTextXY(XC + 60, YC +  80, ' - Сигнал управления');

  OutTextXY(XC + 60, YC + 120, ' - Ячейка памяти');

  OutTextXY(XC + 60, YC + 150, ' - Данной линией');

  OutTextXY(XC + 60, YC + 160, '   обведены части');

  OutTextXY(XC + 60, YC + 170, '   входящие в состав');

  OutTextXY(XC + 60, YC + 180, '   процессора (ЦПУ)');

  OutTextXY(XC + 20, YC + 200, '█ - содержимое файла');

  OutTextXY(XC + 20, YC + 210, '1 - адрес первого операнда');

  OutTextXY(XC + 20, YC + 220, '2 - адрес второго операнда');

  OutTextXY(XC + 20, YC + 230, '3 - адрес результата');

  SetTextJustify(0, 0)

end; {Context}

{-------------------}

procedure BildFuncKey;

const

  StrFK: array [1..4] of string[11] =

           ('Помощь F1', 'Назад <-', 'Вперед ->', 'Выход Esc');

  FkbCol: Word = Green;

  TxtCol: Word = LightCyan;

begin

  SetColor(BRDCol);

  Rectangle(XS, YS, GetMaxX - XS, GetMaxY - XS);

  SetTextJustify(1, 1);

  SetFillStyle(1, DarkGray);

  for I := 1 to 4 do

    begin

      SetColor(FkbCol); {Установка цвета границы клавиш}

      Bar((GetMaxX - XS * 2) div 5 * I - Length(StrFK[I]) * 4, YS + 7,

          (GetMaxX - XS * 2) div 5 * I + Length(StrFK[I]) * 4, YS + 23);

      Rectangle((GetMaxX - XS * 2) div 5 * I - Length(StrFK[I]) * 4, YS + 7,

                (GetMaxX - XS * 2) div 5 * I + Length(StrFK[I]) * 4, YS + 23);

      SetColor(Black);  {Установка цвета текста клавиш}

      OutTextXY((GetMaxX - XS * 2) div 5 * I + 2, YS + 15 - 2, StrFK[I]);

      SetColor(TxtCol);

      OutTextXY((GetMaxX - XS * 2) div 5 * I, YS + 15, StrFK[I])

    end;

  SetTextJustify(0, 0);

   {Сахраняем картинки}

  FuncKeyWindow[1].Get(XS, YS, GetMaxX - XS, GetMaxY - XS);

  SetFillStyle(1, GetBkColor);

  Bar((GetMaxX - XS * 2) div 5 * 3 - Length(StrFK[I]) * 4, YS + 7,

      (GetMaxX - XS * 2) div 5 * 3 + Length(StrFK[I]) * 4, YS + 23);

КР. 991096.00.00.00 ПЗ Лист
——–

Изм.

Лист

№ докум.

Подп.

Дата

8
 


  FuncKeyWindow[3].Get(XS, YS, GetMaxX - XS, GetMaxY - XS);

  FuncKeyWindow[1].Put(XS, YS);

  Bar((GetMaxX - XS * 2) div 5 * 2 - Length(StrFK[I]) * 4, YS + 7,

      (GetMaxX - XS * 2) div 5 * 2 + Length(StrFK[I]) * 4, YS + 23);

  FuncKeyWindow[2].Get(XS, YS, GetMaxX - XS, GetMaxY - XS)

end; {FuncKey}

{-------------------}

{+----------------------------------------------+}

{                                                }

{ Процедуры вывода текстовой информации на экран }

{                                                }

{+----------------------------------------------+}

procedure Page_1;

begin

  SetViewPort(X, Y, GetMaxX - X, YS - 10, ClipOn);

  ClearViewPort;

  SetColor(Blue);

  OutTextXY(GetMaxX - X - 25, 100, '1');

  SetColor(TxtCol);

  MyText(0,  8, 'До начала работы программы, она находится на ВЗУ, ' +

                'в виде файла программы');

  MyText(0, 16, '(*.exe или *.com).');

  SetViewPort(0, 0, GetMaxX, GetMaxY, ClipOn)

end; {Page_1}

{-------------------}

procedure Page_2;

begin

  SetViewPort(X, Y, GetMaxX - X, YS - 10, ClipOn);

  ClearViewPort;

  SetColor(Blue);

  OutTextXY(GetMaxX - X - 25, 100, '2');

  SetColor(TxtCol);

  MyText(0,  8, 'После того как ЭВМ получила команду на запуск ' +

                'программы, содержимое');

  MyText(0, 16, 'этого файла помещается в ячейку ОЗУ, начиная с ' +

                'ячейки с некоторым');

  MyText(0, 24, 'стартовым адресом.');

  SetViewPort(0, 0, GetMaxX, GetMaxY, ClipOn)

end; {Page_2}

{-------------------}

procedure Page_3;

begin

  SetViewPort(X, Y, GetMaxX - X, YS - 10, ClipOn);

  ClearViewPort;

  SetColor(Blue);

  OutTextXY(GetMaxX - X - 25, 100, '3');

  SetColor(TxtCol);

  MyText(0,  8, 'Содержимое ячейки со стартовым адресом программы ' +

                ' (первая машинная команда)');

  MyText(0, 16, 'пересылается в УУ. УУ расшифровывает первую машинную ' +

                'команду и выробатывает');

  MyText(0, 24, 'соответствующие ей сигналы управления для всех систем управления.');

  SetViewPort(0, 0, GetMaxX, GetMaxY, ClipOn)

end; {Page_3}

{-------------------}

procedure Page_4_1;

begin

  SetViewPort(X, Y, GetMaxX - X, YS - 10, ClipOn);

  ClearViewPort;
КР. 991096.00.00.00 ПЗ Лист
——–

Изм.

Лист

№ докум.

Подп.

Дата

9
 

  SetColor(Blue);

  OutTextXY(GetMaxX - X - 25, 100, '4');

  SetColor(TxtCol);

  MyText(0,  8, 'Например: если первой машинной командой оказалась ' +

                'трех адресной командой');

  MyText(0, 16, 'сложения двух чисел, произойдут следующие действия:');

  MyText(0, 24, '- УУ посылает первый и второй адреса в ОЗУ');

  SetViewPort(0, 0, GetMaxX, GetMaxY, ClipOn)

end; {Page_4_1}

{-------------------}

procedure Page_4_2;

begin

  SetViewPort(X, Y, GetMaxX - X, YS - 10, ClipOn);

  SetColor(TxtCol);

  MyText(0, 32, '- ОЗУ пересылает содержимое ячеек с этими адресами в АЛУ,');

  SetViewPort(0, 0, GetMaxX, GetMaxY, ClipOn)

end; {Page_4_2}

{-------------------}

procedure Page_4_3;

begin

  SetViewPort(X, Y, GetMaxX - X, YS - 10, ClipOn);

  SetColor(TxtCol);

  MyText(0, 40, '- УУ отправляет сигнал управления (КОП) в АЛУ,');

  SetViewPort(0, 0, GetMaxX, GetMaxY, ClipOn)

Страницы: 1, 2, 3, 4


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.