网站大量收购闲置独家精品文档,联系QQ:2885784924

MIPS指令系统(2010-4-22).ppt

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MIPS指令系统(2010-4-22),指令系统,计算机指令系统,8086指令系统,计算机指令系统是指,精简指令系统,cpu的指令系统又称为,富远版的指令系统,单片机指令系统,cpu的指令系统

MIPS指令系统 TANZHIHU 汇编语言 CPU主要工作:执行指令 指令是CPU执行最主要的操作 不同类型的CPU执行不同指令集 Instruction Set Architecture (ISA). Intel 80x86 (Pentium 4), IBM/Motorola PowerPC (Macintosh), MIPS, Intel IA64, ... Page ? * MIPS体系结构 MIPS公司发布了第一个商用RISC结构 本课程将讨论MIPS的一些细节 为什么选择MIPS而不是Intel 80x86? MIPS简洁雅致,不会陷入繁琐的细节. MIPS广泛应用于嵌入式应用 X86平台主要应用于PC领域 Page ? * 汇编语言的变量寄存器 汇编语言不能使用变量(C、JAVA可以) Int a; float b; 寄存器变量没有数据类型 汇编语言的操作对象是寄存器 好处:寄存器是最快的数据单元 缺陷:寄存器数量有限 编程必须小心,仔细的高效使用各寄存器 MIPS寄存器字长32bits= 1 Word MIPS指令集包括32个通用寄存器 32 registers in MIPS $0, $1, $2, … $30, $31 Page ? * 32个MIPS寄存器 Page ? * 寄存器编号 MIPS助记符 释义 备注 0 $Zero 固定值为0 硬件置位 2~3 $v0~$v1 函数调用返回值 4~7 $a0~$a3 函数调用参数 4个参数 8~15 $t0~$t7 暂存寄存器 8个参数 16~23 $s0~$s7 通用寄存器 调用之前需保存 24~25 $t8~$t9 暂存寄存器 2个 28 $gp 全局指针 29 $sp 堆栈指针 30 $fp 帧指针 31 $ra 函数返回地址 1 $at 汇编器保留 26~27 $k0~$k1 操作系统保留 加减指令 加法 a = b + c (in C) add $s0,$s1,$s2 (in MIPS) C语言变量a, b, c编译后对应寄存器 $s0,$s1,$s2 减法 d = e – f (in C) sub $s3,$s4,$s5 (in MIPS) C语言变量d, e, f编译后对应寄存器 $s3,$s4,$s5 Page ? * 加减指令 如何编译下面的C语言表达式? a = b + c + d - e; 编译成多行汇编指令 add $t0, $s1, $s2 # temp = b + c add $t0, $t0, $s3 # temp = temp + d sub $s0, $t0, $s4 # a = temp - e 一个简单的C语言表达式变成多行汇编语句 #号后面是注释 Page ? * 内存数据访问指令lw sw lb sb lh sh 读内存指令 g = h + A[8]; (in C) lw $t0,32($s3) # $t3为A[0]地址 (in MIPS) add $s1,$s2,$t0 # g=h+A[8] 变址寻址 偏移量+基址寄存器 写内存指令 A[12] = h + A[8]; lw $t0,32($t3) # get A[8] (in MIPS) add $t0,$s2,$t0 # A[12]=h+A[8] sw $t0,48($s3) #store A[12] Page ? * 加立即数 常数相加指令 g = g + 4; (in C) Lw $t0, 0($s3) # $t0=4 $s3=Address(4) add $s1,$s1,$t0 # g=g+4 立即数相加指令 addi $s3,$s3,4 # $s3=$s3+4 (in MIPS) Page ? * 指令 实例 语义 注释 加 add $s1,$s2,$s3 $s1=$s2+$s3 寄存器寻址 减 sub $s1,$s2,$s3 $s1=$s2-$s3 寄存器寻址 加立即数 addi $s1,$s2,100 $s1=$s2+100 寄存器寻址+立即数寻址 取字 lw $s1,100($s2) $s1=Mem[$s2+100] 寄存器寻址+变址寻址 存字 sw $s1,100($s2) Mem[$s2+100]=$s1 寄存器寻址+变址寻址 条件判断指令 be

文档评论(0)

mydoc + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档