“int”之间的区别

时间:2011-04-07 08:49:26

标签: c linux assembly linux-kernel naming

OS如何知道区分

int x = 0; //variable

int 0x80; //interrupt, call system_call()

4 个答案:

答案 0 :(得分:6)

通过共同发生,'整数'的前3个字母与'中断'的前3个字母相同。两种不同的语言使用了这3个字母,它们意味着不同的东西。

同样,“聊天”是法语和英语中的一个词,但在法语中它意味着“猫”,在英语中它意味着“谈话”。

答案 1 :(得分:2)

int x = 0;是C代码。

int 0x80;是汇编代码。

此外,OS根本不知道,因为编译器/汇编器将其转换为机器代码......

答案 2 :(得分:0)

一个看起来像C,另一个看起来像汇编程序。

如果为int x = 0生成汇编程序;在编译器中使用-S开关 你会看到代码实际上有多么不同。

答案 3 :(得分:0)

因为它们是两种不同的编程语言。

第一个是C中的变量声明和定义,第二个是在Linux x86中调用系统调用的汇编指令。

它们可能由两个不同的编译器解释,或者如果它们在同一个文件中,则第二条指令在汇编代码块中,编译器知道必须区别对待。