我不小心结束了这里:http://altdevblogaday.com/2011/11/09/a-low-level-curriculum-for-c-and-c/,结果证明这是迄今为止我读过的最丰富的内容之一。我知道汇编是某种低级语言,可以由处理器直接执行,但是,我也读到每个处理器都有它自己的汇编。
问题:
答案 0 :(得分:2)
每个处理器架构都有自己的汇编语言,这意味着它自己的指令集。大多数指令集都相当类似,所以通过学习它们中的任何一个,你至少有机会弄清楚另一个架构正在发生什么。如果您的上网本和PC都是某种* 86,它们可能几乎相同。
尝试汇编的最简单方法是在C程序中嵌入一些汇编代码。这称为“内联汇编”(您可以通过Google搜索找到一些示例)。这允许您让C程序执行输入和输出等高级操作,并让程序集只对该数据进行一些计算。
答案 1 :(得分:2)
每个处理器系列都有自己的指令集。
有些汇编程序可以转换来自两个(或更多)不同指令集的输入 - 例如,Google“表驱动汇编程序”。这些通常在它们使用的所有处理器上使用类似的语法,这些处理器可能(通常是)从与处理器“本机”的汇编程序(例如,处理器供应商提供的汇编程序)略有不同或完全不同。
正如这表明的那样,处理器中还有两个(或更多)不同的汇编程序,广泛使用,有时使用完全不同的语法。仅举一个明显的例子,在x86处理器上,英特尔语法和AT& T语法都是常用的。
从编程的角度来看,处理器的指令集和可用的寄存器几乎都是该处理器可见的。这两者在处理器之间(根本上)不同。
用汇编语言编写的代码通常存储在源文件中。扩展名随汇编程序而变化(例如,“。asm”或“.S”)。你组装的就像编译用更高级语言编写的代码一样。这会产生一个目标文件。从那里你链接产生一个可执行文件,就像任何其他目标文件一样。
答案 2 :(得分:1)
.asm
是汇编程序的典型扩展,但它远非普遍规则。您还可以使用特定于编译器的扩展将汇编嵌入到C / C ++文件中。