c언어if문을 mips변환할때 질문입니다
비예
2023.04.01
질문 제목 : c언어 문장을 mips로 변환할때 질문입니다질문 요약 :변환시 mips에서 if문에서 equal을 썼는데 mips는 not equal을 썼는지 궁금하네요질문 내용 :오늘 강의를 듣다가 질문을 받은건데요 c 언어의 문장은
if(i==j) f=g+h
else f=g-h
이렇게 되있습니다
이것을 mips로 변환시킨 문장입니다
bne $S3, $S4 else
add $S0, $S1, $S2
j exit
else : sub $S0, $S1, $S2
exit :
= f,g,h in $S0,$S1,$S2
i,j in $S3,$S4 입니다
여기서 c언어는 i와 j가 같으면 이라는 문장으로 시작했는데
왜 mips에서는 같은 beq가아닌 bne(branch not equal)을 썼는지 궁금합니다
힌트가 계산과정이빨라진다는데 이해가안되네요 알려주세요~
-
놓아주세요
보통 if가 else보다 더 중요하기 때문입니다. bne를 쓰면, i==j인경우 점프할 필요 없이 바로 다음줄을 실행합니다.