2016-07-20 10 views
0

누군가이 어셈블리 라인이 왜 적합한 지 설명 할 수 있습니까? $ 0 항상 0 의 값이 레지스터를 의미MIPS32 어셈블리 beq 명령어 설명

beq $0, $0, 1 

주 그래서 우리는 다음 PC로 이동 $ 0 = $ 경우 0 + 4 + 1이 다른 다음 명령어로 이동 말하고있다.

내 혼란은 beq 명령의 즉각적인 분야에서 나온 것입니다. 이것은 우리가 PC + 5를 처리한다는 것을 의미합니까? MIPS가 메모리에 액세스 할 때 정렬이 필요하지 않으며 모든 메모리 위치가 4로 나눌 수 있어야합니까?

이 책에서는이 명령어가 다음 명령어를 건너 뜁니다.

답변

3

beq $t, $s, offset의 의미는 그들이 항상 0을하고있을 수 있기 때문에

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

은 단순히 PC가 항상 명령이 실행되는 시간으로 4 전진하고 즉시이 낮은 두 비트 누락 된 것으로 간주됩니다 넣어이다 시프트 (offset * 4 = offset << 2)와 함께 다시 도입되었습니다. 이 tautologically PC = PC + 8을 설정 한


beq $0, $0, 1

는 다음 명령을 건너 뜁니다.

+0

의미가 있습니다. 감사합니다. –