如果这些是愚蠢的问题或者它们与本网站无关,我很抱歉。我真的不知道我还能在哪里问这个。
好的,首先,我不太了解微处理器上的指令集是如何工作的。它们是通过汇编语言实现的吗?英特尔是否对一系列 CPU 的所有微处理器(例如 Haswell 或 Ivy Bridge)使用相同的指令集,还是每个特定的微处理器都不同?我一直认为微体系结构与指令集是一回事,但显然不是。有人也可以向我解释一下吗?最后一件事:有什么地方可以查看 Intel 或 AMD 微处理器的指令集吗?
非常感谢您提前。
我试图执行:
gcc -o main main.c squrt.S -lm -no-pie
Run Code Online (Sandbox Code Playgroud)
这在另一台计算机上工作,但这次它不知道一条指令:
squrt.S: Assembler messages:
squrt.S:7: Error: unknown pseudo-op: `.intel_syntax'
squrt.S:12: Error: junk at end of line, first unrecognized character is `#'
squrt.S:17: Error: bad instruction `movq rax,xmm0#Bits from xmm0 to rax'
squrt.S:18: Error: bad instruction `shl rax,1'
squrt.S:19: Error: bad instruction `shr rax,53#Exponent of the argument'
squrt.S:20: Error: ARM register expected -- `cmp rax,2047#checks if x is real'
squrt.S:21: Error: bad instruction `je end'
squrt.S:22: Error: ARM register expected -- `mov rcx,1#sgn(x)' …Run Code Online (Sandbox Code Playgroud) Windows Setup 1 中有一个选项可以让您进入固件设置2。它是如何做到的?我猜这将是某种汇编指令,但我不确定它是哪一种。
1如果我没记错的话。
2可能在重新启动后...
假设我想创建一个在 WDC 65C02 CPU 上运行的 Linux 版本。Linux 是如何“定义”的?操作系统需要满足什么标准才能被视为 Linux 而不仅仅是“其他自制操作系统”?我打算直接用汇编语言编写它,因为我发现 cc65 生成的代码效率有些低。