【发布时间】:2013-08-13 05:26:21
【问题描述】:
我的迷你操作系统的调度程序是用汇编编写的,我想知道为什么。我发现指令 eret 不能由 C 编译器生成,这是否可以推广到 Nios 以及 x86 和/或 MIPS 架构以外的其他平台?因为我相信 os 的一部分总是用汇编编写的,所以我正在寻找为什么系统程序员必须知道汇编才能编写操作系统。是否存在 C 编译器的内置限制,无法生成某些汇编指令,例如 eret 将程序返回到中断后正在执行的操作?
【问题讨论】:
-
这不是真的真的。存在完全在 C 中完成它的选项,但它可能很尴尬。即使内联汇编模块不支持指令,通常也可以使用可执行字符串。
标签: c assembly operating-system interrupt nios