# # program to get an integer N from user and print 0 .. N # .text .globl main main: # # opening linkage (save return address) # addi $sp, $sp, -4 sw $ra, 0($sp) # # prompt # la $a0, prompt li $v0, 4 # "print string" syscall syscall # # get input # li $v0, 5 # "read int" syscall syscall # # in C # for (int i = 0; i < N; ++) printf("%d\n", i); # # $s0 for N, $s1 for i # addi $s0, $v0, 0 addi $s1, $zero, 0 Loop: slt $t0, $s1, $s0 beq $t0, $zero, End addi $a0, $s1, 0 # copy i to $a0 li $v0, 1 # "print int" syscall syscall la $a0, nl li $v0, 4 # "print string" syscall for newline syscall addi $s1, $s1, 1 j Loop End: # # closing linkage (get return address and restore stack pointer) # lw $ra, 0($sp) addi $sp, $sp, 4 jr $ra .end main # # area for variables and constants # .data prompt: .asciiz "Enter an integer:\n" nl: .asciiz "\n"