FC模拟器的实现 - CPU相关知识(2) - JAVA

/ 编程技术 / 2 条评论 / 2000浏览

作者:玉米


在前面的文章我们搭建了一个完整的FC模拟器的框架体系。

也确定了我们要做的这个FC模拟器有由几个模块组成。

接下来我们就要选一个模块进行实现。当然这里我选择的是CPU模块率先实现。

首先CPU是什么?

中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。

它的功能主要是解释计算机指令以及处理计算机软件中的数据。

中央处理器主要包括运算器(算术逻辑运算单元,ALU,Arithmetic Logic Unit)和高速缓冲存储器(Cache)及实现它们之间联系的数据(Data)、控制及状态的总线(Bus)。

它与内部存储器(Memory)和输入/输出(I/O)设备合称为电子计算机三大核心部件。

CPU包括运算逻辑部件、寄存器部件和控制部件等。

CPU可以做什么事儿?

处理指令

英文Processing instructions;这是指控制程序中指令的执行顺序。程序中的各指令之间是有严格顺序的,必须严格按程序规定的顺序执行,才能保证计算机系统工作的正确性。

执行操作

英文Perform an action;一条指令的功能往往是由计算机中的部件执行一系列的操作来实现的。CPU要根据指令的功能,产生相应的操作控制信号,发给相应的部件,从而控制这些部件按指令的要求进行动作。

控制时间

英文Control time;时间控制就是对各种操作实施时间上的定时。在一条指令的执行过程中,在什么时间做什么操作均应受到严格的控制。只有这样,计算机才能有条不紊地工作。

处理数据

即对数据进行算术运算和逻辑运算,或进行其他的信息处理。

原文出处:百度百科


知道这些后,我们再来看看MOS6502 CPU的部分参数

MOS6502 CPU 6502是美国MOS Technology公司推出的一种8位的CPU 。

原文出处:百度百科

寄存器的概念和作用

MOS6502 CPU有6个寄存器。(程序指令计数器,堆栈寄存器,累加寄存器,2个变址寄存器,状态寄存器)

以下说明寄存器的作用。当然MOS6502的寄存器后续会详细说明。

程序指令计数器

计算机中提供要从存储器中取出的下一个指令地址的寄存器,通常情况下,每一个指令取出后寄存器就自动增加一步。程序计数器,或PC。

也称为指令指针,或指令地址寄存器,或仅仅是指令时序(在某些计算机中)的一部分,是一个处理器寄存器,指示计算机在其指令序列中的位置。

在特定的计算机中,PC指向正在执行的指令的地址,或即将执行的指令。执行完后自动加一,以指向下一条指令。如果有CPU有指令流水线则PC增量不定。

原文出处:百度百科

堆栈寄存器

堆栈指针寄存器在堆栈操作中使用,PUSH和POP指令是从SP寄存器得到现行堆栈段的段内偏移量,所以称SP寄存器为堆栈指针,SP始终指向栈顶。

原文出处:百度百科

累加寄存器

ACC(Accumulator)是累加器A缩写。

累加器A是一个具有特殊用途的二进制8位寄存器,专门用来存放操作数或运算结果。

在CPU执行某种运算前,两个操作数中的一个通常应放在累加器A中,运算完成后累加器A中便可得到运算结果。

原文出处:百度百科

变址寄存器

变址寄存器主要是存放存储单元在段内的偏移量。

原文出处:百度百科

状态寄存器

状态寄存器又名条件码寄存器,它是计算机系统的核心部件——运算器的一部分,状态寄存器用来存放两类信息:

一类是体现当前指令执行结果的各种状态信息(条件码),如有无进位(CF位)、有无溢出(OV位)、结果正负(SF位)、结果是否为零(ZF位)、奇偶标志位(P位)等;

另一类是存放控制信息(PSW:程序状态字寄存器),如允许中断(IF位)、跟踪标志(TF位)等。有些机器中将PSW称为标志寄存器FR(Flag Register)。

原文出处:百度百科

  1. www

    l厉害厉害厉害

    回复
    1. @www

      6666666

      回复