首页 > 嵌入式基础教程 > 技术教程

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

换一批

延伸阅读

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

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

21ic讯 和领先的微处理器开发工具供应商 Lauterbach 宣布,两家公司已开始合作使 Lauterbach 广受欢迎的 TRACE32 工具能够更轻松地为 MIPS 异构 CPU 系统或结合 MIPS CPU 与......

关键字:Lauterbach TRACE32 MIPS ARM CPU

[趣科技] 接近绝对零度:世界上最冷的电子芯片

接近绝对零度:世界上最冷的电子芯片

不过,科学家从未停止尝试。巴塞尔大学的物理学家曾经提出,利用磁冷却使纳米电子设备的温度降到接近绝对零度,这种方法能够实现破纪录的低温。磁冷却的原理是这样的:在绝热条件下,当外加磁场逐渐减小时,系统会渐渐冷却。在减小磁场前,磁化产生的热量需要......

关键字:电子芯片 绝对零度

[新鲜事] 世界卫生组织将“游戏成瘾”列入精神疾病,任天堂索尼激烈反对...

世界卫生组织将“游戏成瘾”列入精神疾病,任天堂索尼激烈反对...

北京时间6月20日早间消息,美国娱乐软件协会(ESA)就世界卫生组织将“游戏成瘾”列入精神疾病的做法提出激烈批评,认为他们列举的证据不够充分,而且可能引发误诊。ESA呼吁世界卫生组织在将游戏成瘾正式列入......

关键字:游戏 任天堂 索尼

[真心话] 软件开源活动领航人Eric Raymond:C语言时代行将落幕

软件开源活动领航人Eric Raymond:C语言时代行将落幕

这几天来,我(Eric Raymond)在思考那些正在挑战C语言的系统编程语言领袖地位的新潮语言,尤其是Go和Rust。思考的过程中,我意识到了一个让我震惊的事实——我有着35年的C语言经验。每周我都要写很多C代码,但是我已经记不清楚上一次......

关键字:Eric Raymond C语言

[疯狂史] 黄明威:一个从阿里离开后又回来的人

黄明威:一个从阿里离开后又回来的人

阿里人”这三个字,黄明威如今背了14年,也自豪了14年。如果不是中途下了“车”,那就是足足的18年了。......

关键字:黄明威 阿里巴巴

[真心话] 单片机大师郭天祥的大学六年,看看与你的有何不同?

单片机大师郭天祥的大学六年,看看与你的有何不同?

在哈尔滨工程大学五年,我在学校电子创新实验室呆了四年,这四年里创新实验室给我提供了良好的学习环境和完善的实验设备;在这里与众多电子爱好者的交流中,使我学到了更多的专业知识;在学校老师们的教导下,让我学会了如何做一名合格的大学生。......

关键字:单片机 郭天祥

[疯狂史] 电子工程师的八种级别

电子工程师的八种级别

当你60岁时呢?对于那些渴望成为工程师的工程师来说,最好的职业生涯出路是什么呢?开个玩笑,如果我告诉你,工程师可分为八种级别,你会怎么想呢?......

关键字:电子工程师
条评论

我 要 评 论

网友评论

大家都爱看

  • 扇出型晶圆级封装的优势和挑战!

    我们有能力创造一些能保持前代性能并且更好更小的电子设备,例如今天的可穿戴设备、智能手机或平板电脑,这是由于很多因素超过摩尔定律而快速发展,从而能够从底层的嵌入组件发展到今天把它们封…

    2018-03-29
  • Xilinx推出革命性的新型自适应计算产品

    自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX)),近日宣布推出一款超越FPGA功能的突破性新型产品,名为ACAP(Adaptive Compute Acceleration Platform,自适应计算加速…

    2018-03-20
  • 赛普拉斯为树莓派3 B+ IoT单板计算机提供强大稳定的无

    先进嵌入式系统解决方案的领导者赛普拉斯(纳斯达克代码:CY)近日宣布其Wi-Fi®和蓝牙®combo解决方案为全新的树莓派 3 B+(Raspberry Pi 3Model B+)IoT单板计算机提供强大稳定的无线连接…

    2018-03-20
  • 观看直播领红包,SEED-A10加速卡助力人工智能

    随着云服务器、云计算的发展,大家对硬件加速的需求越来越多,但是随着设备功耗的上升、性能需求越来越高,常规加速设备以及开始不能满足需求,因此FPGA逐渐在硬件加速中找到了自己的位置,而艾…

    2018-03-19
  • 特朗普:博通不得以任何形式收购高通

    白宫周一(3月12日)晚发出声明,川普(特朗普)总统出于“国家安全”考量、禁止新加坡博通公司(Broadcom)收购美国高通公司(Qualcomm)。

    2018-03-14