簡體   English   中英

如果在MIPS中超過.space會發生什么?

[英]What will happen if .space is exceeded in MIPS?

我是匯編編程的新手,並試圖通過遵循別人的代碼來學習。 因此出現了一個問題,如果我們超出.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

在實際程序中,通常您的代碼將與其他也會鏈接到.data代碼鏈接,因此input+4將是其他一些label +保留空間的位置。

如果不是,則.data所在的內存映射可能是虛擬內存頁面的總數,因此實際上存在未使用的填充,直到4096字節的倍數為止。 (但這僅適用於使用虛擬內存的系統;否則,其他部分可能會在此之后開始;鏈接后檢查其他符號的地址)

特別是在MARS上,請參閱設置->內存配置以准確查看每個部分在內存映射中的開始位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM