迭代用户输入的次数而不进行比较?

时间:2016-12-06 13:59:05

标签: programming-languages cpu-architecture

是否可以编写一个在执行时接受用户输入的程序,标记为n,然后执行n次源代码定义的指令集,一次迭代直接执行另一次,而不是必须增加计数器变量并在每次迭代后将其与用户输入进行比较?换句话说,你能不能告诉CPU"这样做n次"没有CPU启动一个自我更新的计数器,并在每次迭代后检查n?

1 个答案:

答案 0 :(得分:0)

有点儿。您可以做的是获取要执行的指令列表,重复它们 n 次(确保修复任何绝对跳转),添加function prologue and epilogue,将结果保存到{{ 3}}并将该区域的开头称为函数。

请注意,在像C这样的语言中进行这种代码生成真的很难。你可能要么降低成本,要么在汇编中编写代码(或至少部分代码),要么更高使用像C#这样的语言,它允许你操作一些代码表示,然后编译成机器代码。

此外,这不太可能导致显着的性能提升。实际上,它可能会降低性能,因为您的代码可能不再适合CPU的指令缓存。

编译器有时会自动部分地执行此优化。这称为area of memory that is allowed to execute code