Основы алгоритмизации и вычислений: Учебно-практическое пособие, страница 35

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

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

F=a2+b*(c+d)-e.

Сначала построим алгоритм решения этой задачи. Первым делом, определимся с алгоритмической системой, для этого, разберемся с исходными данными, в заданном выражении они имеют символическое значение a,b,c,d и e, а так же с результатами вычисления, которое имеет символическое значение F. Проанализируем средства и инструменты, которые мы можем использовать, одной из проблем, связанными с программированием в машинном коде, является то, что требуется решать задачу выполняя отдельно каждое действие, то есть инструментами у нас являются простейшие арифметические операции, такие как сложение, вычитание, умножение и деление, глядя на заданное выражение, можно сделать вывод, что для решения задачи этими средствами, нам понадобиться еще один объект, для хранения промежуточного результата, придадим ему символическое название g. Теперь строим, непосредственно алгоритм решения данной задачи, рисунок 32. Для восприятия человека, не имеет значения символическое название объекта, мы воспринимаем и анализируем его суть, в отличие от нас, устройства вычислительной техники понимают только цифры.

Исполнителем алгоритма, является устройство вычислительной техники, которое не понимает, что такое символическое название, оно понимает лишь адреса и цифры. Для них символическим названием объекта является номер его ячейки памяти. Для перевода алгоритма в машинный код, первым делом надо распределить символизированные объекты по адресам, то есть определить, в каком адресе будет храниться значение того лили иного объекта. Выделим под эти нужды ячейки памяти нашего гипотетического устройства вычислительной техники с 201 по 207 и распределим их там, таблица 18 распределение символизированных объектов в памяти устройства.

Таблица 18.

Адрес

Символическое имя

201

A

202

B

203

C

204

D

205

e

206

f

207

g

            Теперь рассмотрим этот алгоритм, переведенный на язык исполнителя, которым является наше гипотетическое устройство вычислительной техники, приведенный в таблице 19. Здесь следует учесть и то, что каждая команда(операция) так же располагается в памяти, как и данные, и поэтому должна иметь свой адрес. Отведем под коды операций адресное пространство начиная с 301 ячейки памяти.

Таблица 19.

Алгоритм вычисления функции в машинном коде

Адрес

Команда

Примечание

КОП

А1

А2

А3

301

01

201

000

000

Ввод значения объекта «a» в ячейку памяти с адресом 201

302

01

202

000

000

Ввод значения объекта «b» в ячейку памяти с адресом 202

303

01

203

000

000

Ввод значения объекта «c» в ячейку памяти с адресом 203

304

01

204

000

000

Ввод значения объекта «d» в ячейку памяти с адресом 204

305

01

205

000

000

Ввод значения объекта «e» в ячейку памяти с адресом 205

306

04

201

201

206

F=a*a

307

02

203

204

207

G=c+d

308

04

207

202

207

G=g*b

309

02

206

207

206

F=f+g

310

03

206

205

206

F=f-e

311

06

206

000

000

Вывод результата вычисления «а» из ячейки памяти с адресом 206