Язык ассемблера MIPS (Power2)

В настоящее время я ищу лучший метод для выполнения функции n power2. Короче, код в MIPS должен вычислять 2n. n является положительным числом, хранящимся в $a0, Тем не менее, на данный момент мои результаты приходят на одну мощность меньше.

Моя попытка

main:

    # initialize 
    la  $a0,3       #n counter
    li  $s0,2       #base number
    li  $s1,0       #calculated value

While:  
    beq $a0,$zero,exit      #Checks if n is zero, if yes exit program 
    sllv $s1,$s0,$a0        #Shift left logical by n, this should do the math 2^n

exit:

Результаты от QtSpim

1 ответ

"Ошибка" не очень информативное утверждение. Во всяком случае, правильный синтаксис для beg $a0,$zero,j Exit является beq $a0, $zero, exit но вам даже не нужна эта проверка. Вы должны загрузить $s0 с 1 не 0 поскольку 2^0 является 1 а также sll $s0, 2, $a0 должно быть sllv $s0, $s0, $a0,

Другие вопросы по тегам