- •Содержание:
- •Кэш-память
- •Архитектура кэш-памяти
- •Кэш-память с прямым отображением
- •Полностью ассоциативная архитектура
- •Наборно-ассоциативная архитектура
- •Гарвардская и Принстонская архитектуры
- •Размеры кэш-памяти
- •Методы записи
- •Обновление информации
- •Кэш в процессорах с умножением частоты
- •Разработка приложения.
- •Техническое задание.
- •Интерфейс программы.
- •Алгоритм приложения.
- •Исходный текст программы.
- •Описание программы.
Разработка приложения.
Техническое задание.
Разработать приложение, визуализирующее механизм работы с CASH-памятью. Программа должна быть написана на языке программирования Delphi.
Интерфейс программы.
Основная форма приложения в оконном режиме, без возможности изменения размеров.
В верхней части расположена таблица визуализирующие адреса в памяти.
В нижней части расположены панельки визуализирующие работы Cash с прямым доступом, с полностью ассоциативным доступом и наборно-ассоциативным доступом.
В нижней части находиться кнопка для очистки CASH-а.
Алгоритм приложения.
При запуске программы происходит инициализация программы:
Заполняется таблица адресов по порядку;
Очищаются таблицы содержащие CASH.
Программа переходит в режим ожидания событий:
Событие TFTable.TableSGClick (нажатие на таблицу адресов)
Считывается строка и столбец таблицы, считывается значение из ячейки по столбцу и строке, выводятся адрес в битовой форме в нижней части, для каждой из архитектуре согласно алгоритму заполняется таблицы и отображаются значения в таблицах CASH-а.
Все пустые строки помечаются фоном белым, занятые желтым, старые адреса помечаются черным шрифтом, новые синим, также мигание старого и нового тэга. Если адрес попадает в уже существующую строку, то цвет фона зеленый, если происходит чтение новой строки на место старой фон красный.
Событие Button1 Click – очистка таблиц КЭШ.
Обнуляем все значения в таблицах CASH.
Исходный текст программы.
unit TableU;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, StdCtrls, ExtCtrls;
type
TFTable = class(TForm)
TableSG: TStringGrid;
PCashForv: TPanel;
PCashAsociat: TPanel;
PCashAsocNabor: TPanel;
SGForv: TStringGrid;
SGAsoc: TStringGrid;
Timer1: TTimer;
SGAsNab: TStringGrid;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Shape1: TShape;
Shape2: TShape;
Shape3: TShape;
Shape4: TShape;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
Label24: TLabel;
Label25: TLabel;
Label26: TLabel;
Label27: TLabel;
Label28: TLabel;
Label29: TLabel;
Label30: TLabel;
Label31: TLabel;
Label32: TLabel;
Label33: TLabel;
Label34: TLabel;
Label35: TLabel;
Label36: TLabel;
Label37: TLabel;
Label38: TLabel;
Label39: TLabel;
Label40: TLabel;
Label41: TLabel;
Label42: TLabel;
Label43: TLabel;
Label44: TLabel;
Label45: TLabel;
Label46: TLabel;
Label47: TLabel;
Label48: TLabel;
Label49: TLabel;
Label50: TLabel;
LabelForv: TLabel;
LabelAs: TLabel;
LabelAsNab: TLabel;
Shape5: TShape;
Shape6: TShape;
Shape7: TShape;
Label51: TLabel;
Label52: TLabel;
Label53: TLabel;
Label54: TLabel;
Shape8: TShape;
Shape9: TShape;
Label55: TLabel;
Label56: TLabel;
Shape10: TShape;
Shape11: TShape;
Shape12: TShape;
Label57: TLabel;
Label58: TLabel;
Label59: TLabel;
Label60: TLabel;
Label61: TLabel;
Label62: TLabel;
Label63: TLabel;
Label64: TLabel;
Label65: TLabel;
Label66: TLabel;
Label67: TLabel;
Label68: TLabel;
Label69: TLabel;
Label70: TLabel;
Label71: TLabel;
Label72: TLabel;
Label73: TLabel;
Label74: TLabel;
Label75: TLabel;
Label76: TLabel;
Label77: TLabel;
Label78: TLabel;
Label79: TLabel;
Label80: TLabel;
Label81: TLabel;
Label82: TLabel;
Label83: TLabel;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure TableSGMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure TableSGClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FTable: TFTable;
Column,Row,CColumn,CRow, T: Longint;
AsNabTime, ForvTime, AsocTime : array [0..7] of integer;
Forv, Asoc : array [0..7 , 0..7] of boolean;
AsNab : array [0..7, 0..3, 0..1] of boolean;
ForvTEGArray, AsocTEGArray, AsNabTEGArray : array [0..7] of integer;
Time : integer;
ForvT, AsocT, AsNabT, ForvRow, AssocRow, ForvColumn, AssocColumn, AsNabRow, AsNabNabor, AsNabColumn: byte;
implementation
{$R *.DFM}
function dectobinF (Dec: integer):string;
var i,temp:integer;
strtemp : string [1];
str1, hex: string;
begin
temp := Dec;
i := 1;
For i := 1 to 5 do
begin
str1 := inttostr (temp mod 2) + str1;
temp := temp div 2;
end;
dectobinF := str1;
end;
function dectobinA (Dec: integer):string;
var i,temp:integer;
strtemp : string [1];
str1, hex: string;
begin
temp := Dec;
i := 1;
For i := 1 to 8 do
begin
str1 := inttostr (temp mod 2) + str1;
temp := temp div 2;
end;
dectobinA := str1;
end;
function dectobinAN (Dec: integer):string;
var i,temp:integer;
strtemp : string [1];
str1, hex: string;
begin
temp := Dec;
i := 1;
For i := 1 to 6 do
begin
str1 := inttostr (temp mod 2) + str1;
temp := temp div 2;
end;
dectobinAN := str1;
end;
function dectobin (Dec: integer):string;
var i,temp:integer;
strtemp : string [1];
str1, hex: string;
begin
temp := Dec;
i := 1;
For i := 1 to 11 do
begin
str1 := inttostr (temp mod 2) + str1;
temp := temp div 2;
end;
dectobin := str1;
end;
procedure TFTable.FormCreate(Sender: TObject);
var i,j,k :byte;
begin
for j := 0 to TableSG.RowCount do
for i := 0 to TableSG.ColCount do
TableSG.Cells[i,j] := inttohex ((j + i*TableSG.RowCount),3);
for i := 1 to 7 do
for j := 0 to 7 do
begin
SgForv.Cells[i,j] := '';
SGAsoc.Cells [i, j] := '';
SGAsNab.Cells [i, j] := '';
end;
For i:= 0 to 7 do
For j:= 0 to 7 do
begin
Forv[i,j] := false;
Asoc[i,j] := false;
end;
For i := 0 to 7 do
For j := 0 to 3 do
For k := 0 to 1 do
AsNab [i,j,k] := False;
for i := 0 to 7 do
begin
AsNabTime [i] := 0;
ForvTime [i] := 0;
AsocTime [i] := 0;
ForvTEGArray [i] := 0;
AsocTEGArray [i] := 0;
AsNabTEGArray [i] := 0;
end;
Label60.Color := ClWhite;
Label61.Color := ClWhite;
Label62.Color := ClWhite;
Label63.Color := ClWhite;
Label64.Color := ClWhite;
Label65.Color := ClWhite;
Label66.Color := ClWhite;
Label67.Color := ClWhite;
Label68.Color := ClWhite;
Label69.Color := ClWhite;
Label70.Color := ClWhite;
Label71.Color := ClWhite;
Label72.Color := ClWhite;
Label73.Color := ClWhite;
Label74.Color := ClWhite;
Label75.Color := ClWhite;
Label76.Color := ClWhite;
Label77.Color := ClWhite;
Label78.Color := ClWhite;
Label79.Color := ClWhite;
Label80.Color := ClWhite;
Label81.Color := ClWhite;
Label82.Color := ClWhite;
Label83.Color := ClWhite;
Label60.font.Color := ClBlack;
Label61.font.Color := ClBlack;
Label62.font.Color := ClBlack;
Label63.font.Color := ClBlack;
Label64.font.Color := ClBlack;
Label65.font.Color := ClBlack;
Label66.font.Color := ClBlack;
Label67.font.Color := ClBlack;
Label68.font.Color := ClBlack;
Label69.font.Color := ClBlack;
Label70.font.Color := ClBlack;
Label71.font.Color := ClBlack;
Label72.font.Color := ClBlack;
Label73.font.Color := ClBlack;
Label74.font.Color := ClBlack;
Label75.font.Color := ClBlack;
Label76.font.Color := ClBlack;
Label77.font.Color := ClBlack;
Label78.font.Color := ClBlack;
Label79.font.Color := ClBlack;
Label80.font.Color := ClBlack;
Label81.font.Color := ClBlack;
Label82.font.Color := ClBlack;
Label83.font.Color := ClBlack;
Label60.caption := dectobinF (0);
Label61.caption := dectobinF (0);
Label62.caption := dectobinF (0);
Label63.caption := dectobinF (0);
Label64.caption := dectobinF (0);
Label65.caption := dectobinF (0);
Label66.caption := dectobinF (0);
Label67.caption := dectobinF (0);
Label68.caption := dectobinA (0);
Label69.caption := dectobinA (0);
Label70.caption := dectobinA (0);
Label71.caption := dectobinA (0);
Label72.caption := dectobinA (0);
Label73.caption := dectobinA (0);
Label74.caption := dectobinA (0);
Label75.caption := dectobinA (0);
Label76.caption := dectobinAN (0);
Label77.caption := dectobinAN (0);
Label78.caption := dectobinAN (0);
Label79.caption := dectobinAN (0);
Label80.caption := dectobinAN (0);
Label81.caption := dectobinAN (0);
Label82.caption := dectobinAN (0);
Label83.caption := dectobinAN (0);
ForvT := 0;
AsocT := 0;
AsNabT := 0;
Time := 0;
T := 0;
end;
procedure TFTable.TableSGMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
TableSG.MouseToCell(X, Y, Column, Row);
end;
procedure TFTable.TableSGClick(Sender: TObject);
var
Adres,ForvTEG, AssocTEG, AsNabTeg, min, vrem : integer;
i,j,k, ForvTemp, AsocTemp : byte;
flag : boolean;
begin
Time := Time +1;
Adres := Row + Column * 32;
LabelForv.Caption := dectobin (Adres);
LabelAs.Caption := dectobin (Adres);
LabelAsNab.Caption := dectobin (Adres);
// Для Cash с прямым отображением
ForvColumn := Adres mod 8;
ForvRow := (Adres div 8) mod 8;
ForvTEG := (Adres div 8) div 8;
If ForvTime [0] = 0 Then Label60.Color := ClWhite
Else Label60.Color := ClYellow;
If ForvTime [1] = 0 Then Label61.Color := ClWhite
Else Label61.Color := ClYellow;
If ForvTime [2] = 0 Then Label62.Color := ClWhite
Else Label62.Color := ClYellow;
If ForvTime [3] = 0 Then Label63.Color := ClWhite
Else Label63.Color := ClYellow;
If ForvTime [4] = 0 Then Label64.Color := ClWhite
Else Label64.Color := ClYellow;
If ForvTime [5] = 0 Then Label65.Color := ClWhite
Else Label65.Color := ClYellow;
If ForvTime [6] = 0 Then Label66.Color := ClWhite
Else Label66.Color := ClYellow;
If ForvTime [7] = 0 Then Label67.Color := ClWhite
Else Label67.Color := ClYellow;
If ForvTEGArray [ForvRow] <> ForvTEG
Then
begin
ForvT := ForvTEGArray [ForvRow];
ForvTEGArray [ForvRow] := ForvTEG;
ForvTime [ForvRow] := Time;
for i := 0 to 7 do
Forv [i, ForvRow] := false;
Forv [ForvColumn, ForvRow] := true;
case ForvRow of
0 : Label60.Color := ClRed;
1 : Label61.Color := ClRed;
2 : Label62.Color := ClRed;
3 : Label63.Color := ClRed;
4 : Label64.Color := ClRed;
5 : Label65.Color := ClRed;
6 : Label66.Color := ClRed;
7 : Label67.Color := ClRed;
end;
end
Else
begin
ForvT := ForvTEG;
Forv [ForvColumn, ForvRow] := true;
ForvTime [ForvRow] := Time;
case ForvRow of
0 : Label60.Color := ClGreen;
1 : Label61.Color := ClGreen;
2 : Label62.Color := ClGreen;
3 : Label63.Color := ClGreen;
4 : Label64.Color := ClGreen;
5 : Label65.Color := ClGreen;
6 : Label66.Color := ClGreen;
7 : Label67.Color := ClGreen;
end;
end;
If ForvRow = 0 Then Label60.Font.Color := clblue
Else Label60.Font.Color := clblack;
If ForvRow = 1 Then Label61.Font.Color := clblue
Else Label61.Font.Color := clblack;
If ForvRow = 2 Then Label62.Font.Color := clblue
Else Label62.Font.Color := clblack;
If ForvRow = 3 Then Label63.Font.Color := clblue
Else Label63.Font.Color := clblack;
If ForvRow = 4 Then Label64.Font.Color := clblue
Else Label64.Font.Color := clblack;
If ForvRow = 5 Then Label65.Font.Color := clblue
Else Label65.Font.Color := clblack;
If ForvRow = 6 Then Label66.Font.Color := clblue
Else Label66.Font.Color := clblack;
If ForvRow = 7 Then Label67.Font.Color := clblue
Else Label67.Font.Color := clblack;
Label60.Caption := dectobinF (ForvTEGArray [0]);
Label61.Caption := dectobinF (ForvTEGArray [1]);
Label62.Caption := dectobinF (ForvTEGArray [2]);
Label63.Caption := dectobinF (ForvTEGArray [3]);
Label64.Caption := dectobinF (ForvTEGArray [4]);
Label65.Caption := dectobinF (ForvTEGArray [5]);
Label66.Caption := dectobinF (ForvTEGArray [6]);
Label67.Caption := dectobinF (ForvTEGArray [7]);
For i := 0 to 7 do
for j := 0 to 7 do
if Forv [i,j] Then SGForv.Cells [i,j] := 'X'
Else SGForv.Cells [i,j] := '';
// Для Асоциативного КЕШ
AssocColumn := Adres mod 8;
AssocTEG := Adres div 8;
If AsocTime [0] = 0 Then Label68.Color := ClWhite
Else Label68.Color := ClYellow;
If AsocTime [1] = 0 Then Label69.Color := ClWhite
Else Label69.Color := ClYellow;
If AsocTime [2] = 0 Then Label70.Color := ClWhite
Else Label70.Color := ClYellow;
If AsocTime [3] = 0 Then Label71.Color := ClWhite
Else Label71.Color := ClYellow;
If AsocTime [4] = 0 Then Label72.Color := ClWhite
Else Label72.Color := ClYellow;
If AsocTime [5] = 0 Then Label73.Color := ClWhite
Else Label73.Color := ClYellow;
If AsocTime [6] = 0 Then Label74.Color := ClWhite
Else Label74.Color := ClYellow;
If AsocTime [7] = 0 Then Label75.Color := ClWhite
Else Label75.Color := ClYellow;
min := AsocTime [0];
AssocRow := 0;
For i := 1 to 7 do
if AsocTime [i] < AsocTime [AssocRow] Then
begin
min := AsocTime [i];
AssocRow := i;
end;
flag := false;
For i:= 0 to 7 do
if AsocTEGArray [i] = AssocTEG
Then
Begin
AssocRow := i;
flag := true;
end;
if flag Then
begin
case AssocRow of
0 : Label68.Color := ClGreen;
1 : Label69.Color := ClGreen;
2 : Label70.Color := ClGreen;
3 : Label71.Color := ClGreen;
4 : Label72.Color := ClGreen;
5 : Label73.Color := ClGreen;
6 : Label74.Color := ClGreen;
7 : Label75.Color := ClGreen;
end;
end
Else
begin
for j := 0 to 7 do Asoc [j, AssocRow] := false;
case AssocRow of
0 : Label68.Color := ClRed;
1 : Label69.Color := ClRed;
2 : Label70.Color := ClRed;
3 : Label71.Color := ClRed;
4 : Label72.Color := ClRed;
5 : Label73.Color := ClRed;
6 : Label74.Color := ClRed;
7 : Label75.Color := ClRed;
end;
end;
AsocT := AsocTEGArray [AssocRow];
AsocTEGArray [AssocRow] := AssocTEG;
Asoc [AssocColumn, AssocRow] := true;
AsocTime [AssocRow] := Time;
If AssocRow = 0 Then Label68.Font.Color := clblue
Else Label68.Font.Color := clblack;
If AssocRow = 1 Then Label69.Font.Color := clblue
Else Label69.Font.Color := clblack;
If AssocRow = 2 Then Label70.Font.Color := clblue
Else Label70.Font.Color := clblack;
If AssocRow = 3 Then Label71.Font.Color := clblue
Else Label71.Font.Color := clblack;
If AssocRow = 4 Then Label72.Font.Color := clblue
Else Label72.Font.Color := clblack;
If AssocRow = 5 Then Label73.Font.Color := clblue
Else Label73.Font.Color := clblack;
If AssocRow = 6 Then Label74.Font.Color := clblue
Else Label74.Font.Color := clblack;
If AssocRow = 7 Then Label75.Font.Color := clblue
Else Label75.Font.Color := clblack;
Label68.Caption := dectobinA (AsocTEGArray [0]);
Label69.Caption := dectobinA (AsocTEGArray [1]);
Label70.Caption := dectobinA (AsocTEGArray [2]);
Label71.Caption := dectobinA (AsocTEGArray [3]);
Label72.Caption := dectobinA (AsocTEGArray [4]);
Label73.Caption := dectobinA (AsocTEGArray [5]);
Label74.Caption := dectobinA (AsocTEGArray [6]);
Label75.Caption := dectobinA (AsocTEGArray [7]);
For i := 0 to 7 do
for j := 0 to 7 do
if Asoc [i,j] Then SGAsoc.Cells [i,j] := 'X'
Else SGAsoc.Cells [i,j] := '';
// Для Ассоциативно-наборного КЕШ
AsNabColumn := Adres mod 8;
AsNabNabor := (adres div 8) mod 4;
AsNabTeg := (adres div 8) div 4;
If AsNabTime [0] = 0 Then Label76.color := ClWhite
Else Label76.Color := ClYellow;
If AsNabTime [1] = 0 Then Label77.Color := ClWhite
Else Label77.Color := ClYellow;
If AsNabTime [2] = 0 Then Label78.Color := ClWhite
Else Label78.Color := ClYellow;
If AsNabTime [3] = 0 Then Label79.Color := ClWhite
Else Label79.Color := ClYellow;
If AsNabTime [4] = 0 Then Label80.Color := ClWhite
Else Label80.Color := ClYellow;
If AsNabTime [5] = 0 Then Label81.Color := ClWhite
Else Label81.Color := ClYellow;
If AsNabTime [6] = 0 Then Label82.Color := ClWhite
Else Label82.Color := ClYellow;
If AsNabTime [7] = 0 Then Label83.Color := ClWhite
Else Label83.Color := ClYellow;
AsNabRow := 0;
min := AsNabTime [AsNabNabor*2];
For i := 0 to 1 do
if AsNabTime [AsNabNabor*2 + i] < min
Then
begin
AsNabRow := i;
min := AsNabTime [AsNabNabor*2 + i];
end;
flag := false;
For i := 0 to 1 do
if AsNabTEGArray [AsNabNabor*2 + i] = AsNabTeg
Then
begin
AsNabRow := i;
flag := true;
end;
if flag Then
case (AsNabNabor*2 + AsNabRow) of
0 : Label76.Color := ClGreen;
1 : Label77.Color := ClGreen;
2 : Label78.Color := ClGreen;
3 : Label79.Color := ClGreen;
4 : Label80.Color := ClGreen;
5 : Label81.Color := ClGreen;
6 : Label82.Color := ClGreen;
7 : Label83.Color := ClGreen;
end
Else
begin
for j := 0 to 7 do AsNab [j, AsNabNabor, AsNabRow] := false;
case (AsNabNabor*2 + AsNabRow) of
0 : Label76.Color := ClRed;
1 : Label77.Color := ClRed;
2 : Label78.Color := ClRed;
3 : Label79.Color := ClRed;
4 : Label80.Color := ClRed;
5 : Label81.Color := ClRed;
6 : Label82.Color := ClRed;
7 : Label83.Color := ClRed;
end;
end;
AsNabT := AsNabTEGArray [AsNabNabor*2 + AsNabRow];
AsNabTEGArray [AsNabNabor*2 + AsNabRow] := AsNabTeg;
AsNab [AsNabColumn, AsNabNabor, AsNabRow] := true;
AsNabTime [AsNabNabor*2 + AsNabRow] := Time;
If (AsNabNabor*2 + AsNabRow) = 0 Then Label76.Font.Color := clblue
Else Label76.Font.Color := clblack;
if (AsNabNabor*2 + AsNabRow) = 1 Then Label77.Font.Color := clblue
Else Label77.Font.Color := clblack;
If (AsNabNabor*2 + AsNabRow) = 2 Then Label78.Font.Color := clblue
Else Label78.Font.Color := clblack;
If (AsNabNabor*2 + AsNabRow) = 3 Then Label79.Font.Color := clblue
Else Label79.Font.Color := clblack;
If (AsNabNabor*2 + AsNabRow) = 4 Then Label80.Font.Color := clblue
Else Label80.Font.Color := clblack;
If (AsNabNabor*2 + AsNabRow) = 5 Then Label81.Font.Color := clblue
Else Label81.Font.Color := clblack;
If (AsNabNabor*2 + AsNabRow) = 6 Then Label82.Font.Color := clblue
Else Label82.Font.Color := clblack;
If (AsNabNabor*2 + AsNabRow) = 7 Then Label83.Font.Color := clblue
Else Label83.Font.Color := clblack;
For i := 0 to 7 do
for j := 0 to 3 do
for k := 0 to 1 do
if AsNab [i,j,k] Then SGAsNab.Cells [i,j*2+k] := 'X'
Else SGAsNab.Cells [i,j*2+k] := '';
Label76.Caption := dectobinAN (AsNabTEGArray [0]);
Label77.Caption := dectobinAN (AsNabTEGArray [1]);
Label78.Caption := dectobinAN (AsNabTEGArray [2]);
Label79.Caption := dectobinAN (AsNabTEGArray [3]);
Label80.Caption := dectobinAN (AsNabTEGArray [4]);
Label81.Caption := dectobinAN (AsNabTEGArray [5]);
Label82.Caption := dectobinAN (AsNabTEGArray [6]);
Label83.Caption := dectobinAN (AsNabTEGArray [7]);
timer1.Enabled := true;
end;
procedure TFTable.Timer1Timer(Sender: TObject);
begin
if (T mod 2) = 0 then
begin
case ForvRow of
0 : Label60.Caption := dectobinF (ForvT);
2 : Label62.Caption := dectobinF (ForvT);
3 : Label63.Caption := dectobinF (ForvT);
4 : Label64.Caption := dectobinF (ForvT);
5 : Label65.Caption := dectobinF (ForvT);
6 : Label66.Caption := dectobinF (ForvT);
7 : Label67.Caption := dectobinF (ForvT);
end;
case AssocRow of
0 : Label68.Caption := dectobinA (AsocT);
1 : Label69.Caption := dectobinA (AsocT);
2 : Label70.Caption := dectobinA (AsocT);
3 : Label71.Caption := dectobinA (AsocT);
4 : Label72.Caption := dectobinA (AsocT);
5 : Label73.Caption := dectobinA (AsocT);
6 : Label74.Caption := dectobinA (AsocT);
7 : Label75.Caption := dectobinA (AsocT);
end;
case (AsNabNabor*2 + AsNabRow) of
0 : Label76.Caption := dectobinAN (AsNabT);
1 : Label77.Caption := dectobinAN (AsNabT);
2 : Label78.Caption := dectobinAN (AsNabT);
3 : Label79.Caption := dectobinAN (AsNabT);
4 : Label80.Caption := dectobinAN (AsNabT);
5 : Label81.Caption := dectobinAN (AsNabT);
6 : Label82.Caption := dectobinAN (AsNabT);
7 : Label83.Caption := dectobinAN (AsNabT);
end;
end
else
begin
case ForvRow of
0 : Label60.Caption := dectobinF (ForvTEGArray [ForvRow]);
1 : Label61.Caption := dectobinF (ForvTEGArray [ForvRow]);
2 : Label62.Caption := dectobinF (ForvTEGArray [ForvRow]);
3 : Label63.Caption := dectobinF (ForvTEGArray [ForvRow]);
4 : Label64.Caption := dectobinF (ForvTEGArray [ForvRow]);
5 : Label65.Caption := dectobinF (ForvTEGArray [ForvRow]);
6 : Label66.Caption := dectobinF (ForvTEGArray [ForvRow]);
7 : Label67.Caption := dectobinF (ForvTEGArray [ForvRow]);
end;
case AssocRow of
0 : Label68.Caption := dectobinA (AsocTEGArray [AssocRow]);
1 : Label69.Caption := dectobinA (AsocTEGArray [AssocRow]);
2 : Label70.Caption := dectobinA (AsocTEGArray [AssocRow]);
3 : Label71.Caption := dectobinA (AsocTEGArray [AssocRow]);
4 : Label72.Caption := dectobinA (AsocTEGArray [AssocRow]);
5 : Label73.Caption := dectobinA (AsocTEGArray [AssocRow]);
6 : Label74.Caption := dectobinA (AsocTEGArray [AssocRow]);
7 : Label75.Caption := dectobinA (AsocTEGArray [AssocRow]);
end;
case (AsNabNabor*2 + AsNabRow) of
0 : Label76.Caption := dectobinAN (AsNabTEGArray [AsNabNabor*2 + AsNabRow]);
1 : Label77.Caption := dectobinAN (AsNabTEGArray [AsNabNabor*2 + AsNabRow]);
2 : Label78.Caption := dectobinAN (AsNabTEGArray [AsNabNabor*2 + AsNabRow]);
3 : Label79.Caption := dectobinAN (AsNabTEGArray [AsNabNabor*2 + AsNabRow]);
4 : Label80.Caption := dectobinAN (AsNabTEGArray [AsNabNabor*2 + AsNabRow]);
5 : Label81.Caption := dectobinAN (AsNabTEGArray [AsNabNabor*2 + AsNabRow]);
6 : Label82.Caption := dectobinAN (AsNabTEGArray [AsNabNabor*2 + AsNabRow]);
7 : Label83.Caption := dectobinAN (AsNabTEGArray [AsNabNabor*2 + AsNabRow]);
end;
end;
T := T + 1 ;
end;
end.