计算机组成原理lecture_第1页
计算机组成原理lecture_第2页
计算机组成原理lecture_第3页
计算机组成原理lecture_第4页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Lecture 15: MIPS AssemblyLanguage程序的级表示主要内容u MIPS指令格式 R 类型u MIP器寄存存寄I 类型 J 类型器长度u M数I 作操个数功能分配数作寄存器操作数指令寻址方式器操作数立即数本文位本u M立即数寻址 型类令指寄存器寻址型类令相对寻址伪直接寻址偏移寻址算术逻辑送传据数支分件条送无条件支转移汇编语言形式操作码的表示寄存器的表示器数据表示语言的反汇编级高高级编汇语言语汇级编言语语言编过程调用与堆栈语言之间的转换MIPS指令格式所有指令都是32位宽须按字地址对齐指令11312621660u 有三种指令格式R-Typ6 bits5 bits5 bi

2、tsbits5 bitsrs rt6 bits两个操作数和结果都在寄存器的运算指令。如:surdI-Ty运算指令:一个寄存器、一个立即数。如:orit,s, imm16D和S指令。如:lrt, rs, i条件分支指令。如:b31q rs26rt, imm162指令1606its5 bits5 bits16 bits无条件跳转指令。如:j31target26指令6 bits26 bitsoparget addressoprsrtimmediateoprsrtrdshamtfuncMIPS指令字段含义R-Type指令113126211660OP:操作码rs:第一个源操作数寄存器rt:第二个源操作数

3、寄存器rd:结果寄存器shamt:移位指令的位移量6 bits5 bits5 bits5 bits5 bits6 bitsI-Type指令3126211606 bits265 bits5 bits16 bits J-Type指令3106 bits26 bitsfunc:R-Type指令的OP字段是特定的“000000”,具体操作由func字段给定。例如:func=“100000”时,表示“加法”运算。操作码的不同编码定义不同的含义,操作码相同时,再由功能码定义不同的含义! immediate:立即数或load/store指令和分支指令的偏移地址target address:无条件转移地址的低2

4、6位。将PC高4位拼上26位直接地址,最后添2个“0”就是32位目标地址。为何最后两位要添“0”?指令按字地址对齐,所以每条指令的地址都是4的倍数(最后两位为0)。optarget addressoprsrtimmediateoprsrtrdshamtfuncOP字段的含义(MIPS指令的操作码编码/表)BACK to AssembleBack to Load/Storeop=0:R型;op=2/3:J型;其余:I型R-型指令的(op=0时,func字段的编码/表)的BACK to Assemble令ad指d指令的的fun令c指字段为100000B(32)div指令的func字段为多少? 01

5、1010B(26)!MIPS Addressing Modes(寻址方式)有专门的寻址方式字段(Mod)吗?没有!由指令格式来确定,而指令格式由op来确定!还记得如何确定的吗?R-format:Register655556I-format:ImmediateByte / Half Word / WordBase或index基址或变址+PC-relative相对寻址+J-format:Pseudodirect伪直接寻址为什么称伪直接?还记得如何得到最终地址的吗?最终地址=PC3128|addr.|00位数:4+26+2=32opaddr.MemoryPC + 4Memoryoprsrtimmed

6、registerMemoryB/HW/WoprsrtimmedoprsrtimmedregisteroprsrtrdsmtfuncExample:汇编形式与指令的对应器取来一条指令为00AF8020H,则对应的汇编形式是什么?u 若从32位指令代码:0000 0000 1010 1111 1000 0000 0010 0000指令的前6位为000000,根据指令表知,是一条R-Type指令,按照R-Type指令的格式6 bits5 bits5 bits5 bits5 bits6 bits31262116116000000000101011111000000000100000得到: rs=001

7、01, rt=01111, rd=10000, shamt=00000, funct=1000001. 根据R-Type指令表,知是 “add”操作(非移位操作)2. rs、rt、rd的十进制值分别为5、15、16,从MIPS寄存器功能表知: rs、rt、rd分别为:$a1、$t7、$s0故对应的汇编形式为:add$s0 ,$a1,$t7这个过程称为“反汇编”,可用来 他人的二进制代码(可执行程序).功能:$a1 + $t7 $s0oprsrtrdshamtfuncExample:汇编形式与指令的对应 若MIPS Assembly Instruction:Add$t0,$s1,$s2?则对应的

8、指令代码是什么?从助记符表中查到Add是R型指令,即:655556问题:如何知道是R型指令?Decimal representaton:根据汇编指令中的操作码助记符查表能知道是什么格式!556$s1$s2$t0R-TypeNo shiftAddBinary representaton:655556这个过程称为“汇编”,所有汇编源程序都必须汇编成二进制代码才能让直接执行!000000100011001001000000001000000oprsrtrdsmtfunc汇编器MIPS Circuits for R-Type Instructions问题:你能给出R-型指令在上述通路中的大致执行过程吗

9、?MIPS R-type指令实现电路的执行过程Phase1: Pre aro段阶备准备阶段 装入指令寄存器IR段阶备 以下相应字段送逻辑ofiel(O 字段)func fie d (fushmt fi ld (s字段)段字这个过程描述仅是示意性的,实际上整个过程需要时钟信号段以下相应字段送寄存器堆第一操作数寄存器编号第二操作数寄存器编号存放结果的目标寄存器编号的并有其他部件参与将在下一章详细介绍。Phase2: Exe执i段阶行执寄存器号被送选择器 对应选择器输出被激活被选寄存器的输出送到数据线逻辑提供:操作码写信号结果被写回目标寄存器MIPS指令中寄存器数据和器数据的指定r0 r1 寄存器数

10、据指定: 332-biGPR(r)寄存器编号占5 bit3x 32-it FP r f 1, pai ed无需编号()HI, LO,特殊寄存器r31PC寄和存能功器存种汇编能表示方式器数据指定lo hi2- bit m c间hi空问访可空间问: 2访32b可y es间 Big端大端式方方式端大过通能只只能通过过Lo通能只数据地址通过一个指令器数据位寄存器内容加位偏移量得到位偏移量是带符号整数故应符号扩展数据要求按边界是对址齐地( 数倍(的4址的地倍数)数)倍的SKIP0MIPS寄存器的功能定义和两种汇编表示Registers are referenced either by number$0,

11、 $31, or by name $t0, $s1 $ra.012 - 34 - 78-1516-2324 - 2526 - 2728293031BACK to Assemblezeroatv0-v1a0 - a3t0 - t7s0 - s7t8 - t9k0 - k1gpspfpraNamenumberUsageon call?zero0constant value =0(恒为0)n.a.at1for assembler(为汇编程序保留)n.a.v0 v12 3values for results(过程调用返回值)noa0 a34 7Arguments(过程调用参数)yest0 t78 15Temporaries(临时变量)nos0 s716 23Saved(保存)yest8

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论