2012-06-29 2 views
3

Вот цитата из книги «Введение в ассемблере» о РНЦ (против CISC)RISC против стека CISC

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

Я очень смущен магией с работой без стека. Любая стандартная программа имеет цепную вызовы: Main() -> FUNCTION1() -> Function2() -> ... ->

Даже с большим количеством регистров (128) путь обычно:

  1. решить, какие регистры следует принимать и сохранять их контекст (обычно толкая на стеке)
  2. обеспечивают операции
  3. возвращение регистров состояния (обычно выскакивающие из стека)

Никто не останавливает нас, чтобы использовать регистрационный параметр, проходящий в CISC, особенно на современных процессорах. Итак, как можно сделать программу с RISC без стека?

+0

цитата вы предоставили только упоминает процедуры написания процедур без использования стека, а не целые программы. Но если ваша программа достаточно проста, вы пишете в сборке, и у вас достаточно регистров, тогда вы можете вручную назначить регистр каждой переменной и параметру. Вероятно, вы все равно в конечном итоге используете стек для обратного адреса любых jsrs/calls/isrs и т. Д. – tinman

ответ

5

Я думаю, что они имеют в виду аргумент передачи. В большинстве машин RISC аргументы передаются в регистры, и для этой цели обычно зарезервировано 6-8 регистров (и одно для возвращаемого значения). Это не является обязательным, это просто соглашение (и оно называется ABI или двоичным интерфейсом приложения). Итак, если аргументов меньше, чем регистров, и эти аргументы достаточно просты, чтобы вписаться в регистр, вам не нужно дополнительное пространство стека для передачи этих аргументов. На машинах CISC для аргументов не так много регистров, поэтому ABI указывает, что эти аргументы передаются в стек.

Кроме того, в RISC-машинах доступно много временных регистров (в частности, спальных) для хранения локальных переменных. На машинах CISC локальные переменные обычно выделяются в стеке, и регистры обычно зарезервированы для промежуточных значений.

-1

RISC

  1. НЕТ инструкции являются менее
  2. Длина инструкции фиксируется
  3. Он использует команду загрузки/сохранения.
  4. Пример: ARM7, ARM9.
  5. Нет цикл, необходимый для выполнения программы более , например, если мы хотим, чтобы продукт 2 нет, то мы не используем следующий код Грузоподьемности, 12 нагрузки б, 14, прода а, б магазина (ячейки памяти) б

CISC:

  1. НЕТ инструкции более
  2. Длина инструкции является переменной
  3. Это не использует команду загрузки/сохранения не для доступа к памяти
  4. Примера: Pentium
  5. Нет цикл, необходимый для выполнения программы менее , например для произведения двух не только для использования MULT (ячейка памяти 1), память LOCATION2 и результат магазин на ячейку памяти 1
+0

-1: не отвечает на вопрос. Кроме того, вы ошибаетесь в отношении циклов обучения. Многие процессоры могут выполнять сразу несколько инструкций. –

1

сокращенным набором команд (RISC компьютер/произносил как риск '/) является компьютер, который используют только простые инструкции, которые могут быть разделены на несколько команд, которые выполняют низко- как показано в его названии. Возьмем пример умножения двух чисел A = A * B; < < < ====== это инструкция C. Для этой конкретной задачи процессор CISC будет подготовлен с определенной инструкцией (мы назовем его «MULT»). При выполнении эта команда Загружает два значения в отдельные регистры Умножает операнды в исполнительном модуле И, наконец, третий хранит продукт в соответствующем регистре. Таким образом, вся задача умножения двух чисел может быть завершена с одной командой: MULT A, B < < < ====== это сборка заявление

MULT is what is known as a “complex instruction.” It operates directly on the computer’s memory banks and does not require the programmer to explicitly call any loading or storing functions. 

процессоров RISC используют только простые инструкции, которые могут выполняться в течение одного тактового цикла. Для выполнения точной серии шагов, описанных в подходе CISC, программисту необходимо будет ввести четыре строки сборки: LOAD R1, A < < < ====== это инструкция сборки LOAD R2, B < < < ====== это утверждение сборки ПРОД А, в < < < ====== это оператора ассемблера МАГАЗИНА R3, A < < < ====== это утверждение сборки Преимущество: - Для каждой инструкции требуется выполнение только одного такта, вся программа будет выполняться примерно в той же сумме времени в качестве многоцилиндровой команды «MULT». Эти сокращенные инструкции RISC требуют меньше транзисторов аппаратного пространства, чем сложные инструкции, оставляя больше места для регистров общего назначения. Потому что все инструкции выполняются в единое время (т. Е. Один такт).
** Чтобы узнать больше о RISC и CISC, пожалуйста, пройдите по следующей ссылке: - **

http://www.firmcodes.com/difference-risc-sics-architecture/

Смежные вопросы