CPU位数、操作系统位数和编译器位数关系
来源:互联网 发布:java快速排序递归 编辑:程序博客网 时间:2024/05/24 03:56
编译器是将一种语言翻译为另一种语言的计算机程序。编译器将源程序(source language) 编写的程序作为输入,而产生用目标语言(target language )编写的等价程序。通常地,源程序为高级语言(high-level language ),如C或C + + ,而目标语言则是目标机器的目标代码 (object code,有时也称作机器代码(machine code )),也就是写在计算机机器指令中的用于运行的代码。这一过程可以表示为:
源程序→编译器 →目标程序。
我想来谈谈CPU位数与操作系统位数的问题,这二者有区别也有联系,操作系统位数的概念是基于CPU的位数的。 CPU的位数是指CPU能一次同时寄存和处理二进制数码的位数,这和CPU中寄存器的位数对应。 操作系统的位数是说其所依赖的指令集的位数。计算机系统一般都应有向上兼容性,所以也可有64位CPU上运行32位操作系统、32位CPU上运行16位操作系统的情况。操作系统位数应该是根据指针类型的位数来定的。整数类型不一定跟位数相等,CPU位数准确地说应该是CPU一次能够并行处理的数据宽度,一般就是指数据总线宽度。
16位和32位早期的主要区别是寄存器的位数,内存的寻址和相应指令集的扩充。32位intel cpu都有real模式,即完全的16位模式,屏蔽掉32位的所有特性;32位模式,可以使用所有的32位特性;模拟的8086模式,可以用一个32位机模拟多个16位的8086机,他们的内存是分段隔离的。现在的操作系统使用的都是32位的模式,因为可以享受到cpu直接提供的内存的分页和分段管理。他们提供模拟机制,实际上也是依托cpu实现的16位环境,而不是直接解释16位代码。由于负责生成汇编代码的主要是编译器,所以设计16位的编译器在任何情况下只能生成16位代码。当然,这并不是说用16位的编译器不可能生成32位的代码,因为他完全可能被设计成在16位实模式下生成32位的代码,从而可以在32位的机器上被执行。这就是所谓的交叉编译。你可以使用诸如gcc这样的交叉编译器在16位dos环境下编译出可以在32位linux环境下被执行的程序。
- CPU位数、操作系统位数和编译器位数关系
- CPU位数、操作系统位数和编译器位数关系
- CPU位数、操作系统位数和编译器位数关系
- CPU位数、操作系统位数和编译器位数关系
- CPU位数和操作系统位数
- CPU,OS,编译器位数关系
- 关于CPU位数和操作系统位数
- 关于CPU位数和操作系统位数
- Linux CPU位数&操作系统位数
- 操作系统和硬件cpu位数
- cpu位数和系统位数
- CPU的位数与操作系统的位数
- CPU位数,寻址能力,指令集,寄存器位数,操作系统位数
- linux系统位数查看和cpu位数
- 获得程序位数和操作系统位数
- cpu位数
- 操作系统,eclise,JDK 位数关系
- 位数
- 变量类型转换
- swap() 交换两个数
- linux-多线程
- LAMP的解释
- C语言atoi()和itoa()函数的实现
- CPU位数、操作系统位数和编译器位数关系
- 指针的疑问
- Java中的值传递和引用传递
- C编写的调试宏
- Xcode 配置SVN 几点注意的问题
- 【discuzX2】缓存机制分析
- js中的||(或)运算究竟返回什么?
- Android软件架构及子系统介绍
- 什么是网站开发?