Logo GenDocs.ru

Поиск по сайту:  


Загрузка...

Лабораторная работа №1 - файл Отчет лаба 1.doc


Лабораторная работа №1
скачать (1356.8 kb.)

Доступные файлы (1):

Отчет лаба 1.doc2653kb.26.01.2009 17:45скачать

содержание
Загрузка...

Отчет лаба 1.doc

Реклама MarketGid:
Загрузка...




Лабораторная работа № 1. Функциональные блоки ЭВМ.

1. Представление чисел в машине

Цель. Убедиться, что внутреннее представление чисел в со­временном компьютере по-прежнему двоичное.

Листинг 1.1. Программа для проверки внутреннего представления чисел в компьютере

Program BinaryRepresentation1;

Var m, m0, i:Integer;

x,h: Real;

BEGIN

m0:=128;

For m:=m0-1 to m0+1 do

begin

h:=1/m;

x:=0;

For i:=1 to m do

x:=x+1;

WriteLn (m,' ' ,x-1);

end;

ReadLn;

END.

Результат выполнения программы:



Вывод: Проведенное рассмотрение убедительно подтверждает фундаментальный тезис о том, что внутреннее представление чисел по-прежнему составляет информационную основу любого современного компьютера.



^ 2. Двоичное представление чисел в памяти

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

Листинг 1.2. Программа для проверки хранения чисел в виде двоичного кода

Program BinaryRepresentation2;

Var i, m, b: Byte;

BEGIN

b:=65;

m:=$80; {bin = 1000 0000}

For i:=1 to 8 do

begin

if (mem[seg(b):ofs(b)] and m) = 0

then Write ('0')

else Write ('1');

m:= m shr 1

end;

WriteLn;

ReadLn;

END.

Результат выполнения программы:



Вывод: На основе полученного результата можно сделать вывод, что вся информация хранится и обрабатывается в компьютере в двоичном виде. Сама программа обработки информации также представляет собой двоичный код.

^ 3. Двоичное представление информации на диске

Цель. Убедиться, что данные в файлах представлены в дво­ичном виде. Проверить утверждение о принципиальной неразличимости двоичных кодов для разных видов информации.

Листинг 1.3. Программа проверки двоичного представления чисел на диске

Program BinaryRepresentation3;

Var i, m, b: Byte;

f: file of byte;

BEGIN

Assign(f, ‘proba.txt’);

Reset(f);

Read(f,b);

m:=$80; {bin = 1000 0000}

For i:=1 to 8 do

begin

if (b and m) = 0

then Write ('0')

else Write ('1');

m:= m shr 1

end;

WriteLn;

WriteLn(b);

Close(f);

END.

Результат выполнения программы:


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

^ 4. Может ли машина сама формировать себе программу?

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

Листинг 1.4. Программа, формирующая и выполняющая логическую команду.

Mov ax, 1234 Поместить 1234 в регистр Ах

Mov bx, F0F0 Поместить F0F0 в регистр Bх

Mov cx, D821 Поместить D821 в регистр Cх

Mov [10D], cx Скопировать Сх в в ячейку 10D




Проверка:



Если заменить содержимое регистра сх на D809, то:

Листинг 1.5. Программа, формирующая и выполняющая логическую команду.

Mov ax, 1234 Поместить 1234 в регистр Ах

Mov bx, F0F0 Поместить F0F0 в регистр Bх

Mov cx, D809 Поместить D809 в регистр Cх

Mov [10D], cx Скопировать Сх в в ячейку 10D


Вывод: Из результатов проведенного эксперимента следует, что машина способна внести внутрь своей программы некоторую команду и затем исполнить ее. Продемонстрирована универсальность двоичного кода и показано, что невозможно по виду кода установить – является ли он программой или данными.

^ 5. Можно ли обойтись без умножения?

Цель: Доказать, что умножение для компьютера не является обязательной операцией, поскольку в двоичной системе его можно реализовать в виде программы из более простых операций.

Листинг 1.6. Программа, реализующая двоичное умножение целых чисел

Program Multiplication;

Var f, b, c: integer;
BEGIN

Write (’a=’); Readln(a);

Write (’b=’);

Readln(b);

S:=0;

While b<>0 do

begin

if (b and 1) = 1

then s:=s + a;

a:=a shl 1

b:=b shr 1

end;

WriteLn(‘a*b=’, s);

END.


Рисунок 1.1. Блок – схема.
Результат выполнения программы:

Вывод: умножение для компьютера не является обязательной операцией, поскольку в двоичной системе его можно реализовать в виде программы из более простых операций – сложения в сочетании с другими простыми действиями, такими как, например, сравнение, логическое НЕ (инвертирование) и сдвиг.


Скачать файл (1356.8 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации
Рейтинг@Mail.ru