Ь З Л О Л
П Р О Г Р А М М Ы
В н еза п а м я т н ы е в р ем ен а,
ко г д а ко м п ь ю т е р п р ед с т а в -
лял с об ой ко л о н н ы ш каф о в ,
з а н и м а ю щ и е о гр о м н ую п л о -
щ ад ь,
а в м ест о м о н и т о р а
был р я д л а м п
,
с и гн ал и зи р у -
ю щ и х о вы полнении з а д а ч и ,
з а пул ьт ом т а к о й м а ш и н ы
сидел о п е р а т о р . Е м у не р а з
п р и хо д и л ось х о д и т ь о т о д -
ного ш к а ф а к другом у ( к о -
т о р ы й п о з а к о н у М е р ф и н а -
ходил ся очень д а л е ко ) и п е -
р е к л ю ч а т ь в н и х к а к и е т о
р ы ч а ги , ч т о бы ло н е о б х о д и -
м о для дальнейш его п р о д о л -
ж е н и я
р а б о т ы
м а ш и н ы .
Э т о был чел о в ек со с п е ц и -
альны м о б р а зо в а н и е м ,
с п е -
ц иал ист , ч у т ь л и не п р о ф ес -
сор ф и з и к о -м а т е м а т и ч е с -
к и х
н а у к ,
к о т о р ы й
з н а л
к а ж д ы й
б о л т и к,
к а ж д ы й
п р о в о д о к, к а ж д у ю л а м п о ч -
ку, к а ж д у ю дет аль в э т о й
ч у д е с н о й ,
с т р а ш н о
и н т е -
р е с н о й м а ш и н е .
В
то время компьютеры р а б о -
тали очень м едл ен н о (3 0 -4 0
тысяч операций в секунду), а па-
мять исчислялась в килобайтах.
Тогда это бы ло величайш им д о с -
тиж ением компьютерных техн о-
логий.
О п ер атор за д а в а л
п р о -
грамму м аш ине и с н етер пением
ж дал результатов, а стр ем л ен и е
к сов ер ш ен ств у не д ав ал о ем у
покоя дням и и ночами. Он лом ал
с е б е голову над тем как с о с т а -
вить алгоритм програм м ы так,
чтобы м аш ина выполняла туже
задачу, но с наименьш ими затра-
команда сравнения двух операндов
10000000 00111110 00001100 00000001
00010110
тами врем ени и р е -
сурсов.
В
н а ст о я щ е е ж е
в р ем я
т ен д ен ц и я
развития эл ек тр он -
но-вы числительной
техники
п ри вела к
том у,
что ком пью -
тер п ом ещ ается во
внутреннем карм а-
не пиджака, п р и м е-
няется во в сех с ф е -
рах
д ея т ел ь н о ст и ,
д о с т у п е н
в се м
и
к аж дом у
и
он
по
преж н ем у вы полня-
ет
задан н ы й
ем у
алгоритм п р огр ам -
мы. Только теп ер ь
п рограм м ы
пиш ут
н е только п р огр ам -
м исты
и з
крупных
к ор п ор ац и й ,
но
и
ш кольники,
студенты , т е ж е п р о ф ессо р ы и
д а ж е дом охозяй к и .
Давайте
разберёмся,
что
же такое алгоритм програм-
мы, что там такое пишут, и
С е й ч а с м ы
к л ю ч и к и к
п р о г р а м м к е
п о д б е р е м !
самое интересное, что и как
в них "
в
код операции сравнения
адрес операнда
команда безусловного перехода
11101011 11110111
код операц.
адрес назначения перехода
команда условного перехода, если равно
01110100 00000010
код операц.
адрес назначения перехода
команда условного перехода, если не равно
01110101
00000010
код операц
адрес назначения перехода
с е мы зн а ем , что у компью -
тер а есть “с е р д ц е ”, эт о его
п р о ц е с с о р ,
а такж е он
и м ее т
“м о зги ”, эт о его память. Эти д в е
вещ и очень т есн о связаны м еж -
д у с о б о й . П р о ц ессо р считы вает
из памяти код программы и вы-
полняет его. Д ругим и сл овам и ,
он
вы полняет задан н ы й
а л г о -
ритм программы .
Алгоритм програм-
мы
-
эт о
п о с л е д о в а -
тел ьн ость инструкций,
которы е вы полняет п ро-
ц ессо р . В осн овн ом эти
инструкции
назы ваю т
кодом программы . В есь
эт о т
к о д
п р о ц е с с о р
п он и м а ет в так н а зы -
в а ем о й д в ои ч н ой с и с -
т е м е сч и сл ен и я - ноль
и ед и н и ц а .
Вот, наприм ер, число-
непосредст. значен.
Рис. 1
вые значения некоторых команд
со в р ем ен н ы х п р о ц е с с о р о в с е -
м ейства х86 как фирмы Intel, так
и совм естим ы х с ними и здели й в
двоичном ви де
(см. рис.1):
1000000000111110000011о
0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 0 - двои ч -
ный код маш инной команды, эк-
вивалентной а ссем б л ер н о й
СМР
byte ptr [01 ОСИ], 16И.
Эта ко-
м анда сравнивает два числа, о д -
но число находится в памяти по
а д р есу 268, втор ое число 22 ука-
за н о н еп осредствен н о;
1 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 - ком ан-
д а б езусл ов н ого п ер ех о д а
JMP
SHORT
на 7 байт назад;
0 1 1 1 0 1 0 0 0 0 0 0 0 0 1 0 - ком ан-
д а условного п ер еход а
JE
на 2
байта вп ер ёд, есл и равно;
0 1 1 1 0 1 0 1 0 0 0 0 0 0 1 0 - ком ан-
д а усл овного п ер ех о д а
JNE
на
2 байта вп ер ёд, есл и не равно.
О братите внимание на п осл ед -
ние д в е команды, они отличаются
всего одной циф рой, но разитель-
но отличаются дей стви ем . О тсю-
д а вывод, что достаточно д и за с -
сем блировать исполняемый файл
программы, внимательно изучить
полученный исходны й е ё код и
предыдущая страница 39 Компьютер 2013 11-12 читать онлайн следующая страница 41 Компьютер 2013 11-12 читать онлайн Домой Выключить/включить текст