微处理器体系结构下图帮助我们理解微处理器如何运行,同时是一个典型的商业微处理器的方框图。这个方框图被分为两个主要部分——一个寄存器部分和一个控制部分由微处理器所执行的实际操作是在登记册部分完成,在程序中给定步骤的执行期间执行的特定操作由来自指令解码器的电信号控制,在每个程序步骤中,以8位号形式的指令从存储器传输到指令寄存器。
这个解码过程的结果是一组电气控制信号,它们被发送到涉及到被执行的指令的寄存器部分的特定组件。执行操作的数据也类似地从存储器传输到数据总线缓冲区。然后,数据从这个缓冲区传输到寄存器部分中的所需组件,以便执行操作。请注意,在典型的微处理器的寄存器部分中包含了一个算术和逻辑单元,如下图所示。该装置是一个能够执行运算和逻辑运算的复杂电路,寄存器部分还包括累加器,它是最常用于接收算术或逻辑运算结果的寄存器。
1、什么是寄存器在数电里,寄存器是指由基本的RS触发器结构衍生出来的D触发,就是一些与非门构成的结构。寄存器是由触发器组成的。一个触发器就是一个一位寄存器。存储器(分为只读存储器ROM和随机存取存储器RAM)由寄存器组成,可以看作一个寄存器堆,每个存储单元实际上相当与一个缓冲寄存器。C语言提供了另一种变量,即寄存器变量。这种变量存放在CPU的寄存器中,使用时,不需要访问内存,而直接从寄存器中读写,这样可提高效率。
对于循环次数较多的循环控制变量及循环体内反复使用的变量均可定义为寄存器变量。[例5.16]求∑200i1imain(){registeri,s0;for(i1;i<200;i++)ss+i;printf(s%d,s);}本程序循环200次,i和s都将频繁使用,因此可定义为寄存器变量。对寄存器变量还要说明以下几点:1.只有局部自动变量和形式参数才可以定义为寄存器变量。
2、CPU中哪个寄存器总是用于存储地址?这个寄存器中存储的是什么地址?任何CPU,其PC寄存器永远存储的是地址,不可能用于存储其它数据。PC寄存器存储的是程序存储器的地址,这个地址总是指向下一条待执行的指令地址。我说8086的吧,32位比较复杂。我认为理论上来说应该只有cs和ip,也就是与执行指令相关的这两个寄存器,总是存储的下一条指令的地址。ss和sp应该不能说总是用于储存地址,我想到了一种特殊情况。
3、为什么要设置暂存寄存器设置寄存器的目的是给运算的数据一个暂存空间。根据查询相关公开信息显示:CPU是单总线,则一次只能传输一个数据,通过T先暂存一个数据,在输入第二个数据到B口后,ALU既可正常进行工作,如果两个数据相同则不能正常工作,所有设置寄存器的目的是给运算的数据一个暂存空间。