Alex Li的学习笔记

不想学习…

上一节:https://lixu.cc/major/mips-pre.html

数组

在MIPS代码中,一般会分为两部分,.data部分.text部分,我们前面写的代码都属于.text部分,但是当我们需要使用数组时,则要使用.data段。

MIPS本身没有专门的“数组”类型,数组其实就是连续内存空间中的一组数据。通过给同一类型的变量分配连续的内存空间实现。在.data段定义数组,实际上是为多个相同类型的数据分配连续内存。

定义数组:

可以以定义数组初始值和定义空间大小两种方法来初始化数组:

.data
array: .word 10,20,30,40,50 # 定义一个大小为5的整型数组
array2: .space 20  # 20字节 = 5个int(4字节int)

其中arrayarray2为设置的数组名字。

阅读全文


下一节:https://lixu.cc/major/mips-pre-2.html

基本操作

赋值

ori指令:将t2寄存器的值赋值为100,其实际含义是给$t2赋值为100或上0后的结果。

ori $t2,100

li伪指令:伪指令的意思是不是原生MIPS硬件指令,汇编器会把它翻译成一条或多条真正的指令,其实际含义是将$t1寄存器赋值为100。

li $t1,100

传值

move指令:这条指令的意思,就是将t2寄存器的值传给t1寄存器,同时t2寄存器中的值不变,与C语言中b=a的含义基本一致。

move $t1,$t2

阅读全文