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

上传人:O**** 文档编号:18833519 上传时间:2023-12-27 格式:PPTX 页数:41 大小:3.18MB
下载 相关 举报
大学课程《汇编语言程序设计—基于x86与MIPS架构》PPT课件:第5章 MIPS汇编基础.pptx_第1页
第1页 / 共41页
大学课程《汇编语言程序设计—基于x86与MIPS架构》PPT课件:第5章 MIPS汇编基础.pptx_第2页
第2页 / 共41页
大学课程《汇编语言程序设计—基于x86与MIPS架构》PPT课件:第5章 MIPS汇编基础.pptx_第3页
第3页 / 共41页
大学课程《汇编语言程序设计—基于x86与MIPS架构》PPT课件:第5章 MIPS汇编基础.pptx_第4页
第4页 / 共41页
大学课程《汇编语言程序设计—基于x86与MIPS架构》PPT课件:第5章 MIPS汇编基础.pptx_第5页
第5页 / 共41页
大学课程《汇编语言程序设计—基于x86与MIPS架构》PPT课件:第5章 MIPS汇编基础.pptx_第6页
第6页 / 共41页
大学课程《汇编语言程序设计—基于x86与MIPS架构》PPT课件:第5章 MIPS汇编基础.pptx_第7页
第7页 / 共41页
大学课程《汇编语言程序设计—基于x86与MIPS架构》PPT课件:第5章 MIPS汇编基础.pptx_第8页
第8页 / 共41页
大学课程《汇编语言程序设计—基于x86与MIPS架构》PPT课件:第5章 MIPS汇编基础.pptx_第9页
第9页 / 共41页
大学课程《汇编语言程序设计—基于x86与MIPS架构》PPT课件:第5章 MIPS汇编基础.pptx_第10页
第10页 / 共41页
大学课程《汇编语言程序设计—基于x86与MIPS架构》PPT课件:第5章 MIPS汇编基础.pptx_第11页
第11页 / 共41页
大学课程《汇编语言程序设计—基于x86与MIPS架构》PPT课件:第5章 MIPS汇编基础.pptx_第12页
第12页 / 共41页
大学课程《汇编语言程序设计—基于x86与MIPS架构》PPT课件:第5章 MIPS汇编基础.pptx_第13页
第13页 / 共41页
大学课程《汇编语言程序设计—基于x86与MIPS架构》PPT课件:第5章 MIPS汇编基础.pptx_第14页
第14页 / 共41页
大学课程《汇编语言程序设计—基于x86与MIPS架构》PPT课件:第5章 MIPS汇编基础.pptx_第15页
第15页 / 共41页
大学课程《汇编语言程序设计—基于x86与MIPS架构》PPT课件:第5章 MIPS汇编基础.pptx_第16页
第16页 / 共41页
大学课程《汇编语言程序设计—基于x86与MIPS架构》PPT课件:第5章 MIPS汇编基础.pptx_第17页
第17页 / 共41页
大学课程《汇编语言程序设计—基于x86与MIPS架构》PPT课件:第5章 MIPS汇编基础.pptx_第18页
第18页 / 共41页
大学课程《汇编语言程序设计—基于x86与MIPS架构》PPT课件:第5章 MIPS汇编基础.pptx_第19页
第19页 / 共41页
大学课程《汇编语言程序设计—基于x86与MIPS架构》PPT课件:第5章 MIPS汇编基础.pptx_第20页
第20页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

《大学课程《汇编语言程序设计—基于x86与MIPS架构》PPT课件:第5章 MIPS汇编基础.pptx》由会员分享,可在线阅读,更多相关《大学课程《汇编语言程序设计—基于x86与MIPS架构》PPT课件:第5章 MIPS汇编基础.pptx(41页珍藏版)》请在冰点文库上搜索。

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

,MIPS汇编基础,汇编语言程序设计,第五章MIPS汇编基础,MIPS汇编程序框架,5.1MIPS指令集简介,MIPS指令集简介,4,北方工业大学信息学院,MIPS背景知识,MIPS指令集简介,5,北方工业大学信息学院,MIPS背景知识,MIPS指令集简介,6,北方工业大学信息学院,指令集特点(与X86指令集对比),MIPS指令集简介,7,北方工业大学信息学院,指令集特点(与X86指令集对比),MIPS指令集简介,8,北方工业大学信息学院,指令集特点(与X86指令集对比),MIPS指令集简介,9,北方工业大学信息学院,MIPS基本地址空间,kseg0只需要把最高位清零(&0x7fffffff),这些地址就被转换为物理地址,然后把它们连续地映射到物理内存的低端512M(0x00000000-0x1FFFFFFF)空间。

因为这种映射是很简单的,不需要MMU转换,通常把这些地址称为“非翻译无需转换的”(Unmapped)地址区域,kseg1通过将最高3位清零(&0x1fffffff)的方法来把这些地址映射为相应的物理地址,是“非翻译无需转换的”(Unmapped)地址区域。

注意,kseg1不使用缓存(Uncached)。

kseg1是唯一的在系统重启时能正常工作的内存映射地址空间。

kseg2这段地址空间只能在核心态下使用并且要经过MMU转换。

在MMU设置好之前,不能存取这段区域。

除非你在写一个真正的操作系统,一般来说你不需要使用这段地址空间。

kuseg这些是用户模式下可用的地址,即MIPS规范约定用户空间为2G。

在带有MMU的机器里,这些地址都将由MMU转换。

