comp(pz) (Взаимодействие основных частей ЭВМ при выполнении программы), страница 2
Описание файла
Документ из архива "Взаимодействие основных частей ЭВМ при выполнении программы", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "comp(pz)"
Текст 2 страницы из документа "comp(pz)"
КР. 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)
end; {Page_4_3}
{-------------------}
procedure Page_4_4;
begin
SetViewPort(X, Y, GetMaxX - X, YS - 10, ClipOn);
SetColor(TxtCol);
MyText(0, 48, '- АЛУ выполняет эту операцию (сложение) над двумя ' +
'операндами и возвращает');
MyText(0, 56, ' результат в ОЗУ.');
SetViewPort(0, 0, GetMaxX, GetMaxY, ClipOn)
end; {Page_4_4}
{-------------------}
procedure Page_4_5;
begin
SetViewPort(X, Y, GetMaxX - X, YS - 10, ClipOn);
SetColor(TxtCol);
MyText(0, 64, '- УУ собщает ОЗУ третий адрес (адрес результата),');
SetViewPort(0, 0, GetMaxX, GetMaxY, ClipOn)
end; {Page_4_5}
{-------------------}
procedure Page_4_6;
begin
SetViewPort(X, Y, GetMaxX - X, YS - 10, ClipOn);
SetColor(TxtCol);
MyText(0, 72, '- ОЗУ помещает полученный результат в ячейку памяти.');
SetViewPort(0, 0, GetMaxX, GetMaxY, ClipOn)
end; {Page_4_6}
{-------------------}
procedure Page_4_7;
begin
SetViewPort(X, Y, GetMaxX - X, YS - 10, ClipOn);
SetColor(TxtCol);
MyText(0, 80, 'На этом выполнение первой машинной команды ' +
'заканчивается, происходит');
КР. 991096.00.00.00 ПЗ | Лист | |||||
——– | ||||||
Изм. | Лист | № докум. | Подп. | Дата | 10 |
MyText(0, 88, 'переход к следующей по порядку машинной команде. ' +
'Содержимое ячейки ОЗУ с');
MyText(0, 96, 'адресом, следующим за стартовым, пересылается в УУ ' +
'и все повторяется.');
SetViewPort(0, 0, GetMaxX, GetMaxY, ClipOn)
end; {Page_4_6}
{-------------------}
{+------------------+}
{ }
{ Процедуры анимации }
{ }
{+------------------+}
procedure Move_1;
begin
BLink(150, 285, 'kurs.exe');
end; {Move_1}
{-------------------}
procedure Move_2;
begin
SetColor(Green);
Animation(150, 285, -125, 2, ' █ █', True)
end; {Move_2}
{-------------------}
procedure Move_3;
begin
SetColor(GetBkColor);
SetColor(Green);
Animation(100, 168, -70, 1, ' 1 2 +', True)
end; {Move_3}
{-------------------}
procedure Move_4_1;
begin
SetColor(GetBkColor);
OutTextXY(30, 176, ' 1 2');
SetColor(Green);
Animation(47, 198, 63, 1, ' 1 2', False);
SetColor(GetBkColor);
OutTextXY(150, 168, ' █ █');
SetColor(Green);
OutTextXY(150, 168, ' a b')
end; {Move_4_1}
{-------------------}
procedure Move_4_2;
begin
SetColor(Green);
Animation(150, 160, -95, 2, ' a b', True)
end; {Move_4_2}
{-------------------}
procedure Move_4_3;
begin
setcolor(getbkcolor);
OutTextXY(30, 176, ' +');
SetColor(Green);
Animation(52, 160, -94, 2, '+', False)
end; {Move_4_3}
{-------------------}
procedure Move_4_4;
КР. 991096.00.00.00 ПЗ | Лист | |||||
——– | ||||||
Изм. | Лист | № докум. | Подп. | Дата | 11 |
begin
SetColor(Green);
Animation(52, 66, 115, 1, '+', True);
OutTextXY(183, 73, '=c')
end; {Move_4_4}
{-------------------}
procedure Move_4_5;
begin
SetColor(GetBkColor);
SetColor(Green);
Animation(47, 198, 63, 1, '3', False);
end; {Move_4_1}
{-------------------}
procedure Move_4_6;
begin
SetColor(Green);
Animation(191, 66, 94, 2, 'c', True)
end; {Move_4_5}
{-------------------}
procedure Help; {Помощь}
const
XH: Integer = 70;
YH: Integer = 70;
begin
ClearDevice;
SetColor(BRDCol);
Rectangle(0, 0, GetMaxX, GetMaxY);
SetColor(LightCyan);
SetTextJustify(1, 0);
OutTextXY(GetMaxX div 2, YH + 10,'Помощь:');
SetTextJustify(0, 0);
OutTextXY(XH + 10, YH + 20,'Адрес :');
OutTextXY(XH + 10, YH + 30,'УУ :');
OutTextXY(XH + 10, YH + 40,'АЛУ :');
OutTextXY(XH + 10, YH + 50,'АЛУ+УУ :');
OutTextXY(XH + 10, YH + 60,'ВЗУ :');
OutTextXY(XH + 10, YH + 70,'ОЗУ :');
OutTextXY(XH + 10, YH + 80,'УВвода :');
OutTextXY(XH + 10, YH + 90,'УВывода:');
SetColor(Cyan);
OutTextXY(XH + 90, YH + 20,'номер ячейки памяти');
OutTextXY(XH + 90, YH + 30,'устройство управления');
OutTextXY(XH + 90, YH + 40,'арифметико-логическое устройство');
OutTextXY(XH + 90, YH + 50,'процессор');
OutTextXY(XH + 90, YH + 60,'внешнее запоминающее устройство (hdd, fdd и др.)');
OutTextXY(XH + 90, YH + 70,'оперативное запоминающее устройство');
OutTextXY(XH + 90, YH + 80,'устройство ввода');
OutTextXY(XH + 90, YH + 90,'устройство вывода');
_Pause
end; {Help}
{-------------------}
procedure MainWin;
begin
ClearDevice;
BildWin;
BildContext;
BildFuncKey
end; {MainWin}
{-------------------}
КР. 991096.00.00.00 ПЗ | Лист | |||||
——– | ||||||
Изм. | Лист | № докум. | Подп. | Дата | 12 |
procedure Play;
{-------------}
procedure SelectPage(N: Byte);
begin
case N of
1: begin
FuncKeyWindow[2].Put(XS, YS);
Page_1;
Move_1
end;
2: begin
FuncKeyWindow[1].Put(XS, YS);
Page_2;
Move_2
end;
3: begin
FuncKeyWindow[1].Put(XS, YS);
Page_3;
Move_3
end;
4: begin
FuncKeyWindow[3].Put(XS, YS);
Page_4_1;
Move_4_1;
Delay(Time_3 * 20);
Page_4_2;
Delay(Time_3 * 20);
Move_4_2;
Delay(Time_3 * 20);
Page_4_3;
Delay(Time_3 * 20);
Move_4_3;
Move_4_4;
Page_4_4;
Delay(Time_3 * 20);
Page_4_5;
Delay(Time_3 * 20);
Move_4_5;
Delay(Time_3 * 20);
Page_4_6;
Delay(Time_3 * 20);
Move_4_6;
Delay(Time_3 * 20);
Page_4_7
end
end
end; {SelectPage}
{-------------}
const
Back = #75;
Next = #77;
F1 = #59;
Esc = #27;
var
ArrowsAndEsc: set of Char;
ExtentedKey: Boolean;
Flag: Boolean;
CH: Char;
N: Byte;
begin
ClearDevice;
MainWin;
N := 0;
КР. 991096.00.00.00 ПЗ | Лист | |||||
——– | ||||||
Изм. | Лист | № докум. | Подп. | Дата | 13 |
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.