MIPS практика написания списков номеров - PullRequest
0 голосов
/ 27 октября 2018

Как вопрос, требуемый ниже,

Напишите программу на ассемблере MIPS32, которая читает положительное целое число N и печатает следующее: 1 12 123 1234 12345 ... 1 2 3 4 5 6 ... N

Вот мой код, показанный ниже:

    .data
word:   .asciiz "Please enter a random row: \n"
    .text
    .globl main

main:   
    la $a0, word        # load word
    li $v0, 4
    syscall

    li $v0, 1           # service 1 is print integer
    move $a0, $t0       # move register to be printed into argument 
register $a0
    syscall

    lw $s0, row         # $s0 = row
    addi $s0, $s0, -1   # for accommodating loop condition
    li $s1, 1           # set i = 1
    li $s2, 1           # set j = 1


loop1:
    blt $s0, $s1, Exit  # for(i = 0; i < row; i++)
    addi $s1, $s1, 1    # i++
    li $s2, 1           # resets j to 1 after every iteration of for 
loop
    move $a0, $t0       # move register to be printed into argument 
register $a0
    j loop2             # executing the nested for loop


loop2:
    blt $s1, $s2, loop1 # for(i = 0; i < j; i++)
    li  $v0, 1          # read_double => scanf("%d")
    move $a0, $t0       # move register to be printed into argument $a0
    syscall
    j loop2


   li $v0, 10           # loading exit code
   syscall              # execute exit

Поскольку я стараюсь его пройти, то все равно не могу достичь ожидаемого результата.

1 Ответ

0 голосов
/ 28 октября 2018

Вот как вы напишите код для этого:

Запросите у пользователя значение N и сохраните.

Создание цикла, который будет продолжаться до N итераций (см. Условное ветвление)

Для N итераций сохраните значение 1, 1 + = 1, ... N в регистре.

Помните, что каждое слово составляет 4 байта.Убедитесь, что вы меняете место доступа к своему реестру для правильного сохранения значений, иначе они будут перезаписывать друг друга.

Используйте другой цикл для печати всех значений (опять же, условное ветвление).

Если вам нужна помощь с кодом, попробуйте сначала написать его.:-)

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