汇编程序语法结构
代码示例讲解
.text
main:
ADDIU $r2,$r0,A
ADDIU $r4,$r0,3
loop:
LW $r3,0($r2)
ADD $r1,$r1,$r3
ADDIU $r2,$r2,4
ADDIU $r5,$r0,1
BNE $r5,$r4,loop
TEQ $r0,$r0
.data
A: .word 0, 4, 8
上面这段汇编代码实现的是对数组A中元素求和。其中:
.text下面是代码段,.data下面是数据段。
在.data中使用了伪指令.word:
该指令定义了一个数组A。
在代码段中:
ADDIU $r2,$r0,A代表将数组A的初始地址赋给r2 。
ADDIU $r4,$r0,3代表r4赋值为3,即数组A的长度,这是为了规定循环次数。
这条指令表示从数组A中取一个数Ai
这条指令表示将Ai和之前的累加值相加。r1存储累加值。
这条指令表示将r2中的地址加4,即加4字节。因为前面LW命令取的是32位(4字节)值,所有地址加4就是指向数组A中下一个元素。
这条指令中r5是用来计数的,判断是否跳出循环。
这条指令表示循环次数r5是否等于设定值r4(值为3),如果不等则跳到 loop段继续执行,相等则执行下一条指令。
这条指令表示结束程序。