计算机组成与设计02——指令:计算机的语言

目录

系列文章目录

一、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——指令:计算机的语言


梗概

本篇博客主要介绍书目第二章指令:计算机的语言的相关知识。


一、The MIPS 指令集

1.算数运算

加减运算,三个操作数

两个源操作数和一个目的操作数

add a, b, c  # a gets b + c

所有算术运算遵循这一格式

2.寄存器操作

算术运算指令使用寄存器操作数

汇编器名称为:
t0, $t1, …, $t9 :   编译变量(过程变量)
s0, $s1, …, $s7 : 程序变量
zero, $sp, $fp…
设计原则 2 : 越快 (Smaller is faster)

3.内存操作数

主存用于复合数据
l 数组,结构体,动态数据
应用于算术运算
l 从内存往寄存器装载数据
l 从寄存器往内存存储数据

字(word)在内存中是对齐的:地址必须是4的倍数

MIPS 使用 大端方式 字的最小地址表示其最高有效位)。

样例如下:

计算机组成与设计02——指令:计算机的语言_第1张图片

计算机组成与设计02——指令:计算机的语言_第2张图片

5.立即操作数与常量

常量加法:addi $s3, $s3, n(可正负)

n 设计原则 3 : 加速大概率事件
l 小常量很常见
l 立即操作数可 少用一次装载指令

MIPS 寄存器 0 ($zero) 表示常量0(对大概率操作非常有用)

如寄存器间传值:add $t2, $s1, $zero

6.指令表示

均为32位编码指令

少量格式为操作代码(opcode)、寄存器号等编码

规整化

寄存器编号(考卷给出)
$t0 – $t7 映射到 reg’s 8 – 15
$t8 – $t9 映射到 reg’s 24 – 25
$s0 – $s7 映射到 reg’s 16 – 23

6.1 R-指令(算术指令)

计算机组成与设计02——指令:计算机的语言_第3张图片

样例如下:

计算机组成与设计02——指令:计算机的语言_第4张图片

计算机组成与设计02——指令:计算机的语言_第5张图片

Tips:R-指令寻址空间较小。

6.2 I-指令(数据传输、立即数指令)

计算机组成与设计02——指令:计算机的语言_第6张图片

 Tips:通过op code区分R(0)还是I型(非0)。

6.3 决策指令(选择结构)

计算机组成与设计02——指令:计算机的语言_第7张图片

其他条件操作如下:

计算机组成与设计02——指令:计算机的语言_第8张图片

6.4 过程调用指令

计算机组成与设计02——指令:计算机的语言_第9张图片

6.5 程序样例

叶子过程(非嵌套)样例如下:

计算机组成与设计02——指令:计算机的语言_第10张图片

计算机组成与设计02——指令:计算机的语言_第11张图片

Tips:叶子过程中用s类寄存器要保存和恢复,用t类寄存器不需要

非叶子过程样例如下:

过程调用其它过程

对于嵌套调用,调用者需要存储到堆栈的信息: 它的返回地址

调用后还需要用的任何参数寄存器临时寄存器 调用后返回,寄存器会从堆栈中恢复

计算机组成与设计02——指令:计算机的语言_第12张图片

计算机组成与设计02——指令:计算机的语言_第13张图片

Tips:保存c,d防止func(a,b)中对其值更改

6.6 字节/半字 读取/存储

计算机组成与设计02——指令:计算机的语言_第14张图片

字符串拷贝举例如下:

计算机组成与设计02——指令:计算机的语言_第15张图片

6.7 立即数寻址

计算机组成与设计02——指令:计算机的语言_第16张图片

Tips:即将立即数乘2的十六次方 

6.8 分支和跳转中的寻址 

计算机组成与设计02——指令:计算机的语言_第17张图片

 

计算机组成与设计02——指令:计算机的语言_第18张图片

 

计算机组成与设计02——指令:计算机的语言_第19张图片

6.9 寻址方式总结

计算机组成与设计02——指令:计算机的语言_第20张图片

7.寄存器大全

计算机组成与设计02——指令:计算机的语言_第21张图片

8.MIPS中的同步(对多用户)

计算机组成与设计02——指令:计算机的语言_第22张图片

9.谬误和陷阱

计算机组成与设计02——指令:计算机的语言_第23张图片

计算机组成与设计02——指令:计算机的语言_第24张图片

计算机组成与设计02——指令:计算机的语言_第25张图片

总结

以上便是全书核心内容归纳及第二章——计算机的语言的核心知识。在第二章中,主要以计算机系统结构中的设计原则、寄存器、MIPS指令集的介绍为主。

你可能感兴趣的:(深入理解计算机系统,系统架构)