1.介绍
计算机有三个部分,分别是存储器,处理器,I/O(输入输出)。处理器从存储器中读取指令,再按照指令执行操作,输入输出提供运算数据,给出运算结果。存储器存储指令。
那么,cpu是干什么的呢?:
2.架构和指令集
不同的处理器会有不同的指令。为了增强可移植性,可以把编程所需要的硬件信息抽象出来成为指令集架构(ISA):
ISA的分类:
ISA有哪些?:
那么现在我们要整理一下思路:我们想做一个cpu,也就是处理器,不同的处理器会有不同的指令集,为了方便编程,兼容各种处理器我们提出了ISA的概念,并决定使用MIPS这种ISA。这样看,我们还没有接触如何制作cpu,只是在学习在已经有了一个电脑的基础上最开始的编程是怎样的。
接下来就是MIPS架构的简介:
数据类型:
寄存器:
通用寄存器:
特殊寄存器:
字节次序:
字(32位)是由4个字节(8位)组成的 。地址从左到右变高,用大端模式的话低位数就在高地址了。
指令格式:
指令集:
也就是说,我们写一个汇编指令,这个汇编指令是助记符,用汇编程序可以把这些汇编指令变成0011的样子,也就是之前提到的MIPS支持的3种指令格式。
这里强调一下:
每个处理器都有不同的指令,指的是大家的0011的指令会不一样。现在我要用ISA了,具体用的是MIPS这种ISA,他会规定一种指令格式,也是针对0011的指令的,这样我就可以在这个ISA抽象出来的虚拟机器上(大家的指令还是不一样,ISA会当中间人)用统一的指令了。 然后在这个基础上我就可以用助记符来代替一些0011的指令,然后用汇编程序把助记符变成符合ISA要求的0011,然后在真正的机器上运行。
也就是说,助记符=汇编指令。
现在我们要学习MIPS的指令集,也就是上文所说的与0011对应的助记符。
寻址方式:
协处理器cp0:
异常:
第一章基本就这样。