我正在學習使用MIPS和MARS模擬器的彙編語言的基礎。 標題包含我的問題,但我會試着用一個例子來擴展它。 假設我們想從鍵盤讀取一個字符串(最多200個字符)。我們要繼續的方式來自輸入的字符串,它們應該存儲在哪裏,動態還是靜態數據?
1)我們分配的靜態數據分段201個字節,執行系統調用來讀字符串,然後通過「串」地址
.data
string: .space 201
.text
li $v0, 8
la $a0, string
li $a1, 201
syscall
2)我們把它請求由sbrk函數(唯一可用於MARS)堆上的201個連續字節,然後我們用輸入字符串填充它們。
li $v0, 9
la $a0, 201
syscall
move $s0, $v0
li $v0, 8
move $a0, $s0
li $a1, 201
syscall
這兩種方法的優缺點是什麼?我總是在MIPS例子中看到第一種方法,但我無法理解第二個未使用的wya。
感謝提前:)
示例不使用第二種方法只是簡單地保持示例。真正的程序可能會使用任何一種方法 – markgz 2013-04-30 02:07:46