回顾一下CPU的组成以及各组件的功能。
CPU
由运算器
(arithmetic unit) 和控制器
(controller)组成,运算器负责对数据进行加工处理(加减乘除等算数运算
、与或非等逻辑运算
),控制器负责解析指令并向运算器或者存储器发出控制信号。
运算器的组成及各部分的功能:
乘商寄存器MQ
(Mulitple Quotient Register):用于存放乘、除法
运算时的操作数或运算结果累加器ACC
(Accumulator):用于存放加、减法
运算的操作数或运算结果算术逻辑单元ALU
(Arithmetic Logic Unit):通过内部复杂的电路实现算数运算、逻辑运算
通用寄存器X
:用于存放操作数``程序状态字PSW
(Program State Word):一个
特殊的寄存器,用于存储CPU执行指令时的一些
重要状态信息和
标志位。PSW在指令执行过程中被不断地更新,以
反应当前指令执行的状态和结果`。- PSW的重要标志位
- 零标志位(ZF):当运算结果为
0
时,ZF被置为1,否则为0 - 符号标志位(SF):当运算结果为
负数
时,SF被置为1,否则为0 - 进位标志位(CF):在
无符号加法和减法
中,当结果超出了所能表示的范围时,CF被置为1,否则为0 - 移除标志位(OF):在
有符号加法和减法
中,当结果超出了所能表示的范围时,OF被置为1,否则为0 - 奇偶标志位(PF):当运算结果中1的个数为偶数时,PF被置为1,否则为0
- 零标志位(ZF):当运算结果为
- PSW的重要标志位
运算器中不同寄存器存放的操作数类型
加 减 乘 除 ACC 被加数、和 被减数、差 乘积高位 被除数、除数 MQ 乘数、乘积低位 商 X 加数 减数 被乘数 除数
控制器的组成及各部分的功能:
- 控制单元CU(Contorl Unit):分析指令,给出控制信号
- 指令寄存器IR(Instruction Register):存放当前执行指令
- 程序计数器PC(Program Counter):存放指令地址,有自动加一功能
以计算加法运算“1+1”为例:
- CPU根据PC中的地址,将存储器中的指令“1+1”搬运到指令寄存器IR中(PC自动+1,指向下一条需要执行的指令)
- CPU的CU对IR中的指令进行分析,将被加数1放入运算器的ACC中,将加数放入X中
- CU控制ALU对ACC、X中的操作数进行运算,并将运算后的结果放入ACC中(此时PSW的一些标志位的值:ZF=0,SF=0,CF=0,PF=0)
- CPU将ACC中的结果搬运到存储器中,完成本次运算