我使用MARS MIPS模擬器並且有一個特定的任務,用內存中主Ascii字符串中的另一個字符串更改子字符串。但是,模擬器將這3個相鄰的內存放在內存中。當我將主字符串的字符移到右側時(如果第二個字符串比第一個字符串長),它實際上會覆蓋那些子字符串。我能否聽到一些關於如何解決這個問題的想法。MIPS ascii子字符串內存覆蓋
0
A
回答
0
在它們之間添加一些空的空間。 ;)
str1: .asciiz "I'm string one"
some_space: .space 40
str2: .asciiz "I'm the second string"
other_space: .space 40
str3: .asciiz "I'm the last string"
guess_what: .space 40
如果你不能做到這一點,與上述.space
),你複製你的字符串聲明瞭三個目的緩衝區(總,然後直接進行編輯,。
編輯
可以在兩個緩衝區修改「主」的字符串,你仍然會覆蓋子,但你不必理會,因爲你已經得到了他們的副本別的地方,所以當把這些子。在實踐中,一旦你有了你自己的子串副本,你可以愉快地忘記原來的並覆蓋它們(如果需要的話),用作參考你得到的副本。
也許這是你所能做的。如果你沒有足夠的空間是不可能發明其他的。你必須重寫一些東西。順便說一句,修改'主'字符串後,你可以放置你的副本,所以調用者仍然可以找到子字符串。
+0
其實我正在寫一個子程序,這個子程序是從一些主要調用者調用的,這不是我的工作來解決這個問題。我需要確保不會發生重寫。感謝您的回答,我非常感謝。但是,您能否對這些緩衝區進行更具體的描述? – zmlyglt 2011-04-05 21:47:00
相關問題
- 1. 內存被覆蓋mips
- 2. 字符串覆蓋其他字符串
- 3. 生成一個字符串的所有覆蓋子字符串
- 4. Lua覆蓋#字符串
- 5. awk print覆蓋字符串
- 6. 覆蓋部分字符串
- 7. 當讀取字符串時,內存覆蓋c
- 8. MIPS覆蓋/存儲變量值
- 9. MIPS:如何在動態內存(堆)中存儲字符串
- 10. 如何使用動態內存在MIPS中存儲字符串?
- 11. 覆蓋默認連接字符串
- 12. re.sub()覆蓋我的字符串
- 13. strcat會覆蓋我的字符串
- 14. 我該如何覆蓋字符串
- 15. C字符串保持相互覆蓋
- 16. 覆蓋字符串中的屬性
- 17. 覆蓋java字符串方法
- 18. Python中的字符串覆蓋優化
- 19. 如何覆蓋Java中的字符串?
- 20. strncpy覆蓋現有的字符串
- 21. 訪問衝突覆蓋C字符串
- 22. strtok()覆蓋其源字符串
- 23. Java:覆蓋受保護的字符串
- 24. 如何將stdin覆蓋爲字符串
- 25. Ruby字符串數組覆蓋自己?
- 26. 覆蓋字符串屬性問題
- 27. KML覆蓋作爲字符串
- 28. Model Admin Search - 覆蓋搜索字符串
- 29. 覆蓋等於和比較字符串
- 30. 返回字符串形式覆蓋類
標記爲家庭作業,如果它是作業。 – 2011-04-06 21:39:49