как хранить больше переменных в регистрах с ограниченным числом регистров процессора

213
anishkumar

В одном из интервью мне был задан вопрос, можем ли мы хранить 5 переменных в регистрах процессора, если процессор имеет только 4 регистра процессора. Я уверенно дал ответ НЕТ, потом интервьюер посмотрел на меня странным взглядом.

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

-1
Это зависит от длины регистров и значений, которые вы должны хранить. Если одной части регистра достаточно для хранения одного значения, а остаток достаточно для другого, тогда мы можем сделать лучше, чем 1: 1. Gombai Sándor 8 лет назад 0
@ GombaiSándor Отредактированный вопрос anishkumar 8 лет назад 0

1 ответ на вопрос

0
Vasfed

Actually you can:

  • if the variables are smaller than the registers. In x86 there are even registers that 'look' into others - AX = AH + AL, etc
  • (exotic) if mentioned 4 registers are general-purpose registers and veriable sizes are the same as registers - there's probably also an instruction pointer register, so do a jump to the fifth variable like an address - and you'll have all 5 stored in registers for some period of time before the crash

Похожие вопросы