计算机科学与工程学院MIPS汇编语言课堂提问.docx

上传人:lao****ou 文档编号:457728 上传时间:2023-11-25 格式:DOCX 页数:21 大小:34.21KB
下载 相关 举报
计算机科学与工程学院MIPS汇编语言课堂提问.docx_第1页
第1页 / 共21页
计算机科学与工程学院MIPS汇编语言课堂提问.docx_第2页
第2页 / 共21页
计算机科学与工程学院MIPS汇编语言课堂提问.docx_第3页
第3页 / 共21页
计算机科学与工程学院MIPS汇编语言课堂提问.docx_第4页
第4页 / 共21页
计算机科学与工程学院MIPS汇编语言课堂提问.docx_第5页
第5页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《计算机科学与工程学院MIPS汇编语言课堂提问.docx》由会员分享,可在线阅读,更多相关《计算机科学与工程学院MIPS汇编语言课堂提问.docx(21页珍藏版)》请在第一文库网上搜索。

1、MIPS汇编语言序言:Q1:和高级语言相比,低级语言有何优缺点?优点:(1)可以直接访问系统接口,汇编程序翻译成的机器语言程序效率高;(2)直接控制硬件,充分发挥硬件功能;(3)汇编语言程序代码质量高,占用内存空间少,执行速度快。缺点:编写难,难修改,难维护。Q2:为何需要学习汇编语言?(1)便于理解如何更好地编写高级语言代码;(2)有利于深入了解程序执行过程;(3)有助于对高级语言程序机制的理解;Q3:汇编源程序和汇编程序分别是什么?汇编源程序是用汇编语言编写的程序;(2)汇编程序是将汇编源程序转化为机器能识别的机器代码;Q4:根据机器指令体系,CPU分为哪两大类?典型代表有哪些?(1)CP

2、U两种架构:CISC(复杂指令集计算机),RISC(精简指令集计算机)(2)CISC:Intek80X86、8086;(3)RISC:ARM系列;架构Q1:学习MIPS架构需要了解哪四个主要方面的内容?(1)寄存器用途;(2)指令集;(3)寻址方式;(4)数据类型;Q2:数据类型和高级语言中的数据类型有何不同?(1)汇编语言中指:数据长度,有无符号等;(2)高级语言中:字符型、整形等;Q3:MIPS架构中通用寄存器有多少个?一个寄存器多少位?(1)3232Q4:用于传递函数输入实参的寄存器是哪些?(1)aOa3编号:47;Q5:用于存放函数返回值的寄存器是哪些?(I)Vo和VI编号:2和3;Q

3、6:在MIPS程序中,函数Main调用函数A,函数Main中有一个t寄存器存放某个重要值,但函数A中有改变t寄存器值的指令,若不希望函数A返回后t寄存器值被改变,根据编程约定,应该如何保证to寄存器值不变。(1)main中入栈;Q7:和上题类似,若函数Main使用s寄存器存放某个重要值,该如何做呢?(1)在A中入栈;Q8:保留给OS使用的寄存器是哪些?保留给汇编程序使用的寄存器是?在这段指令中有哪个?(1)k和k1编号:26和27;(2)at编号:1;Q9:用于存放函数的返回地址的寄存器是哪个?存放栈顶地址的寄存器是哪个?(1)ra编号:31;(2)sp编号:29;Q1O:HI寄存器用于存放什

4、么数据?1O寄存器用于存放什么数据?(1)HI:乘积的高32位、余数;(2)1O:乘积的低32位、商;Q11:简述汇编源程序执彳亍过程?(1)汇编源程序-目标程序-可执行程序;Q12:程序计数器寄存器PC存放什么值?为何一次递增4?何时递熠?(1)存放将要取出执行的指令所在内存单元的地址;(2)32位MPIPS架构中定义的所有指令长度都为32位,因此每条指令取出后,PC增量值为4;Q13:画一个64KB的存储器。先计算所需内存单元数;再执笔画;Q14:现有一个如下存储器,在对齐要求下,取出地址为0003的一个字节。取出地址为0002的一个半字。取出地址为0001的一个字。Q15:内存分为几个部

