希望大神解释一下关于汇编语言MIPS

希望大神解释一下关于汇编语言MIPS,第1张

a:      .word  -12

这条指令。是分配一个word类型的空间给变量a,并初始化成-12。其具体的地址,在编程的时候“不知道”。必须在整个汇编程序汇编完之后,连接,并可能“重定位”,这些变量的地址才会真正知道。

编译时,开发工具通常都会生成类似于“.map”和“.lst”之类的文件,里面会有详细的变量和函数之类的地址信息。具体文件,得查阅MIPS汇编程序开发工具的相关手册(抱歉,我手边没有)。

有问题继续交流,谢谢。

.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 $ra

nop


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11163674.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存