Here's some desperate help:
If I understand your problem correctly, you must get two numbers from the user, x1 and x2, then make an array (or vector) of values from x1 to x2 inclusive?
PCSpim is neither a compiler nor a proper assembler. It is a simulator for a virtual machine.
Write your tal program using your favorite plain-text editor (like emacs or notepad or whatever), load it into spim, and run it with the "Go" button. The only caveat to using Spim is that your program must begin with the label "main" instead of "__start".
Try typing in some simple examples from your textbook. Then try creating some simple examples of your own design.
Here's a simple example designed to help you in your project:
# Example program to print a friendly
# message five times, then quit.
.data
# This is static data.
# Its size does not change.
# This is the string to print
str_hello: .asciiz "Hello world!\n"
# These are syscall argument values
# (I like to name them for easy use)
print_string: .word 4 # $a0 : address of string to print
exit: .word 10
.text
# print_n_times( str_hello, 5 )
main: la $a0, str_hello
li $a1, 5
jal print_n_times
# quit
lw $2, exit
syscall
# subroutine
# arguments:
# $a0 : address of string to print
# $a1 : number of times to print it
#
# preserve return address on stack
print_n_times: sub $sp, 4
sw $ra, 4($sp)
# can't print < 0 times...
bltz $a1, pnt_end
# done if no more to print
loop: beq $a1, $0, pnt_end
# print the string at m[$a0]
lw $2, print_string
syscall
# number of times to print -= 1
sub $a1, $a1, 1
# next
b loop
# pop return address and return
pnt_end: lw $ra, 4($sp)
add $sp, 4
jr $ra
The WikiPedia article has a section on MIPS Assembly Language that lists all the syscall arguments and return values and all the opcodes you'll need.
Hope this helps.