risc

    0熱度

    1回答

    假設我有一個變量inst,它包含一個編碼的MIPS指令。我想將rt字段設置爲0而不更改其他字段。 rt字段是從16-20索引的5位字段。我第一次嘗試: inst = inst & ~(1 << 16); 這臺RT場爲0,然後我想提出一個新的變量new_reg的值到室溫領域。我試過了: inst = inst | (new_reg << 16); 任何人都可以確認這兩行代碼是否正確?

    0熱度

    1回答

    在閱讀RISC-V 2.1版規範時,我在第4章中發現應該將RV64與RV32一起閱讀。基於此,以下是我的疑惑。 RISC-V 64位會運行32位操作碼嗎? 在規範中,第9章第54頁的指令與操作碼一起列出,這些操作碼是否也屬於64位。 在規範中,第9章第55頁的說明與操作碼列在一起,RV64是除了RV32之外的,所以在RV64位實現中我也需要支持RV32I嗎?

    0熱度

    1回答

    ## Question: ## Swap each pair of elements in ## the string "chararray" and ## print the resulting string. ## There will always be an even number ## of characters in "chararray". ## ## Output f

    1熱度

    1回答

    我只是有這個概念性的問題,但我不能真正找到明確解釋的網站。 但是對於臨時寄存器,保存的寄存器和浮點寄存器,它們是否包含我們想要的值的地址或者只是值,比如100或200?

    0熱度

    2回答

    我試圖通過減少指令來優化MIPS代碼。現在,我有一個while循環,因此: funct: add $v0, $zero, 0 add $t0, $zero, 0 Loop: slt $t1, $t0, $a0 beq $t1, $zero, Exit add $v0, $v0, $t0 addi $t0, $t0, 1 j Loop

    0熱度

    1回答

    在講座中,我們的教授說,使用bne分支而不是使用beq(並讓我們弄清楚)如下所示。 if (i == j) i++ ; j-- ; 其編譯成 bne $r1, $r2, L1 # branch if ! (i == j) addi $r1, $r1, 1 # i++ L1: addi $r2, $r2, -1 # j-- 另外,in this link,它也被暗示,這

    3熱度

    1回答

    索引尋址模式通常用於訪問數組,因爲數組是連續存儲的。我們有一個索引寄存器,它在每次迭代時都會增加,當它被添加到基地址時,會給出數組元素地址。 我不明白這種尋址模式的實際需要。爲什麼我們不能直接尋址?我們有基地址,每次訪問時我們都可以加1。爲什麼我們需要索引尋址模式,它具有索引寄存器的開銷? 我不確定隱含尋址模式的指令格式。假設我們有一個INC AC指令。是指令中指定的AC地址還是有一個特殊的操作碼

    0熱度

    1回答

    爲什麼PC在單週期數據通路中不需要顯式寫入信號?爲什麼在多週期數據通路中需要明確的寫入控制信號? 謝謝

    1熱度

    2回答

    舉個例子:一個x86_64 CPU讀128位指令。 從我所瞭解的情況來看,這是x86處理器中發生的事情。 否則,例如將一個64位數字添加到一個64位寄存器中(該操作碼對於數字> 64需要幾位+ 64位)。 我想知道的是指令中位的限制是什麼以及如果指令大於位數(數據總線),指令是如何讀取的。另外,我也知道大多數RISC CPU使用一個固定大小的指令,所以如果你直接傳遞一個數字操作數,指令的大小是否簡

    0熱度

    1回答

    我正在爲嵌入式計算機編寫程序,並且內存和處理能力都很小。 ÿ和一個是存儲在浮點寄存器雙和X爲陣列雙打的。在MIPS中編寫此表達式的最有效方式是什麼? y = y + a * x[i];