5、分?地址范围、地址空间、数据段、堆栈段;Q16:指令寄存器IR存放什么?MIPS指令有几种格式?(I)IR存放最近一条取出的指令;(2)MIPS指令三种格式:R、I、J;Q17:R指令有几段?举一个指令例子。(I)R指令一共有六段:操作码(OP)寄存器(Srt、rd)移位数值、功能号;Q18:1指令有几段?举一个指令例子。(1)I指令一共4个域;(2)addi$rt,$rs,imm语意:Rrt=Rrs+(IR15)16IR15-Q19:J指令有几段?举一个指令例子。(I)J指令一共2个域;(2“target;Q20:结合指令动画理解三种格式指令并描述指令执行过程。(1)IF(取指)从指令缓存中

6、获取下一条指令,放入IR;(2)RD(从寄存器堆读)解码指令,读取寄存器堆中相应寄存器的内容;(3)A1U(运算)在一个时钟周期内完成A1U的运算,浮点和乘除法除外;(4) MEM(访问数据缓存)按照指令给定的地址,将寄存器的值读入/写入数据缓存;(5)WB(写回)操作完成后,将得到的值保存到寄存器堆。寻址方式和指令集:Q1:操作数寻址方式有哪几种?分别是什么含义?(1) 寄存器寻址、立即数寻址、存储单元寻址(3种);(2)寄存器寻址:在指令中指定寄存器名就是寄存器寻址;立即数寻址:满足了指令中需要常数的要求(I指令格式);存储单元寻址:CPU访问主存只能通过取数/存数(”1oad/Store

7、)指令;Q2:采用立即数寻址的指令是什么格式?采用寄存器寻址的指令是什么格式?(1)1指令格式;(2)R指令格式;Q3:采用存储单元寻址的指令是什么格式?什么写法?可以直接访问内存的指令有哪些?(1)1oad/store架构;(2)取数据字指令Iwrtzoffset(rs),存数据字指令swrtzoffset(rs);(3)Q4:为何需要目标地址寻址?(1)Q5:寄存器间接寻址为何称为间接?采用寄存器间接寻址的指令是什么格式?有哪些指令(1)因为寄存器间接寻址是将指定的寄存器内容为地址,由该地址所指定的单元内容作为操作数;(2) R指令格式;Q6:伪直接寻址为何称为伪?采用伪直接寻址的指令是什

8、么格式?有哪些指令?(1)由于目标地址的高4位不会改变,导致指令的学瞧范围比整个寻址空间小;(2)指令格式:J指令格式;(3)例:jtarjet;Q7:相对寻址为何称为相对?采用相对寻址的指令是什么格式?如何计算Imm?(1)相对寻址以程序计数器的当前值为基地址,指令中的地址标号作为偏移量,将两者相加后得到操作数的有效地址。(2)I指令格式;(3)Imm=(y-x-4)2;y-x是目标地址和当前超阵专指令的差值;Q8:从内存Mem取数据的指令有哪些?它们是什么种类的指令?(1)取有符号字节类型数据指令格式Ib;(2)取无符号字节类型数据的指令Ibu;(3)取有符号半字数据类型指令Ih(4) 取

9、无符号半字类型数据指令IhU(5) )取字类型数据的指令Iw(6) )加载立即数到寄存器指令Iui(7) 存数据指令sbshsw;(8) 有关专用寄存器的指令mfhimf1omthimt1o(9) 相关宏指令;Q9:带U和不带u指令的区别是什么?为何没有Iwu?(1)带U指令对象为无符号型数据;不带U的为有符号型数据;(2)1W针对字类型数据字类型数据没有符号位;Q1O:把寄存器中数据存放到Mem的指令有哪些?它们是什么种类的指令?(1)sbshsw(2)R型指令Q11:把HI寄存器值传送到通用寄存器的指令是什么?该指令是什么格式的?把通用寄存器值传送到1O寄存器的指令是什么?(1)mfhir

10、dest(2)mf1oRdest(3)mthiRsrc(4)mt1oRsrcQ12:什么是宏指令?(1)宏指令是汇编语言程序中的一种伪指令;宏指令是代表某功能的一段源程序;Q13:如何把32位Imm存放到Mem中?(工)用Ia或者Ii指令;Q14:如何把16位Imm存放到Mem中?(1)Q15:写出宏指令Ii$tOfOxffffefff的实现代码。(1)Q16:通用寄存器之间传送数据的宏指令是什么?其如何实现?(1)moveRdest,Rsrc(2)将Rsrc寄存器中的数据复制到Rdest寄存器中;Q17:加法指令包括哪些?分别是什么类型的指令?带u和不带u有何区别?(1)add(R指令)ad

