LINUX中,如何查看CPU有哪些寄存器,其长度为多少?
发布网友
发布时间:2022-04-22 13:40
我来回答
共2个回答
热心网友
时间:2023-11-06 23:31
这很难说,
CPU的16位、32位以及64位技术,指的是CPU一次性能处理的最大数据位。具体的,比较直观的,主要体现在CPU的主要寄存器的长度上。也就是从8086/8088那时候开始的AX,BX,CX,DX等等。
CPU的寄存器的长度,可以说,它代表了CPU一次性能处理的最大数值的能力。如果你了解二进制,这个就比较好理解:
两个64位的二进制数如果用32位的CPU做加法,是一件比较麻烦的事情,需要多条指令才能完成。
而对于64位的CPU来说,它计算64位的加法,只要一条指令。
所以,理论上说,64位的CPU的处理能力要强于32位的CPU。
但是,硬件的使用,需要相应的软件配合。如果64位的CPU上运行的是32位的代码,那么,该CPU的优势并不能发挥出来。
就如同一个高中生和一个初中生都计算1+1等于几的问题。
答案都可以算出来,速度都很快。但高中生的强项你是看不到的。
我们目前的操作系统,除了LINUX/UNIX外,主要还是32位。
不是说没有64位的WINDOWS系统。像WINDOWS XP和WINDOWS VISTA都有64位的,但个人感觉用的人比较少。主要是因为64位的操作系统,还需要64位的应用软件才能发挥出64位的优势。
而64位的软件的产生,目前来说,主要取决编译系统是否能生成64位代码。想想看,现在的大学,普遍都还在研究98年的VC6.0等编译系统,所以,64位的应用,现在只能说是起步。
以上说的是CPU的常规寄存器。事实上,CPU的其它某些专用寄存器,都有128位的了。
总的来说,64位CPU是目前的主流,32位在以后的10多年中会逐步淘汰---就如同当年的386出生后,16位的逐步淘汰。
热心网友
时间:2023-11-06 23:31
1.首先,建立交叉编译环境:交叉编译是指:在PC机上编译,在目标板上执行,我PC是linux+ arm-elf-gcc编译器.扳子是ARM3000.板子上的系统是uclinux,这时一个剪裁的很小的实时嵌入式linux操作系统.推荐使用这个.
2.然后就是你写程序喽,不过注意可能有些库函数不能用,因为哪个编译器稍微受限一点,不是所由的c库函数都支持,不过一般开发的都有.
3.连起你的主机和开发板,这个你会不?要连两个:串口(用来控制板子)和以太口(用来下载程序),我们板子上这些外设都有,你要使没有可以用其他的口代替传程序,但串口可是该有的阿!
4.在你主机上编译程序生成目标代码,建议用makefile文件来组织你的联编关系.
5.把生成代码下载到目标板执行调试.我是用的主机的NFS(网落文件)服务,下载到目标板的.
6.注:目标板是怎么控制的呢?是用串口控制的,可用minicom,设置好你要控制的串口,也应该是你连板子的那个.在命令行里敲上minicom,即进入minicom截面,开启你的板子,应该就是板子uclinux系统解压安装的画面了.然后用ifconfig eth0.....
配置ip,这个ip就是你板子的ip了,注意与主机一个网段.然后mount -t nfs 主机ip:/uclinux /板子上的一个目录,就把主机的 uclinux目录放到板子上了(这么说其实不合理,应该叫挂载). 然后找到你刚才一经编译好的哪个目标代码执行即可.
因不了解你的具体环境和配置,暂说这些,有问题可再联系:)
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
vae la