Найти тему
REVERSE

Reverse engineering. Основы работы с компьютером part II

Компьютерные программы

Компьютерные программы это наборы инструкций. Программы получает какие то входные данные (input) а затем производят вычисления и возвращают результат работы в виде вывода (output) на экран или консоль.

Более сложная программа будет иметь множество этих простых программ "внутри". Они называются функциями. Функции, как и программы, принимают входные значения и возвращают результат своей работы. Например, мы могли бы сделать нашу предыдущую программу функцией, которая делает то же самое. Это может выглядеть так:

-2

Мы могли бы также сделать другую функцию, которая выполняет аналогичную операцию. Например, мы могли бы написать функцию для уменьшения числа на 1:

-3

Эти две функции (сложение и вычитание) затем могут быть использованы для создания более сложной программы. Эта новая программа будет принимать число и либо увеличивать, либо уменьшать его. Потребуется два действия.

  1. Ввести число (input)
  2. Выполнить операцию, в данном случае сложение (+) или вычитание(-)

Эта новая программа будет длиннее и будет иметь два различных способа выполнения. Они будут объяснены после кода:

-4

Этот код имеет две функции в верхней части. Как мы уже обсуждали, они принимают входные данные, а затем либо добавляют, либо вычитают 1 из входных данных (input) , чтобы получить результат на вывод (output). Операция "cmp" сравнивает два значения. В нашем случае она сравнивает тип операции, полученный в качестве входных данных "operation", и значение, закодированное в программе, " - ". Если эти значения равны, мы переходим в другую секцию кода, проще говоря делаем прыжок на метку subtract_number: если операнды operation и "-" будут равны "je = jump if equal"(прыгнуть на метку если равны операторы).

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

Продолжение следует...