簡體   English   中英

MIPS32匯編beq指令說明

[英]MIPS32 assembly beq instruction explanation

有人可以解釋為什么下面的裝配線有意義嗎?

beq $0, $0, 1

請注意,$ 0指的是一個始終值為0的寄存器。因此,如果$ 0 = $ 0,則轉到PC + 4 + 1,否則轉到下一條指令。

我的困惑來自beq指令的立即數,即1。這是否意味着我們要處理PC + 5? MIPS在訪問內存時是否需要對齊,並且所有內存位置都必須被4整除?

請注意,這本書說該指令只是跳過下一條指令。

beq $t, $s, offset的語義為

if ($t == $s) 
    PC = PC + 4 + 4 * offset;
else 
    PC = PC + 4

簡而言之,在指令執行時PC總是前進4,並且假定立即數缺少低兩位,因為它們始終為零,並且可以通過移位重新引入( offset * 4 = offset << 2 )。


beq $0, $0, 1只是跳過了下一條指令,因為它是重言式設置PC = PC + 8

暫無
暫無

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

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