除非已经设置好MMU,否则不要使用这2G地址。

第五章MIPS汇编基础,MIPS汇编程序框架,5.2MIPS通用寄存器和指令格式,MIPS通用寄存器和指令格式,12,北方工业大学信息学院,MIPS通用寄存器和指令格式,13,北方工业大学信息学院,特殊寄存器,MIPS32架构中定义的特殊寄存器有三个:

PC(ProgramCounter程序计数器)、HI(乘除结果高位寄存器)、LO(乘除结果低位寄存器)。

进行乘法运算时,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$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是取一个字。

除此之外LB和LW的使用方法一致。

例如:

lb$t1,array。

该指令的意思是将array这个地址中取一个字节放到$t1寄存器中。

MIPS通用寄存器和指令格式,22,北方工业大学信息学院,lb也可以直接从地址中取字节。

例如:

lb$t1,0x10000000,直接从地址10000000h取一个字节到寄存器$t1。

MIPS通用寄存器和指令格式,23,北方工业大学信息学院,存储器存指令:

SB和SW。

SB是存一个字节,SW是存一个字。

例如:

sb$t1,address。

该指令的意思将$t1寄存器中的一个字节33放到address地址中去。

MIPS通用寄存器和指令格式,24,北方工业大学信息学院,MIPS寻址模式,立即数寻址-操作数是位于指令自身中的常数。

例如:

addi$s4,$t5,-73例如:

ori$t3,$t7,0xFF,寄存器寻址-操作数是寄存器。

例如:

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)地址=$t125,MIPS通用寄存器和指令格式,26,北方工业大学信息学院,MIPS寻址模式,PC相对寻址-条件分支指令在进行分支跳转时,使用相对PC寻址方式来确定PC的新值,将16位地址左移2位与PC(已更新为PC+4)相加。

第五章MIPS汇编基础,MIPS汇编程序框架,5.3MIPS汇编程序框架,MIPS汇编程序框架,29,北方工业大学信息学院,MIPS源程序框架,.data伪指令用来定义程序的数据段,程序的变量需要在该伪指令下定义。

汇编程序会分配和初始化变量的存储空间。

.text伪指令用来定义程序的代码段。

.global伪指令声明某一个符号为全局变量,全局符号可被其他的符号引用。

MIPS汇编程序框架,30,北方工业大学信息学院,数据段,MIPS汇编程序框架,31,北方工业大学信息学院,数据段,

(1)var1:

.word3#声明一个word类型的变量var1,同时给其赋值为3

(2)array1:

.bytea,b#声明一个存储2个字符的数组array1,并赋值a,b(3)array2:

.space40#为变量array2分配40字节(bytes)未使用的连续空间(4)str1:

.ascii“Helloworldn”#声明一段字符串,内容为:

”Helloworldn”,数据声明的格式为:

变量名:

数据类型变量值,MIPS汇编程序框架,32,北方工业大学信息学院,代码段,MIPS指令的基本格式如下:

标号:

操作符操作数#注释其中标号部分可选,用于标记内存地址,若定义标号则后面必须添加冒号。

操作符用于定义操作(如add,sub等)。

操作数:

用于指明操作需要的数据。

可以是寄存器、内存变量或常数。

大多数指令有3个操作数。

MIPS汇编程序框架,33,北方工业大学信息学院,系统调用Syscall,.data#数据段str:

.asciizHelloMIPSAssmbly!

n#定义字符串str.text#代码段la$a0,str#将str的地址赋给寄存器$a0li$v0,4#将寄存器$v0赋值为4syscall#调用syscall,打印字符串strli$v0,10#将寄存器$v0赋值为10syscall#调用syscall,退出程序,MIPS汇编程序框架,34,北方工业大学信息学院,系统调用Syscall,MIPS汇编程序框架,35,北方工业大学信息学院,【例5-2】程序的功能是从键盘读出一个字符并显示,试用MIPS汇编语言写出。

data#数据段msg_read:

.asciizGivenumber:

#定义字符串msg_readmsg_print:

.asciiznNumber=#定义字符串msg_print.text#代码段la$a0,msg_read#将msg_read地址赋给寄存器$a0li$v0,4#将寄存器$v0赋值为4syscall#调用syscall,输出字符串msg_readli$v0,5#将寄存器$v0赋值为5syscall#调用syscall,读取一个整型move$t1,$v0#将寄存器$v0的值赋给寄存器$t1li$v0,4#将寄存器$v0赋值为4la$a0,msg_print#将msg_print地址赋给寄存器$a0syscall#调用syscall,输出字符串msg_printli$v0,1#将寄存器$v0赋值为1move$a0,$t1#将寄存器$t1的值赋给寄存器$a0syscall#调用syscall,打印一个整型li$v0,10#将寄存器$v0赋值为10syscall#调用syscall,退出程序,5.4MARS调试工具介绍,MIPS模拟器,37,北方工业大学信息学院,MARS是MIPSAssemblerandRuntimeSimulator(MIPS汇编器和运行时模拟器)的缩写能够运行和调试MIPSMARS采用JARA开发,需要JARA运行库http:

/courses.missouristate.edu/KenVollmar/MARS/轻量级的IDE,只有4M,MIPS模拟器界面,38,北方工业大学信息学院,32个寄存器,代码编辑区,运行情况和结果显示,代码段,数据段,存储器空间使用约定,39,北方工业大学信息学院,.datastr:

.asciizHelloMIPSAssmbly!

n,.text.globlmainmain:

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 理学

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

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