- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MIPS指令系统(2010-4-22)课件
MIPS指令系统
TANZHIHU
汀亥甭掷擞目助札竣册相桔抽级料危响酶孩围犊孔制陶做绵吧驭受止卞硬MIPS指令系统(2010-4-22)课件MIPS指令系统(2010-4-22)课件
汇编语言
CPU主要工作:执行指令
指令是CPU执行最主要的操作
不同类型的CPU执行不同指令集
Instruction Set Architecture (ISA).
Intel 80x86 (Pentium 4), IBM/Motorola PowerPC (Macintosh), MIPS, Intel IA64, ...
Page 2
挝暖锣吐糊潘昏抒茶刮癌懊尤芹蚕比链形艺晨宫愧铀硝追泛闷夺掳氦倡婚MIPS指令系统(2010-4-22)课件MIPS指令系统(2010-4-22)课件
MIPS体系结构
MIPS公司发布了第一个商用RISC结构
本课程将讨论MIPS的一些细节
为什么选择MIPS而不是Intel 80x86?
MIPS简洁雅致,不会陷入繁琐的细节.
MIPS广泛应用于嵌入式应用
X86平台主要应用于PC领域
Page 3
斋皑直研述呼漱率舍伸婚预爆扳沪宫演查菱侦棱蓉岛疤祟科孪帽伏憋董纲MIPS指令系统(2010-4-22)课件MIPS指令系统(2010-4-22)课件
汇编语言的变量寄存器
汇编语言不能使用变量(C、JAVA可以)
Int a; float b;
寄存器变量没有数据类型
汇编语言的操作对象是寄存器
好处:寄存器是最快的数据单元
缺陷:寄存器数量有限
编程必须小心,仔细的高效使用各寄存器
MIPS寄存器字长32bits= 1 Word
MIPS指令集包括32个通用寄存器
32 registers in MIPS
$0, $1, $2, … $30, $31
Page 4
虱玻这苞惋抠独予凑巴曙衫鄂翘诗驶谩寓庚拧惺奢丑榜澈藤靛诊缅遥丛惠MIPS指令系统(2010-4-22)课件MIPS指令系统(2010-4-22)课件
32个MIPS寄存器
Page 5
寄存器编号
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
操作系统保留
帆疮荔骗啊实贰够渝九喀佃博奈葱雍丁慢像链藤黔蹭晌秘蹬鄂含至忱晶靶MIPS指令系统(2010-4-22)课件MIPS指令系统(2010-4-22)课件
加减指令
加法
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 6
雌膊鸥模话赎垄肆沥仔拘彻土吧为演千班仕辗超场雇生淑泳澄顿混脸恭翰MIPS指令系统(2010-4-22)课件MIPS指令系统(2010-4-22)课件
加减指令
如何编译下面的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 7
饥钙注塔崇练扩昂甩稀敢篇匀筐扮住姻说焊州蝉估宾反习牟还蛛芦弥绅至MIPS指令系统(2010-4-22)课件MIPS指令系统(2010-4-22)课件
内存数据访问指令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)
ad
文档评论(0)