目前我们的处理器阵营中分为CISC和RISC两大系列,CISC是复杂指令集处理器,这种处理器每条指令可以执行比较多的复杂操作,而且指令长度不定,我知道的有X86处理器是CISC处理器,目前intel和amd出的处理器主要都是x86处理器,intel的x86从8086开始到80186,283,386,486,Pemtium,pentium pro,pentium 2,pentium 3,pentium 4,扣肉2,四核志强等,还有赛扬,pentium M,pentium D等很多变种,有些提供高的性价比,有的专用于移动领域或低功耗领域。
Amd的x86有毒龙,速龙,酷龙等。从8086到386是一次飞跃,实现了保护模式和虚86模式,以此为基础才有后来的Window3.1,386到Pentium是一次飞跃,硬件上从硬连逻辑转换到微指令实现,pentium 到扣肉又是一次较大的飞跃,从一个处理器核到两个,为多任务提供了充分的支持。RISC处理器种类比较多,指令长度固定,执行周期固定,从微控制器、mips、arm、alpha、powerpc、sun sparc等。微控制器子类又很多,目前很多较小的嵌入式控制场合都用得是微控制器,比如sim卡,一卡通,电子表等,有单片机、pic、lpc等。mips是mips公司研究出的一套体系结构,目前龙芯,聚芯都是基于mips,个人认为10年内会销声匿迹。alpha不了解,很少用到。powerpc是ibm,hp等公司合力出的一套,挺复杂,结构严谨,但推广不好,sparc只在sun得到大力支持。arm是目前应用最广泛的一套指令系统,支持多任务,只要是超出单片机能力、x86又太浪费的场合大部分都用arm。90%的智能手机都是arm处理器。
arm处理器有7个处理器模式(x86有3个),用户模式、管理模式、未定义模式、中止模式、特权模式、irq模式,fiq模式。
用户模式和管理模式:共用r0-r14个通用寄存器,pc寄存器,共用一个cpsr。
未定义模式、中止模式、特权模式、irq模式:共享用户模式和管理模式的r0-r12,各自专用的r13-r14,注意和用户模式的r13-r14不同,pc寄存器,各自专用的cpsr和spsr。
fiq模式:共享用户模式和管理模式的r0-r7,专用的r8-r14,pc寄存器,各自专用的cpsr和spsr。
注意pc寄存器是所有模式共享一个。
编程时如果c和汇编共存要遵守atpcs标准,简单的说这个标准要求函数调用时r0-r3传递参数,如果参数多于四个通过堆栈传递,从右往左压参。如果有返回值用r0表示。
用户模式相当于x86中的第三特权级,用于执行普通任务,不可以执行特权操作,不能切换模式等,
未定义模式用于执行一条未定义指令时触发,可通过软件模拟执行,用于模拟浮点或dsp等.
中止模式用于取指出错或访存出错,内在原因可能是需要调页,或访问了非法区域.