Рекурсия | страница 8



– Саша, ты хочешь сказать, что ты дизассемблировал ДНК?!

– Ишь ты, каких слов нахватался! – рассмеялся Александр. – Не зря ты со мною общаешься! Но ты пойми, дизассемблировать код можно, только зная систему команд процессора, для которого этот код написан и который этот код выполняет.

– Да, кстати, Саша, давно уже хотел тебя спросить, ты мне можешь на пальцах пояснить, что это за зверь такой – система команд процессора? А то, каждое в отдельности – вроде слова понятные, а вместе – что обозначают, понять не могу, – рассмеялся Юрий.

Александр на секунду задумался. Потом взял лист бумаги и карандаш, написал подряд последовательность из четырнадцати цифр – 76015018125003 и спросил:

– Юра, это может быть кодом?

– Наверное, – ответил Юра и шутя добавил. – На номер телефона это не похоже.

– Но если это код, то что он обозначает, можно только догадываться, правда?

Юра ничего не ответил, и молча продолжал слушать.

– Теперь представь, что это, действительно, программа, и существует устройство, для которого она написана – устройство со своей системой команд. Например, оно различает и умеет выполнять следующие четыре команды, – сказал Саша и написал под цифрами четыре строчки.

1) 76 – повернуться и стать лицом на север.

2) 01 – пройти вперёд столько шагов, сколько указывают следующие две цифры.

3) 18 – пройти направо столько шагов, сколько указывают следующие две цифры.

4) 50 – копать вниз на столько метров, сколько указано в двух следующих цифрах.

– Ну-ка, ну-ка, – заинтересовался Юра улыбаясь. – Дай я попробую… Так. Стать на север, пройти вперёд 50 метров, пройти направо 12 метров, копать вниз на глубину 3 метра! Как всё просто! – он весело засмеялся.

– Да, когда известна система команд, действительно всё просто. Ты знаешь, почему в своё время компьютеры «Макинтош» проиграли гонку компьютерам IBM? Одной из причин было то, что процессоры, которые использовала фирма Apple, имели закрытую архитектуру – никто не знал их системы команд, хотя они и были как минимум на порядок круче процессоров фирмы Intel. А без системы команд, любая программа – это абсолютно бессмысленный набор ноликов и единичек или в нашем случае набор из букв AGCT, и, Юра, я эту систему команд нашёл!

– Так, так, так… То есть ты хочешь сказать, что это изображение, есть результат работы твоей программы, на основе данных, которые содержит моя ДНК? Так вот почему ты тогда у меня её выпрашивал… Когда это было-то, два, три года назад? И главное, так и не признался, для чего. Но погоди, разве это возможно? Как ты получил изображение моей физиономии? Как ты это сделал?