簡體   English   中英

nasm匯編堆棧上的存儲限制

[英]nasm assembly limit of storage on the stack

我正在編寫一個打印出32位數字的程序,我正在考慮將每個數字存儲在堆棧中,以利用其先進先出功能。 這就出現了問題,我可以在堆棧上存儲32位數字嗎?

我的問題是,我可以在堆棧中存儲多少位信息? 我可以推入堆棧的數量限制是多少? 我可以存儲64位數字嗎? 128? 一些任意長度?

提前致謝,

Rileyh

取決於操作系統上的一小部分,以及您使用的鏈接器上的更多內容,但您應該沒問題。 默認情況下,分配一個兆字節或更多的堆棧是很常見的,因此128個字節不算什么。 只需確保在返回之前重置堆棧指針,一切都應該沒問題。

如果您發現需要的數量超過默認值,則通常可以告訴鏈接器分配一定大小的堆棧。

它實際上沒有nasm使喚這一點,更多的是你用連接器。 所有nasm都是創建可以鏈接在一起的目標文件。

如果您使用Linux的ld鏈接器,您很可能會發現您的默認堆棧是2M。

所以,不,32字節實際上不會對它產生巨大的影響,即使你用完了堆棧,你也可以使用像ld --stack 4194304這樣的東西ld --stack 4194304它。

暫無
暫無

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

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