11、du(R指令)addi(I指令)ddiu(I指令)Q18:减法指令包括哪些?分别是什么类型的指令?(1)sub(R指令)subu(R指令)Q19:减法指令为何不像加法指令那样有带i型指令?如何实现减去一个立即数?(1)减去一个立即数可以用加上一个负的立即数来代替;Q20:与减法指令相关的宏指令有哪些?(1)求补(neg)取绝对值(abs)Q21:求补宏指令能否对-2八31求补?(1)不能会越界;Q22:乘/除法指令包括哪些?是什么类型的指令?(1)乘法(mu1tmu1tu)(2)除法(divdivu)都是R指令;Q23:与乘法指令相关的宏指令有哪些?(1)mu1Q24:与除法指令相关的宏指令有

12、哪些?(1)divdivuremremuQ25:与运算指令包括哪些?是什么类型的指令?(1)and(R指令)andi(I指令)Q26:或运算指令包括哪些?是什么类型的指令?(1)。(阳旨令)。日(1指令)Q27:异或运算指令包括哪些?是什么类型的指令?(1)xor(R指令)Xori(I指令)Q28:或非指令含义是什么?非运算如何实现?(1)或运算加非运算Q29:逻辑左移指令包括哪些?是什么类型的指令?(1)S11(R指令)SHV(R指令)Q30:逻辑右移指令包括哪些?是什么类型的指令?(1)SH(R指令)SrIV(R指令)Q31:算术右移指令包括哪些?是什么类型的指令?(1)Sra(R指令)s

13、rav(R指令)Q32:为何没有算术左移指令?如何实现算术左移?(1)逻辑左移和算术左移在操作上是一致的;(2)算术左移:移动T苏寸应有符号数乘2,在低位的空位补0;Q33:循环左移宏指令如何实现?(1)循环移位:移出的二进制位不丢失,填补到另一端;(2)循环左移宏指令:ro1rd,rs,rtsa;实现:subu$at,$0,$rt;计算32-r%得出值xsr1v$atz$rs,$at;逻辑右移X位s11vrd,rs,rt;orrd,rd,at;Q34:循环右移宏指令如何实现?(1)rorrd,rs,rt/saQ35:条件设置指令包括哪些?是什么类型的指令?(1)s1t/siturd,rs,r

14、t(2)s1ti/s1tiurd,rs,immQ36:条件设置宏指令有哪些?如何实现的?(1) seqrd,rszrt(2) sgt/sgturd,rs,rt(3) sge/sgeurd,rs,rt(4) s1e/s1eurd,rs,rt(5) snerd,rs,rtQ37:无条件转移指令包括哪些?是什么类型的指令?(1) I指令(伪直接寻址)j1abe1;ja11abe1;(2) R指令(寄存器间接寻址)jrjs;ja1rrd,rs;(3)宏指令bIab1e;实现:bgez$O;1ab1e;Q38:条件转移指令包括哪些?是什么类型的指令?判断两个寄存器$0和$S1中值符号是否相同的指令(1)

15、I指令(相对寻址):beq/bners,rt,1abe1bgezbgeza1bgtzb1ezb1tzb1tza1rs,1abe1(3)宏指令:beqzrs,1abe1实现:beqrs,$0,1abe1bge/bgeurs,rt,1abe1实现:s1ts1tu$at,rs,rtbeq$at,$0,1abe1bgt/bgturs,rt,1abe1实现:s1ts1tu$at,rt,rsbne$at,$0,1abe1(为何不和1匕俄相等?)b1e/b1eurs,rt,1abe1实现:s1ts1tu$at,rt,rsbeq$at,$0,1abe1b1tb1turs,rt,1abe1实现:s1ts1tu$at,rs,rtbne$at,$0,1abe1bnezrs,1abe1实现:bners,$0,1abe1Q39

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

当前位置:首页 > 应用文档 > 工作总结

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服