目录
系列文章目录
一、The MIPS 指令集
1.算数运算
2.寄存器操作
3.内存操作数
5.立即操作数与常量
6.指令表示
6.1 R-指令(算术指令)
6.2 I-指令(数据传输、立即数指令)
6.3 决策指令(选择结构)
6.4 过程调用指令
6.5 程序样例
6.6 字节/半字 读取/存储
6.7 立即数寻址
6.8 分支和跳转中的寻址
6.9 寻址方式总结
7.寄存器大全
8.MIPS中的同步(对多用户)
9.谬误和陷阱
总结
本系列博客重点在深圳大学计算机系统(3)课程的核心内容梳理,参考书目《计算机组成与设计》(有问题欢迎在评论区讨论指出,或直接私信联系我)。
计算机组成与设计01——计算机概要与技术_@李忆如的博客-CSDN博客
计算机组成与设计02——指令:计算机的语言
梗概
本篇博客主要介绍书目第二章指令:计算机的语言的相关知识。
加减运算,三个操作数
两个源操作数和一个目的操作数
add a, b, c # a gets b + c
所有算术运算遵循这一格式
算术运算指令使用寄存器操作数
字(word)在内存中是对齐的:地址必须是4的倍数
样例如下:
常量加法:addi $s3, $s3, n(可正负)
MIPS 寄存器 0 ($zero) 表示常量0(对大概率操作非常有用)
如寄存器间传值:add $t2, $s1, $zero
均为32位编码指令
少量格式为操作代码(opcode)、寄存器号等编码
规整化
样例如下:
Tips:R-指令寻址空间较小。
Tips:通过op code区分R(0)还是I型(非0)。
其他条件操作如下:
叶子过程(非嵌套)样例如下:
Tips:叶子过程中用s类寄存器要保存和恢复,用t类寄存器不需要
非叶子过程样例如下:
过程调用其它过程
对于嵌套调用,调用者需要存储到堆栈的信息: 它的返回地址
调用后还需要用的任何参数寄存器和临时寄存器 调用后返回,寄存器会从堆栈中恢复
Tips:保存c,d防止func(a,b)中对其值更改
字符串拷贝举例如下:
Tips:即将立即数乘2的十六次方
以上便是全书核心内容归纳及第二章——计算机的语言的核心知识。在第二章中,主要以计算机系统结构中的设计原则、寄存器、MIPS指令集的介绍为主。