.global main
.data
str0:
.ascii "Input two integers: \000"
str1:
.ascii "%d%d\000"
str2:
.ascii "The sum of %d and %d is %d. \012\000"
add:
addiu $sp, $sp, -12
sw $ra, 8($sp)
sw $fp, 4($sp)
move $fp, $sp
add $v0, $a0, $a1
move $sp, $fp
lw $fp, 4($sp)
lw $ra, 8($sp)
addiu $sp, $sp, 12
j $ra
nop
main:
addiu $sp, $sp, -40
sw $ra, 36($sp)
sw $fp, 32($sp)
move $fp, $sp
la $a0, str0
jal printf
nop
la $a0, str1
addiu $a1, $fp, 28
addiu $a2, $fp, 24
jal __isoc99_scanf
nop
lw $a0, 28($fp)
lw $a1, 24($fp)
jal add
nop
la $a0, str2
lw $a1, 28($fp)
lw $a2, 24($fp)
move $a3, $v0
jal printf
nop
move $sp, $fp
lw $fp, 32($sp)
lw $ra, 36($sp)
addiu $sp, $sp, 40
j $ranopa: .word -12 这条指令。是分配一个word类型的空间给变量a,并初始化成-12。其具体的地址,在编程的时候“不知道”。必须在整个
汇编程序汇编完之后,连接,并可能“重定位”,这些变量的地址判坦老才会真正知道。 编译时,
开发工具
通常都会生成类似于“.map”和“.lst”之类的文件信贺,里面会有详细的变量和函数之类的地址信息。具体文件,得查阅MIPS汇编程序开掘升发工具的相关手册(抱歉,我手边没有)。有问题继续交流,谢谢。
实际上 MinGW 并不是一个 单纯的C/C++ 编译器,而是一套 GNU 工具集合。除开 GCC 以外,MinGW 还包含有一些其他的 GNU 程序开发工具 (比如 gawk bison 等等)。
开发 MinGW 是为了那些不喜欢工作在 Linux(FreeBSD) *** 作系统而留在 Windows 的人提供一套符合 GNU 的 GNU 工作碧巧环境。
所以,使用 MinGW 我们就可以像在 Linux 下一样使用 GNU 程序开发工具。
GCC 就是 MinGW 的核悔汪键心所在,GCC 是一套支持众多计算机程序语言的编译系统,而且在语言标准的实现上是最接近于标准的。并陵歼且 GCC
几乎可以移植到目前所有可用的计算机平台。(我的电脑上就还装有 DevKitPro,里面包含
欢迎分享,转载请注明来源:内存溢出