关闭
关闭
首页 > 嵌入式基础教程 > 技术教程
MIPS汇编语言学习 首先是: next_a: bne $v0, ‘a’, next_b #依次判断该字符是否是a,b,c,……,A,B,C,……,1,2,3,……,9,0。若是,则输出对应的串,跳转到main,进行下一次输入与判断,若都不是,则输出‘*’,跳转到main,进行下一次输入与判断。 li $v0, 4 #下同,不再赘述 la $a0, a syscall j main .asciiz 表示输出一个字符串,以“\n“换行符结尾。 .data 定义变量 a: .asciiz “Alpha ”。 等于: String a=“Alpha ”; MIPS汇编程序设计 实验目的 1. 掌握QTSPIM的调试技术 2. 了解MIPS汇编语言与机器语言之间的对应关系 。 3. 掌握MIPS汇编程序设计 4. 了解C语言语句与汇编指令之间的关系 5. 熟悉常见的MIPS汇编指令 6. 掌握程序的内存映像 实验任务 用汇编程序实现以下伪代码:要求采用移位指令实现乘除法运算。 int main() { int K, Y int Z[50] Y = 56; for(k=0;k《50;k++) Z[K] = Y - 16 * ( K / 4 + 210) } 汇编源程序设计 算法设计 .data #定义用户数据段 Z: .space 200 .text #定义用户程序段 main: #给K,Y分配寄存器并赋初值 #给数组Z[K]分配寄存器 #计算Y - 16 * ( K / 4 + 210) 并将结果存入一个寄存器 #将上述寄存器中的结果写入Z[K] done: li $v0,10 syscall 源程序代码 .data #定义用户数据段 z: .space 200 .text main: la $s0,z #$s0=addrz li $t0,0 #$s1=k=0 li $t1,56 #$s2=y=56 loop: slTI $t2,$t0,50 #判断k是否于50 beq $t2,$0,done #当k大于等于50,跳转 srl $t3,$t0,2 #k/4 addi $t3,$t3,210 #k/4+210 sll $t3,$t3,4 #16*(k/4+210) sub $t3,$t1,$t3 #y-16*(k/4+210) sw $t3,0($s0) #写进z[k] addi $s0,$s0,4 #地址移一位 addi $t0,$t0,1 #k加1 j loop #循环 done: li $v0 10 syscall 源代码调试过程 1. 装载程序。 点击file,选择ReiniTIalize and Load File,把写好的文件导入QtSpim。 2. 点击“运行”,如图:  
得到实验结果如下: 数据段映像:  
仿真器在真正的用户代码段内增加了部分代码以实现程序运行控制,该仿真器中所有用户代码都必须存储在地址为0x00400000~0x00440000的范围之内。用户代码段将每一行代码的地址,及其对应的机器码都显示给用户,为方便查看,还给出了反汇编得到的汇编指令,而且在注释中显示了用户编写的源代码。通过地址部分信息,我们知道每一行代码的地址都是前一行代码地址+4,即PC+4,机器指令,例如 [00400044] 012b5822 sub $11, $9, $11 ; 14: sub $t3,$t1,$t3 其中的机器码012b5822=000000 01001 01011 01011 00000 100010B。第一段六位和第六段六位分别为000000B和100010B表示该指令的功能为sub指令,第二段5位为01001B表示第一个源操作数寄存器的编号($t1的编号为9),第三段5位为01011B表示第二个源操作数寄存器的编号($t3的编号为11),第四段5位为01011B表示目的操作数的寄存器编号($t3的编号为11),反汇编得到的汇编指令也很明显地指出了这些数据代表的意义;第五段在这条指令中没有意义。 其他行数据所表达的意义以此类推同样可以得到。 Z[k]数据内存映像:  
整理成表格形式如下:  
可以看到Z[K]的首地址为10010000,且每个内存中的四个数值都是一样的,且随着地址规律地增加,数值在规律地递减。 实验总结 通过本次MIPS汇编程序设计的实验,我再次巩固了理论课所学习的程序代码的编写及书写规范,并将其付诸于实践。 同时,我也基本掌握了Qtspim软件的应用和程序的调试工作,并更深刻地理解了汇编语言中机器指令的执行方法,对以后的学习定会有莫大的帮助。 代码的编写过程,关键是先整理编写的思路,然后根据课本上的代码指令编写程序。编译过程中,当然会遇到一些困难,但是通过思考和与老师同学的交流,都轻松解决了。 总的来说,本次实验做得还比较轻松,原理方面容易掌握,操作方面也容易实验。望以后的实验也一样顺利。 MIPS汇编范例 mips汇编语言之实现swap函数 收藏 此程序用来交换两个整数 已在pcspim下编译通过 ## ################################################## # #### programed by stevie zou ### # purpose:to swap two values # ##### 10-15-2008 ######### ################ ## ############# text segment ############### .text .globl main
换一批

