MIPS汇编语言简要介绍

MIPS汇编语言简要介绍


2024年5月30日发(作者:)

MIPS

汇编语言简要介绍

一、数据类型和文法、寄存器

1、数据类型和文法

(1)数据类型:字节,byte占用8bits;半字,halfword占用2bytes(16bits);字,

word占用4bytes(32bits);双字,dword占用8bytes(64bits);

(2)一个字符需要1个Byte的空间;

(3)一个整数需要1个Word(4Bytes)的空间;

(4)MIPS结构的每条指令长度都是32bits,一个字的空间。

2、寄存器

(1)MIPS体系架构有32个通用寄存器。在汇编程序中,可以用编号0到31来表示;

(2)也可以用寄存器的名字来进行表示,例如:$v0、$v1、$s0、$sp、$ra….

(3)有两个特殊的寄存器Lo,Hi,用来保存乘法/除法的运算结果;此两个寄存器不能直

接寻址,只能用特殊的指令:mfhi和mflo来存取其中的内容。(含义:mfhi=movefromHi,

mflo=MovefromLow.)

(4)堆栈(Stack)的增长方向是:从内存的高地址方向,向低地址方向;

表格1:寄存器的编号名称及分类

寄存器编号

0

1

2、3

4-7

8-15

寄存器名称

$zero

$at

$v0,$v1

$a0-$a3

$t0-$t7

寄存器描述

0

号寄存器,其值始终为

0

(AssemblerTemporary)

Assembler

保留的寄存器

(values)

保存表达式或函数返回的结果

(arguments)作为函数的前四个入参。在子函数调用的过

程中不会被保留。

(temporaries)tinescanuse

withoutsaving.供汇编程序使用的临时寄存器。在子函数

调用的过程中不会被保留。

16-23$s0-$s7(savedvalues)-utineusingoneof

thesemustsaveoriginalandrestoreitbeforeexiting.在子

函数调用的过程中会被保留。

24、25$t8,$t9(temporaries)tinescanuse

withoutsaving.

供汇编程序使用的临时寄存器。在子函数

调用的过程中不会被保留。这是对

$t0-$t7

的补充。

26、27

28

$k0,$k1

$gp

保留,仅供中断

(interrupt/trap)

处理函数使用

globalpointer.

全局指针。

Pointstothemiddleofthe64K

blockofmemoryinthestaticdatasegment.

指向固态数据

块内存的

64K

的块的中间。

stackpointer堆栈指针,指向堆栈的栈顶。

savedvalue/framepointer保存的值/帧指针其中的值在

函数调用的过程中会被保留

returnaddress返回地址

29

30

31

$sp

$s8/$fp

$ra

二、汇编语言程序结构框架

汇编源程序代码本质上是文本文件。由数据声明、代码段两部分组成。汇编程序文件应

该以.s或.asm为后缀,在Spim模拟器中进行模拟。

1、数据声明部分

在源代码中,数据声明部分以“.data”开始。声明了在代码中使用的变量的名字。同时,

也在主存(RAM)中创建了对应的空间。

2、程序代码部分

在源代码中,程序代码部分以“.text”开始。这部分包含了由指令构成的程序功能代

码。代码以main:函数开始。main的结束点应该调用exitsystemcall,参见后文有关“表2:

系统调用的功能”。

3、程序的注释部分

使用“#”符号进行注释。每行以“#”引导的部分都被视作注释。

程序结构框架,如:

.data#数据声明部分

#...变量类型:

#字符串:

#.asciistring

#.asciizstring;以空字符null结束

#字类型:

#.wordw1,w2,...;32位,4个字节

#半字类型:

#.halfh1,h2,...;16位,2个字节

#字节类型:

#.byteb1,b2,...;8位,1个字节

#浮点数类型:

#.floatf1,f2,...;32位,4个字节

#双精度浮点数:

#.doubled1,d2,...;64位,8个字节

#空格符:

#.spacen;8位,1个字节。n个字节空间

#代码声明部分

#定义main为全程量

#主程序名称main,以下为程序代码部分

#编写的MIPS汇编语言程序是MIPS指令和伪指令的组合。

#伪指令(pseudoinstructions)是为了编程方便而对指令集进行的扩展。

.text

.globlmain

main:

#程序结束

四、MIPS指令的三种格式:


发布者:admin,转转请注明出处:http://www.yc00.com/news/1717051411a2733309.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信