欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > PPTX文档下载
    分享到微信 分享到微博 分享到QQ空间

    大学课程《汇编语言程序设计—基于x86与MIPS架构》PPT课件:第5章 MIPS汇编基础.pptx

    • 资源ID:18833519       资源大小:3.18MB        全文页数:41页
    • 资源格式: PPTX        下载积分:20金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    大学课程《汇编语言程序设计—基于x86与MIPS架构》PPT课件:第5章 MIPS汇编基础.pptx

    1、,MIPS汇编基础,汇编语言程序设计,第五章 MIPS汇编基础,MIPS汇编程序框架,5.1 MIPS指令集简介,MIPS指令集简介,4,北方工业大学信息学院,MIPS背景知识,MIPS指令集简介,5,北方工业大学信息学院,MIPS背景知识,MIPS指令集简介,6,北方工业大学信息学院,指令集特点(与X86指令集对比),MIPS指令集简介,7,北方工业大学信息学院,指令集特点(与X86指令集对比),MIPS指令集简介,8,北方工业大学信息学院,指令集特点(与X86指令集对比),MIPS指令集简介,9,北方工业大学信息学院,MIPS基本地址空间,kseg0只需要把最高位清零(&0 x7fffff

    2、ff),这些地址就被转换为物理地址,然后把它们连续地映射到物理内存的低端512M(0 x0000 0000-0 x1FFF FFFF)空间。因为这种映射是很简单的,不需要MMU转换,通常把这些地址称为“非翻译无需转换的”(Unmapped)地址区域,kseg1通过将最高3位清零(&0 x1fffffff)的方法来把这些地址映射为相应的物理地址,是“非翻译无需转换的”(Unmapped)地址区域。注意,kseg1不使用缓存(Uncached)。kseg1是唯一的在系统重启时能正常工作的内存映射地址空间。,kseg2这段地址空间只能在核心态下使用并且要经过MMU转换。在MMU 设置好之前,不能存取

    3、这段区域。除非你在写一个真正的操作系统,一般来说你不需要使用这段地址空间。,kuseg这些是用户模式下可用的地址,即MIPS规范约定用户空间为2G。在带有MMU的机器里,这些地址都将由MMU转换。除非已经设置好MMU,否则不要使用这2G 地址。,第五章 MIPS汇编基础,MIPS汇编程序框架,5.2 MIPS通用寄存器和指令格式,MIPS通用寄存器和指令格式,12,北方工业大学信息学院,MIPS通用寄存器和指令格式,13,北方工业大学信息学院,特殊寄存器,MIPS32架构中定义的特殊寄存器有三个:PC(Program Counter程序计数器)、HI(乘除结果高位寄存器)、LO(乘除结果低位寄

    4、存器)。进行乘法运算时,HI和LO保存乘法运算的结果,其中HI存储高32位,LO存储低32位;进行除法运算时,HI和LO保存除法运算的结果,其中HI存储余数,LO存储商。,MIPS通用寄存器和指令格式,14,北方工业大学信息学院,MIPS指令类型,MIPS通用寄存器和指令格式,15,北方工业大学信息学院,R型指令,MIPS通用寄存器和指令格式,16,北方工业大学信息学院,I型指令,MIPS通用寄存器和指令格式,17,北方工业大学信息学院,J型指令,MIPS通用寄存器和指令格式,18,北方工业大学信息学院,【例5.1】根据MIPS指令操作码定义以及指令格式给出以下指令的各个字段的十进制值:add

    5、$8,$17,$18,答:指令是R格式指令,第一个字段和最后一个字段的值分别为0和32。第二个字段为17第三个字段为18第四个字段为8第五个字段未使用被设置为0,MIPS通用寄存器和指令格式,19,北方工业大学信息学院,访问存储器指令,MIPS通用寄存器和指令格式,20,北方工业大学信息学院,取存储器地址:LA。LA类似x86里的lea指令。,例如:la$a0,mymessage。将存储器的地址给寄存器,即将mymessage的地址给$a0也就是10000000h.,MIPS通用寄存器和指令格式,21,北方工业大学信息学院,存储器取指令:LB和LW。LB是取一个字节,LW是取一个字。除此之外L

    6、B和LW的使用方法一致。,例如:lb$t1,array。该指令的意思是将array这个地址中取一个字节放到$t1寄存器中。,MIPS通用寄存器和指令格式,22,北方工业大学信息学院,lb也可以直接从地址中取字节。,例如:lb$t1,0 x10000000,直接从地址10000000h取一个字节到寄存器$t1。,MIPS通用寄存器和指令格式,23,北方工业大学信息学院,存储器存指令:SB和SW。SB是存一个字节,SW是存一个字。,例如:sb$t1,address。该指令的意思将$t1寄存器中的一个字节33放到address地址中去。,MIPS通用寄存器和指令格式,24,北方工业大学信息学院,MI

    7、PS寻址模式,立即数寻址-操作数是位于指令自身中的常数。,例如:addi$s4,$t5,-73例如:ori$t3,$t7,0 xFF,寄存器寻址-操作数是寄存器。,例如:add$s0,$t2,$t3例如:sub$t8,$s1,$0,MIPS通用寄存器和指令格式,25,北方工业大学信息学院,MIPS寻址模式,基址寻址或偏移寻址-例如lw和sw,是将16位地址字段做符号扩展成32位与PC相加,操作数在内存中,其地址是指令中基址寄存器和常数的和。,例如:lw$s4,72($0)地址=$0+72例如:sw$t2,-25($t1)地址=$t1 25,MIPS通用寄存器和指令格式,26,北方工业大学信息学

    8、院,MIPS寻址模式,PC相对寻址-条件分支指令在进行分支跳转时,使用相对PC寻址方式来确定PC的新值,将16位地址左移2位与PC(已更新为PC+4)相加。,第五章 MIPS汇编基础,MIPS汇编程序框架,5.3 MIPS汇编程序框架,MIPS汇编程序框架,29,北方工业大学信息学院,MIPS源程序框架,.data伪指令用来定义程序的数据段,程序的变量需要在该伪指令下定义。汇编程序会分配和初始化变量的存储空间。,.text伪指令用来定义程序的代码段。,.global伪指令声明某一个符号为全局变量,全局符号可被其他的符号引用。,MIPS汇编程序框架,30,北方工业大学信息学院,数据段,MIPS汇

    9、编程序框架,31,北方工业大学信息学院,数据段,(1)var1:.word 3#声明一个 word 类型的变量 var1,同时给其赋值为 3(2)array1:.byte a,b#声明一个存储2个字符的数组array1,并赋值 a,b(3)array2:.space 40#为变量 array2 分配 40字节(bytes)未使用的连续空间(4)str1:.ascii“Hello worldn”#声明一段字符串,内容为:”Hello worldn”,数据声明的格式为:变量名:数据类型 变量值,MIPS汇编程序框架,32,北方工业大学信息学院,代码段,MIPS指令的基本格式如下:标号:操作符 操作

    10、数#注释 其中标号部分可选,用于标记内存地址,若定义标号则后面必须添加冒号。操作符用于定义操作(如add,sub等)。操作数:用于指明操作需要的数据。可以是寄存器、内存变量或常数。大多数指令有3个操作数。,MIPS汇编程序框架,33,北方工业大学信息学院,系统调用Syscall,.data#数据段str:.asciiz Hello MIPS Assmbly!n#定义字符串str.text#代码段 la$a0,str#将str的地址赋给寄存器$a0 li$v0,4#将寄存器$v0赋值为4 syscall#调用syscall,打印字符串str li$v0,10#将寄存器$v0赋值为10 sysca

    11、ll#调用syscall,退出程序,MIPS汇编程序框架,34,北方工业大学信息学院,系统调用Syscall,MIPS汇编程序框架,35,北方工业大学信息学院,【例5-2】程序的功能是从键盘读出一个字符并显示,试用MIPS汇编语言写出。,data#数据段 msg_read:.asciiz Give number:#定义字符串msg_read msg_print:.asciiz nNumber=#定义字符串msg_print.text#代码段 la$a0,msg_read#将msg_read地址赋给寄存器$a0 li$v0,4#将寄存器$v0赋值为4 syscall#调用syscall,输出字符

    12、串msg_read li$v0,5#将寄存器$v0赋值为5 syscall#调用syscall,读取一个整型 move$t1,$v0#将寄存器$v0的值赋给寄存器$t1 li$v0,4#将寄存器$v0赋值为4 la$a0,msg_print#将msg_ print地址赋给寄存器$a0 syscall#调用syscall,输出字符串msg_ print li$v0,1#将寄存器$v0赋值为1 move$a0,$t1#将寄存器$t1的值赋给寄存器$a0 syscall#调用syscall,打印一个整型 li$v0,10#将寄存器$v0赋值为10 syscall#调用syscall,退出程序,5.4

    13、 MARS调试工具介绍,MIPS模拟器,37,北方工业大学信息学院,MARS是MIPS Assembler and Runtime Simulator(MIPS汇编器和运行时模拟器)的缩写能够运行和调试MIPSMARS采用JARA开发,需要JARA运行库http:/courses.missouristate.edu/KenVollmar/MARS/轻量级的IDE,只有4M,MIPS模拟器界面,38,北方工业大学信息学院,32个寄存器,代码编辑区,运行情况和结果显示,代码段,数据段,存储器空间使用约定,39,北方工业大学信息学院,.datastr:.asciiz HelloMIPS Assmbl

    14、y!n,.text.globl main main:,la$a0,strli$v0,4,syscallli$v0,10 syscall,0 x00400000,0 x10010000,0 x10040000,0 x7fffeffc,保留,系统内存区,栈,静态数据,正文(指令),动态数据(堆),课后作业,40,北方工业大学信息学院,1.MIPS指令分为R、I、J三种类型的指令,下列关于MIPS指令格式的描述中,正确的是()(多选)A、指令长度固定B、操作码字段长度固定C、指令中寄存器字段长度固定 D、立即数字段长度固定2、下列关于 MIPS 寻址的下列描述中,正确的是()(多选)A、相对寻址时,将32位地址左移两位的目的是为了实现按32位整数边界对齐存放B、伪直接寻址时,26位直接地址左移两位的目的是为了使32位地址的低两位为0,实现按32位的整数边界对齐存放C、立即数寻址时,指令中的立即数直接送给指令中指定的寄存器D、MIPS指令中不单独设置寻址方式字段,THANK YOU,


    注意事项

    本文(大学课程《汇编语言程序设计—基于x86与MIPS架构》PPT课件:第5章 MIPS汇编基础.pptx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开