1
문제 : 현재 $ t0에 저장된 양수의 계승을 계산하는 루프를 작성하고 결과를 $ t1에 4 개의 명령어로 저장하십시오.MIPS에서 팩토리얼을 수행하는 코드는 어떻게 작성합니까?
이것은 내가 지금까지 가지고있는 것입니다. 6 지시 사항에서 작동한다는 것을 확신합니다.
li $t3, 1
move $t1, $t0
move $t2, $t0
LOOP: addi $t2, $t2, -1
mul $t1, $t1, $t2
bne $t2, $t3, LOOP
편집. 다음은 솔루션을의
li $t1 1
LOOP: mul $t1 $t1 $t0
addi $t0 $t0 -1
bgez $t0 LOOP
힌트 : $의 T1 == 1 함께 시작하기 (코드 크기의 측면에서) 더 효율적일 것입니다. '$ t0'와'$ t1' (그리고'$ zero')보다 다른 레지스터를 사용할 필요가 없습니다. 그리고 만약 우리가 엄격 해지기를 원한다면,'li'는 진짜 MIPS 명령이 아닙니다. 이것은 어셈블러가 제공하는 의사 명령어입니다. – Michael
더 엄격하게 말하면'li $ t3,1'은'ori $ t3, $ zero, 1'로 변환되어 하나의 명령입니다 :-) – markgz