Аналогичным образом выполняются и другие операции в устройствах вычислительной техники.
Рассмотрим разработку простейшего алгоритма, и его ввод в устройство вычислительной техники на языке этого устройства. Для примера возьмем функцию:
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 |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.