2013-06-08 4 views
0

많은 수의 경우 계승을 계산하는 프로그램을 작성해야합니다 (예 : 200). 이것은 나를 위해 매우 중요합니다. 여기 내 코드는 다음과 같습니다 :MIPS 숙제, 큰 수의 계승

.text 
    main: 
    li $v0, 4 
    la $a0, prompt 
    syscall 

    li $v0, 5 
    syscall 
    move $s0, $v0 
    move $t1, $v0 
    li $t0, 1 
    loop: 
    mul $t0, $t0, $s0 

    addi $s0, $s0, -1 
    bgtz $s0, loop 

    li $v0, 1 
    move $a0, $t0 
    syscall 

    li $v0, 10 
    syscall 

    .data 
    prompt: .asciiz "\nGive a number: " 

이 프로그램은 31보다 작은 숫자에서만 작동합니다. 어떻게 수정해야할지 모르겠다. 누군가 나를 도울 수 있니?

피씨. 나쁜 언어로 죄송합니다.

+0

코드에 petla 레이블은 어디에 있습니까? – wazy

+0

또한 부호가있는 정수의 한도는 2,147,483,647 또는 2^31-1입니다. 정수 오버플로가 실제로 발생합니다. 24를 입력으로 사용해보십시오. 음수로 출력해야합니다. – wazy

+0

큰 숫자의 결과가 왜 나쁜지는 왜 알지만 어떻게 해결해야할지 모르겠다. 마지막 문장을 설명해 주시겠습니까? – user2316721

답변

1

이 숙제의 요점은 학생이 MIPS에서 임의의 정밀도 정수 더하기 및 곱셈을 구현 한 다음이를 계승 알고리즘을 구현하는 데 사용하는 것입니다. Here은 의사 코드의 임의의 정밀 계승에 대한 예입니다.