簡體   English   中英

嘗試在MIPS中使用字符串和整數填充數組時遇到錯誤?

[英]Getting an error when trying to fill an array with Strings and ints in MIPS?

因此,我需要在MIPS中用10條“記錄”填充一個數組,其中包括員工的姓名,年齡和薪水。 員工姓名最多40個字符,年齡和薪水均應為整數。 但是,在測試我編寫的該循環時,經過前5位員工並鍵入“ Emp6”並按Enter鍵后,我總是在第18行收到“無效的整數輸入(系統調用5)”,似乎看不到搞清楚為什么。 任何幫助將不勝感激!

測試輸入:

Emp1
1
1
Emp2
2
2
Emp3
3
3
Emp4
4
4
Emp5
5
5
Emp6

錯誤代碼:

Error in line 18: Runtime exception at 0x00400020: invalid integer input (syscall 5)

Go: execution terminated with errors.

您的主要問題似乎是read_string系統調用期望$a1的緩沖區大小,但是您將其用於循環計數器。 因此,您最終會用完空間,並且輸入緩沖區中會留有未處理的文本,隨后后續的read_int會讀取這些文本,並且這些文本會read_int

進一步的問題是,您不斷增加$a0但在尋址中卻沒有考慮到這一點。 sw $v0, 0($a0)也沒有多大意義,該字符串已被讀入內存, $v0沒什么有趣的。

暫無
暫無

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

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