이 코드를 Mips로 변환하려면 어떻게해야합니까? int n = 100; int sum = 0; while (n>0) {
sum = sum + n;
n--; }
나는 이것을 가지고 있으며 이것을 마무리하기 위해 무엇을 해야할지 잘 모릅니다. .data
n: .word 100
.text
main:
조립 용 어셈블리 코드는 내 텍스트 북에 나와 있습니다. Loop:
sll $t1, $t0, 2
add $t2, $a0, $t1
sw $zero, 0($t2)
addi $t0, $t0, 1
slt $t3, $t0, $a1
bne $t3, $zero, Loop
# return where we were
jr $ra
이 코드에는 두 가지 질
mips를 사용하는 클래스 학습 어셈블리의 메신저. 배열 배열을 정렬하는 중입니다. 올바르게 작동하는 메서드가 있다고 생각하지만 문제는 조금 있습니다. 메신저가 완전히 분류 된 때를 확인하는 방법을 모르겠습니다. 나는 정렬에 꽤 기초적인 방법을 사용하고 있지만, 그것은 우리가 지금까지 배웠던 모든 것입니다. 또한, 나는 그것이 정렬되어 있는지 확인하기 위해
1로 번역하십시오. for (t0 = ´A´; t0 <= ´Z´; t0++) Mem[a0++] = t0; 2). t0 = 2147483647 - 2147483648; 첫 번째에 대한 , 나는 종류의 난 그냥 그 수 없습니다 생각, 두 번째, 나는이 중요한 점을 찾을 수 없습니다, MIPS의 초보자입니다 Mem[a0++], 을 번역하는 방법을 혼동하고 간단,
그래서 지금 MIPS를 배우고 있으며 MIPS 그린 시트에서 호출을 통해 보존되는 총 12 개의 레지스터 (레지스터 포함)가 있음을 확인했습니다. 이를 이해하기 위해서는 모든 레지스터를 쌓아 나중에 다시 액세스 할 때 검색해야합니다. 하지만이 문제를 해결하기 위해 문제가 있다면 왜이 레지스터를 사용해도 어떨까요? 아마도 레지스터가 부족하여 사용할 레지스터가
이것은 MIPS 어셈블리 (즉, 모든 종류의 어셈블리)를 다루는 두 번째 시간이기 때문에 부드럽게 다루십시오. 그래서 처음부터 MIPS를위한 곱셈 함수를 만들었습니다. 그것은 내가 생각했던 것보다 쉬웠습니다. 나는 그것을 테스트했고 그것은 하나의 가치에 대해 완벽하게 작동합니다. 불행히도 배열이 그림에 올 때 나는 완전히 잃어버린다. 저는 시작하는 방법조차