对于同样一句c语言,在不同的处理器上会生成不同的汇编语言。每一条汇编语言的执行时间也许是一个或者两个时钟周期,甚至更多。微代码和汇编的关系,就像c
与汇编的关系,也就是说一条汇编也许会生成一条或多条微代码。所谓微代码,或者微指令,是处理器内部最小的 *** 作原语,控制着诸如门电路(gates)开关等专门动作,和组成一条指令的微 *** 作的序列。例如,对于一个加法"add"的简单动作,微代码可以决定接受哪两个寄存器或总线为输入,输出到什么总线或者寄存器里,标志寄存器要保存还是丢弃,根据条件进行跳转或者直接执行下一条微代码。一个内部只有8位宽的数据总线完全可以支持32位整数的汇编 *** 作,就是因为有微代码。
微代码原来只是用来开发计算机的逻辑控制。古老的cpu往往都是“硬连线”,每个机器指令(加法,移动)都是由电路实现,虽然有着高性能的优点,但随着指令复杂度的增长,也带来了研发和debug的困难,以及电路的复杂性。微代码的出现让cpu的设计者可以通过写一个微程序的方式来实现一条机器指令,而不是设计电路来实现它。在将来的开发设计过程中,微代码可以很容易地改变,硬件电路却不可更改,否则带来的将是巨大的商业损失。这种灵活的cpu设计导致了今天日益复杂的指令集。
微程序是由多个机器指令组成的机器指令集,程序则是为了完成某一应用功能所编写的代码的集合。简单一点,微程序是机器指令级别的,程序是高级语言级别的。
一种用于解决实际问题的机器指令的有序集合,包括子程序、分支、循环和其他结构,存储在主存中,可以更新和修改;
微程序设计是一组有序的微指令。微程序设计是传统程序设计方法在控制逻辑设计中的应用。因此,微程序也可以有微子程序、分支、循环等结构。
扩展资料:
微程序和程序的区别
1、不同的系统
是用某种编程语言编写的,运行在某种目标架构上。微程序存储在控制内存CM中,控制内存CM只能读取,不能更改。CM中的所有微程序解释并执行整个指令系统中的所有机器指令。
2、编译是不同的
通常,程序是用高级语言编写的,然后在编译期间由编译器/解释器翻译成机器语言以执行。
在某些情况下,也可以用汇编语言进行编程,汇编语言经过机器语言的修改,用文字代替0和1,如Add用于添加,Mov用于传递数据等。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)