mips32

    0熱度

    1回答

    我最近問了一個關於MIPS的問題,因爲我很難理解它,特別是當涉及到指針時。 我的目標是製作一個函數,它需要2個指針,一個指向一個String的開始,另一個指向它的結束(更具體地說,當我們檢測到「。」)時。然後我們開始倒轉字符串。 例如:這很好。指針1指向字符串的開頭,指針2指向String.length -1「。」 然後,我們開始交換的第一個字符與最後一個,直到我們扭轉所有的字符串,所以我們有這樣

    0熱度

    1回答

    好吧,所以我想創建一個簡單的程序來計算數字表達式。用戶給出一個整數 - 一個運算符(+, - ,*,/,%) - 然後一個整數等等,直到他輸入「=」,在這種情況下,我們打印結果。然後我們詢問用戶是否要計算另一個表達式,並根據回答,我們要麼回到開始或退出程序。當操作輸入不受支持時,程序會自動退出,或者0當運營商/或%選擇作爲輸入提供(不檢查是否是必需的號碼)。這裏是我的代碼: .data str

    0熱度

    1回答

    考慮的if..else在C的一般結構爲 if(cond) { block_if}; else { block_else}; 這將是if_else在MIPS相應的結構?

    0熱度

    2回答

    這些從C等價物的MIPS翻譯之後?如果沒有,請詳細解釋。我的教授說第一版是正確的。如果我寫了類似於第二版的指令,即使它們產生相同的輸出,我也不會得到標記。她沒有解釋爲什麼。先謝謝你 ! C代碼 if (i==j) { f = g + h ; } else f = g -h ; MIPS版本一個: bne $s3, $s4, Else add $s0, $s1, $s2 j

    0熱度

    1回答

    我是MIPS的新品牌,正在嘗試編寫Wikipedia中所述的Eratosthenes算法篩選,以查找1到1000中的所有素數。我只是按照1- 4,還沒有任何描述的改進。 這是到目前爲止我的代碼: .data array: .word 1:1000 # array[1000] = {1} (assume all are prime initially) length: .word 1000

    1熱度

    1回答

    我現在有點困惑。 MIPS中的分支指令能跳多遠? 我實際上找到了一個答案,它表示+/- 128 kByte,如果我沒有錯的話,答案將是2^21位。但我不明白這是怎麼回事。在我們在大學給出的表格中寫道,beq bne以這種方式計算PC = PC + 4 + BranchAddress。而BrachAddress本身是{14 {immediate [15]},immediate,2'b0},如果我沒有

    0熱度

    1回答

    這個問題與我發佈的這個問題相切:Why isn't syscall working for MIPS。 我試圖在我的MIPS程序集中使用scanf來從命令行讀取用戶輸入。 這裏是我的代碼: .option pic0 .rdata # read-only data .align 2 fromatInt: .asciz "%d" .asciz "%c"

    0熱度

    1回答

    我知道單字(4字節)變量(如Int32)中的Big Endianness和Little Endianness之間的差異。 我想知道如果我們在小字節序格式以下數據多字變量或對象(例如兩個字變量的Int64): -----------------> Lower Memory Address to Higher Memory Address b0 b1 b2 b3 |b4 b5 b6 b7 (b

    0熱度

    1回答

    我不明白以前作業問題的解決方案。 問題:在執行以下指令後顯示$R3的內容。 lb $R3, 13($R2) 初始值: $R2 = 12(decimal) $R3 = 14(decimal) 初始內存地址(十進制) - 內容(十進制): 36 -- -18 32 -- 99 28 -- 177 24 -- -14 解決方案: $R3 = OxFFFFFFFF 我不瞭解他是如何

    0熱度

    1回答

    什麼是使用分支規定的條件的原因,像這樣的: beq $0, $0, TEST 而不是僅僅使用這樣的跳躍? j TEST 分支用於測試條件,但在這種情況下,分支已被使用的條件將始終爲真。那麼爲什麼跳過它呢?它有點快嗎? 我遇到了這個answer,但我不知道這是否確實是我的問題的正確答案,因爲我還不知道有關重定位的任何信息。