计算机原理与设计-32位MIPS 指令

本文深入探讨了32位MIPS指令集,包括I型、R型和J型指令的格式,以及补码、逻辑右移与符号右移等基础知识。详细解析了算数、数据传输、逻辑、分支和跳转指令,并通过斐波那契数列和字符串复制的实例展示了MIPS指令的实际应用。
摘要由CSDN通过智能技术生成

基本知识

定义:计算机语言中的基本单词称为指令,一台计算机的全部指令称为该计算机的指令集。
指令集:MIPS(RISC)、ARMv7/ARMv8(RISC)、Intel x86(CISC)。
字(Word):MIPS体系架构中,寄存器大小为32位,称32位为一个字。
补码:计算机中有符号整数的最高位作为符号位,负数使用补码表示,x + (~x) = -1,所以负数的表示形 式为-x = (~x)+1。
逻辑右移与符号右移:位右移时使用0填充高位与使用符号位填充高位的区别。

MIPS指令集

指令格式

32位MIPS指令集的长度均为32位,保持所有指令长度相同,但不同类型指令有不同的格式,为R型MIPS字段命名如下:

op rs rt rd shamt funct
6位 5位 5位 5位 5位 6位
指令操作码 源寄存器1 源寄存器2 目的寄存器 位移量(移位指令) 功能码

I型指令

op rs rt constant or address
6位 5位 5位 16位
指令操作码 源寄存器 目的寄存器 立即数或地址

R型指令

op rs rt rd shamt funct
6位 5位 5位 5位 5位 6位
指令操作码 源寄存器 寄存器2 目的寄存器 位移量(移位指令) 功能码

J型指令

指令:j 10000

op address
6位 26位
2 10000

指令:bne $s0,$s1,Exit

op rs rt address
6位 5位 5位 16位
5 16 17 Exit

寄存器与编码

Register Regsiter Code Value(op字段) Description
zero 0 存储0值,用于辅助计算
v0—>v1 2~3 过程调用:返回值寄存器
a0—>a3 4~7 过程调用:参数寄存器(Argument Register),传递参数值
t0—> t7 8~15 8个临时寄存器(Temporary Register),过程调用时无需保存旧值
s0—> s7 16~23 8个保留寄存器(Saved Register),过程调用时需要被压栈保存并恢复
  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值