如果在MIPS中超过.space会发生什么?

问题描述 投票:0回答:1

我是汇编编程的新手,并试图通过跟随别人的代码来学习。所以问题出现了,如果我们超过.space保留的空间会发生什么? MARS 4.5是否会在运行时为我们分配额外的空间,否则我们将在保留之后覆盖字节?

.data
input:  .space 4
.text
li $v0, 8
li $a1, 6 #intentionally, allows to read more than 4 bytes.
la $a0, input
syscall
arrays assembly mips mars-simulator
1个回答
1
投票

在一个真实的程序中,通常你的代码会链接到其他代码,这些代码也会把东西放在.data中,所以input+4将是其他标签+保留空间的位置。

如果没有,.data所在的内存映射可能是整数个虚拟内存页面,因此有效的未使用填充直到4096字节的倍数。 (但这只适用于使用虚拟内存的系统;否则其他部分可能会立即启动;链接后检查其他符号的地址)

特别是在MARS上,请参阅设置 - >内存配置,以准确查看每个部分在内存映射中的起始位置。

© www.soinside.com 2019 - 2024. All rights reserved.