MIPS中的符号地址与标签 [英] Symbolic Address vs Label in MIPS

查看:20
本文介绍了MIPS中的符号地址与标签的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我只想确保我的定义准确。程序标签只是符号地址的另一个术语,还是不同的、更具体的东西?

推荐答案

基本上是这样的;另请参阅MIPS labels storage location以了解有关符号是引用内存地址的方式的更多信息。它们非常有用,可以避免手动重新计算每个循环顶部的数字地址(或者实际上距离相对分支的距离)。

在无法计算装配时间并且必须推迟到链接时间的情况下,它们也很有用。


术语:标签定义符号。符号也可以通过其他方式定义,但通常由标签定义。

foo:单独(或在行首)是标签

foo符号,您可以从其他地方引用,如jal foobne foo。或使用la $t0, foo

将的地址放入寄存器

您甚至可以引用其他源文件中的符号来获取导出的符号,以便它们最终出现在汇编器从ASM源代码创建的目标文件(.o)的符号表中。(例如,您使用.global foo导出foo,而不是仅将其作为文件本地符号。)

在GAS语法(MARS主要使用的语法)中,定义符号的其他方法是使用.set指令或.weakref来定义一个标签,该标签是另一个标签的别名。或.comm在BSS中保留一些空间,并将符号名称指向它。(但没有使用.bss指令实际使.bss成为当前节,因此这不是标签。)

这篇关于MIPS中的符号地址与标签的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