延伸乐虎国际娱乐手机版

[疯狂史] 值得纪念!MIPS处理器30周岁了

值得纪念!MIPS处理器30周岁了这是一篇充满了陈年味道的新闻,因为我们要介绍的事情发生于1986年的1月份,也就是正好30年之前。当时,一支由来自斯坦福大学的研究人员和“硅谷退休老兵”组成的团队,创造出了彻底改变我们今日所看到的现......关键字:MIPS 处理器 芯片 计算机

[行业资讯] Lauterbach TRACE32 工具的新增支持功能可简化MIPS和ARM CPU结合设计的调试工作

Lauterbach TRACE32 工具的新增支持功能可简化MIPS和ARM CPU结合设计的调试工作21ic讯 和领先的微处理器开发工具供应商 Lauterbach 宣布,两家公司已开始合作使 Lauterbach 广受欢迎的 TRACE32 工具能够更轻松地为 MIPS 异构 CPU 系统或结合 MIPS CPU 与......关键字:Lauterbach TRACE32 MIPS ARM CPU

[新鲜事] ofo发布新一代共享单车ofo Curve:配置大升级

ofo发布新一代共享单车ofo Curve:配置大升级随着共享单车普及城市越来越多,自身产品也在随之升级。今日,共享单车平台ofo联合700Bike发布了最新一代共享单车ofo Curve。新车较老款配置有了较大升级,包括车胎、座椅、链条、链罩等方面都有提升,更加好骑、耐用。......关键字:共享单车 ofo Curve
条评论

我 要 评 论

网友评论

大家都爱看

  • 华为的优势,就是自家的各种自研芯片

    CPU即中央处理器,是一块超大规模的集成电路,是一台计算机的运算核心和控制核心。它的功能主要是解释计算机指令以及处理计算机软件中的数据。
    2017-08-16
  • 你不知道Ryzen芯片有多火?来看看AMD的股票吧

    据外媒报道,美银美林认为,AMD最新的Ryzen芯片可能会引发一波销售浪潮,进而推动该股继续上涨。它认为AMD股票还有40%以上的上涨空间。

    2017-08-16
  • 国产芯片:厚积薄发,强势崛起

    关于国产芯片,是近几年才有崛起的势头,可是在几年之前,国产芯片还处于“沉睡”的状态,尤其是手机芯片,几乎大部分都依赖进口,而且国外的市场几乎被高通和联发科所垄断,也就展讯还在市场边… 2017-08-16
  • 为了数据安全 大疆无人机增加隐私飞行功能

    大疆周一表示,在美国陆军因为“网络缺陷”而要求其成员停用大疆无人机后,这家中国无人机制造商将加强无人机的数据安全性。 大疆政策和法务副总裁布伦丹&middot… 2017-08-15
  • Intel代工 展讯发布14nm SC9853I手机SoC

    SC9853I采用的Intel的14nm FinFET制程,架构为8核64位Airmont架构,主频1.8GHz,GPU为Mali-T820 MP2,号称面向799~1299元档次的手机。… 2017-08-15