计算机组成原理 mips指令,计算机组成原理--MIPS指令的表示

本文介绍了MIPS计算机中的指令表示,特别是R型和I型指令的区别,如何处理包含常数的操作,以及寄存器$s0~s7$和$t0~t7$的映射。重点讲述了I型指令的设计来解决大常数值操作和指令格式一致性问题,以及存储程序的概念和其在简化系统中的作用。
摘要由CSDN通过智能技术生成

计算机组成原理--10.5

1.计算机中指令的表示

前言:

指令在计算机内部是用高低电平表示的,并且看上去和数的表示是一样的。实际上,指令的各个部分都可以看成数,将这些数拼在一起就构成了指令。(实际上指令和数据的存储确确实实是一样的--都是二进制数)

在接下来的学习中需要用的部分的寄存器,所以在这里先做简单引入。

寄存器$s0~$s7映射到寄存器16~23,寄存器$t0~$t7映射到寄存器8~15.(这里s和t都只是标号,在之后的学习中我们会知道,s代表保留寄存器,t代表临时寄存器)

指令格式:

指令的布局形式叫做指令格式。

MIPS指令占32位,与数据字的位数相等。

数据字的定义:数据字,由于计算机使用的信息既有指令又有数据,所以计算机字可以代表指令,也可以代表数据。如果某字代表要处理的数据,则称为 数据字;如果某字为一条指令,则称为指令字-------百度百科

MIP字段:

oprsrtrdshamtfunct

6位

5位

5位

5位

5位

6位

操作码

操作数寄存器1

操作数寄存器2

目的寄存器

位移量(之后介绍)

功能码

这是一种三地址指令,rd存放的是操作的结果。

问题:如果有些指令需要常数的参与,例如取数操作那该怎么做?

可能一开始想到的答案就是,把数放在rs,rt,rd段中,需要用常数的时候的时候,把他从去字段中取出。

但实际上,这种操作方法会出现问题,当参与操作的常数>32(2^5)时就会出现超出范围的问题。因此又希望所有指令的长度一样,又希望能够有统一的指令格式,同时还要避免出现操作的常数太小的问题.......就出现了心得指令格式:

I型指令

前面所介绍的指令类型叫做R型指令,即寄存器型指令,I型指令为用于立即数的指令

oprsrtconstant or adress

6位

5位

5位

16位

操作码

操作数寄存器1

操作数寄存器2

常数或者地址

例如:

1 lw $s0,32($s3) #取字指令2 #$3存放在rs中,$0存放在rt中,32存放在address字段3 #此时rt的意义已经发生了变化4 #rt:指明接收取数结果的寄存器

四种操作方式所对应的指令格式:

指令格式oprsrtrdshamtfunctaddress

add

R

0

reg

reg

reg

0

32(10)

n.a.

sub

R

0

reg

reg

reg

0

34(10)

n.a.

addi(立即数)

I

8(10)

reg

reg

n.a.

n.a.

n.a.

constant

lw

I

35(10)

reg

reg

n.a.

n.a.

n.a.

address

(reg代表使用寄存器,address代表16位地址,n.a.代表不出现)(add和sub的op是相同的,区分他们的是funct)

通过观察可以发现,R型和I型的前三个字段长度相等,并且名称也一样;I型格式的第四个字段和R型后三个字段长度之和相等。R型和I型虽然功能不同但是却构造很相似,而相关指令在二进制表示上的相似性可以简化硬件的设计。

补充:存储程序:将指令和数据以相同的方式存储,极大的简化了计算机系统。

1)指令用数的形式表达

2)和数一样程序存储在存储器中,并且可以读写

原文:https://www.cnblogs.com/AlanHe/p/11625649.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值