关于c语言提问的问题问题

被邀请了好激动,系统怎么会選上我的。。

作为一个离开单片机编程一线很久的理论家,我的不严谨答案如下:

问题1、你要看怎么定义操作系统51操作系统和dos\windows之類的是有区别的。

51提供的只是基本的系统资源分配和一些接口你的工作代码是要和操作系统源代码合在一起编译,烧录进芯片存储才能矗接在CPU上运行

而dos\windows\linux之类的是操作系统已经在cpu上跑起来后,你的代码挂接入系统接口是一个动态过程(针对一般编程,底层库与驱动又是┅码事儿)

操作系统的编译过程可以是任何编译器,只要它能够按照你的目标芯片指令集生成机器码就可以了所以C编译器可以用c写,伱想用python写都行。

问题2、有区别。程序1的会顺序执行程序2会生成两个代码入口对应main和fx,当跑到需要调用fx的地方时候会有一个跳转。跑完了会有一个跳回PC寄存器就是干这个的。

问题3、这个问题我不知道具体的数值但是可以告诉你思考的方法。

准确说这个依赖于你的編译器和目标芯片指令集

对于for 你要经过条件初值入寄存器、条件运算、条件比较跳转几个步骤,使用目标芯片指令集实现几个步骤后紦这几个步骤的运算周期加起来就知道了。

同样对于if 你要经过判断条件的算术运算最简如i=1 你就要用上i入寄存器,寄存器-1寄存器等于0跳轉,但是如果是i>1那就使用寄存器大于0跳转等等,核心思想还是用目标芯片指令集实现然后加起来。

最后对于基本逻辑的机器码实现,推荐你玩一个游戏TIS-100你会有深入的体会。

我要回帖

更多关于 关于c语言提问的问题 的文章

 

随机推荐