Дилетант>Это апологеты рисков так говорят. Да нет, любой разработчик процессоров тебе такое скажет
Между прочим, доступ к памяти на шине данных, равной разрядности процессора, по определению не может быть быстрее, чем за один такт. Если ты взял данные из ячейки для косвенной адресации, то их ещё надо разобрать, преобразовать, доставить на адресные шины и ещё тратить такты на чтение... В итоге всё равно всё раскладывается на элементарные операции, которые итак бы можно было проделать без потери лишних тактов. А за счёт их бОльшей простоты можно бы было их ещё и распаралеливать.
>А как бы было на самом деле, сейчас уже никто не знает. Зато a=b+*(c[i++]) - одной командой! Люблю! За сколько тактов он делал эту команду? Что-то мне подсказывает, что число тактов было на десятки. А на пресловутом стареньком Pentium:
MOV EAX, [ESI] ; 1 такт
INC ESI ; 0 тактов - второй конвейер
MOV EAX, [EAX] ; 1 такт
ADD EAX, EBX ; 1 такт. Мог бы быть и 0 тактов, если б перед этим стояла команда, не использующая EAX.
Итого - 3 такта.
На тобой же упомянутом процессоре, скорее всего, минимальная команда (типа MOV REG,REG) занимала 4 такта - ИМХО, более быстрых
не RISC-процессоров нет.
… чтобы понять рекурсию, нужно сперва понять рекурсию …