Типирование слова к полуслову MIPS - PullRequest
0 голосов
/ 13 октября 2019

В рамках упражнения по программированию мне необходимо вернуть целое число из функции, а затем ввести его в виде короткого замыкания. На данный момент у меня есть:

.text
j main

getRandom: # Produce a random integer between max and min
    sub  $t0, $a1, $a0 # max - min
    addi $t0, $t0, 1   # max - min + 1

    addi $sp, $sp, -16 # Allocate 16 bytes of stack memory
    sw   $a0, 0($sp)
    sw   $a1, 4($sp)
    sw   $t0, 8($sp)

    li   $v0, 41       # get a random int
    syscall            # $a0 = rand()

    lw   $t0, 0($sp)   # $t0 = min
    lw   $t1, 4($sp)   # $t1 = max
    lw   $t2, 8($sp)   # $t2 = max - min + 1
    addi $sp, $sp, 16  # Reset stack pointer

    remu $a0, $a0, $t2 # rand() % (max - min + 1)
    add  $v0, $a0, $t0 # min + rand() % (max - min + 1)
    jr   $ra

main:
    li   $a0, 10     # Low bound
    li   $a1, 100    # Upper bound
    jal getRandom
    move $a0, $v0

    # Perform typecast
    la   $t0, 0($a0) # Get $a0's address
    lh   $a0, 0($t0) # Load 2 bytes from $a0's address

    li   $v0, 1
    syscall

Компилятор выдает ошибку в строке "lh $ a0, 0 ($ t0)", но я не уверен, как еще можно было бы ее типизировать. Я был бы признателен за альтернативный способ сделать это. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...