What does this "invalid language element:" mean in MARS?

86 Views Asked by At

I'm doing this very basic assignment in MARS where I literally copy and past some code into a file and run it. However, for whatever reason, I keep getting this invalid language element error whenever I compile. Someone else has run the exact same program on their computer and it worked, so I'm wondering what's going on here. One thing I did notice is that in a tutorial, someone opened MARS with "OpenJDK Platform Binary" and I currently only have the option to open with Java SE Platform Binary. I have no idea if that's the issue, though.

.text

.globl  main
main:
        subu    $sp, $sp, 40    # stack push, 40 bytes
        sw      $ra, 20($sp)    # save return address register (sw = store word)
        sd      $a0, 32($sp)    # save registers $a0, $a1 (sd = store doubleword)
        sw      $0, 24($sp)     # sum = 0
        sw      $0, 28($sp)     # i = 0
loop:
        lw      $t6, 28($sp)    # i
        mul     $t7, $t6, $t6   # i * i
        lw      $t8, 24($sp)    # sum
        addu    $t9, $t8, $t7   # sum + i*i
        sw      $t9, 24($sp)    # sum = sum + i*i
        addu    $t0, $t6, 1     # i + 1
        sw      $t0, 28($sp)    # i = i + 1
        ble     $t0, 100, loop  # if (i <= 100) goto loop

        la      $a0, str1
        jal     Print_string    # print the string whose starting address is in register $a0
        lw      $a0, 24($sp)    # sum
        jal     Print_integer   # print the integer in register $a0
        la      $a0, str2
        jal     Print_string    # print the string whose starting address is in register $a0

        # this exit sequence can be used with QtSPIM, but not with MARS
#       move    $v0, $0         # return status 0
#       lw      $ra, 20($sp)    # restore saved return address
#       addu    $sp, $sp, 40    # stack pop (important - same 40 bytes as before!)
#       jr      $ra             # return from main() to the OS

        # MARS likes this, but we need to demo Exit2
#       jal     Exit            # end the program, no explicit return status

        # MARS likes this
        move    $a0, $0
        jal     Exit2           # end the program, with return status from register a0

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

        .data
        .align  0

str1:
        .asciiz "The sum from 0 .. 100 is :"
str2:
        .asciiz ":\n"

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

# Wrapper functions around some of the system calls
# See P&H COD, Fig. A.9.1, for the complete list.

        .text
#       .align  2               # MARS doesn't like this

        .globl  Print_integer
Print_integer:  # print the integer in register $a0
        li      $v0, 1
        syscall
        jr      $ra

        .globl  Print_string
Print_string:   # print the string whose starting address is in register $a0
        li      $v0, 4
        syscall
        jr      $ra

        .globl  Exit
Exit:           # end the program, no explicit return status
        li      $v0, 10
        syscall
        jr      $ra     # this instruction is never executed

        .globl  Exit0
Exit0:          # end the program, default return status
        li      $a0, 0  # return status 0
        li      $v0, 17
        syscall
        jr      $ra     # this instruction is never executed

        .globl  Exit2
Exit2:          # end the program, with return status from register $a0
        li      $v0, 17
        syscall
        jr      $ra     # this instruction is never executed

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

error message:

Invalid language element: $ra    
Error in C:\Users\Roger\Documents\Programs\version4.asm line 3 column 1: .globl  main
Invalid language element: .globl 
Error in C:\Users\Roger\Documents\Programs\version4.asm line 5 column 1:         subu    $sp, $sp, 40    # stack push, 40 bytes
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 5 column 9:         subu    $sp, $sp, 40    # stack push, 40 bytes
Invalid language element: subu   
Error in C:\Users\Roger\Documents\Programs\version4.asm line 5 column 27:         subu    $sp, $sp, 40    # stack push, 40 bytes
Invalid language element: 40   
Error in C:\Users\Roger\Documents\Programs\version4.asm line 6 column 1:         sw      $ra, 20($sp)    # save return address register (sw = store word)
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 6 column 9:         sw      $ra, 20($sp)    # save return address register (sw = store word)
Invalid language element: sw     
Error in C:\Users\Roger\Documents\Programs\version4.asm line 6 column 29:         sw      $ra, 20($sp)    # save return address register (sw = store word)
Invalid language element:    
Error in C:\Users\Roger\Documents\Programs\version4.asm line 7 column 1:         sd      $a0, 32($sp)    # save registers $a0, $a1 (sd = store doubleword)
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 7 column 9:         sd      $a0, 32($sp)    # save registers $a0, $a1 (sd = store doubleword)
Invalid language element: sd     
Error in C:\Users\Roger\Documents\Programs\version4.asm line 7 column 29:         sd      $a0, 32($sp)    # save registers $a0, $a1 (sd = store doubleword)
Invalid language element:    
Error in C:\Users\Roger\Documents\Programs\version4.asm line 8 column 1:         sw      $0, 24($sp)     # sum = 0
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 8 column 9:         sw      $0, 24($sp)     # sum = 0
Invalid language element: sw     
Error in C:\Users\Roger\Documents\Programs\version4.asm line 8 column 28:         sw      $0, 24($sp)     # sum = 0
Invalid language element:     
Error in C:\Users\Roger\Documents\Programs\version4.asm line 9 column 1:         sw      $0, 28($sp)     # i = 0
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 9 column 9:         sw      $0, 28($sp)     # i = 0
Invalid language element: sw     
Error in C:\Users\Roger\Documents\Programs\version4.asm line 9 column 28:         sw      $0, 28($sp)     # i = 0
Invalid language element:     
Error in C:\Users\Roger\Documents\Programs\version4.asm line 11 column 1:         lw      $t6, 28($sp)    # i
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 11 column 9:         lw      $t6, 28($sp)    # i
Invalid language element: lw     
Error in C:\Users\Roger\Documents\Programs\version4.asm line 11 column 29:         lw      $t6, 28($sp)    # i
Invalid language element:    
Error in C:\Users\Roger\Documents\Programs\version4.asm line 12 column 1:         mul     $t7, $t6, $t6   # i * i
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 12 column 9:         mul     $t7, $t6, $t6   # i * i
Invalid language element: mul    
Error in C:\Users\Roger\Documents\Programs\version4.asm line 12 column 27:         mul     $t7, $t6, $t6   # i * i
Invalid language element: $t6  
Error in C:\Users\Roger\Documents\Programs\version4.asm line 13 column 1:         lw      $t8, 24($sp)    # sum
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 13 column 9:         lw      $t8, 24($sp)    # sum
Invalid language element: lw     
Error in C:\Users\Roger\Documents\Programs\version4.asm line 13 column 29:         lw      $t8, 24($sp)    # sum
Invalid language element:    
Error in C:\Users\Roger\Documents\Programs\version4.asm line 14 column 1:         addu    $t9, $t8, $t7   # sum + i*i
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 14 column 9:         addu    $t9, $t8, $t7   # sum + i*i
Invalid language element: addu   
Error in C:\Users\Roger\Documents\Programs\version4.asm line 14 column 27:         addu    $t9, $t8, $t7   # sum + i*i
Invalid language element: $t7  
Error in C:\Users\Roger\Documents\Programs\version4.asm line 15 column 1:         sw      $t9, 24($sp)    # sum = sum + i*i
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 15 column 9:         sw      $t9, 24($sp)    # sum = sum + i*i
Invalid language element: sw     
Error in C:\Users\Roger\Documents\Programs\version4.asm line 15 column 29:         sw      $t9, 24($sp)    # sum = sum + i*i
Invalid language element:    
Error in C:\Users\Roger\Documents\Programs\version4.asm line 16 column 1:         addu    $t0, $t6, 1     # i + 1
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 16 column 9:         addu    $t0, $t6, 1     # i + 1
Invalid language element: addu   
Error in C:\Users\Roger\Documents\Programs\version4.asm line 16 column 27:         addu    $t0, $t6, 1     # i + 1
Invalid language element: 1    
Error in C:\Users\Roger\Documents\Programs\version4.asm line 17 column 1:         sw      $t0, 28($sp)    # i = i + 1
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 17 column 9:         sw      $t0, 28($sp)    # i = i + 1
Invalid language element: sw     
Error in C:\Users\Roger\Documents\Programs\version4.asm line 17 column 29:         sw      $t0, 28($sp)    # i = i + 1
Invalid language element:    
Error in C:\Users\Roger\Documents\Programs\version4.asm line 18 column 1:         ble     $t0, 100, loop  # if (i <= 100) goto loop
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 18 column 9:         ble     $t0, 100, loop  # if (i <= 100) goto loop
Invalid language element: ble    
Error in C:\Users\Roger\Documents\Programs\version4.asm line 18 column 27:         ble     $t0, 100, loop  # if (i <= 100) goto loop
Invalid language element: loop 
Error in C:\Users\Roger\Documents\Programs\version4.asm line 20 column 1:         la      $a0, str1
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 20 column 9:         la      $a0, str1
Invalid language element: la     
Error in C:\Users\Roger\Documents\Programs\version4.asm line 21 column 1:         jal     Print_string    # print the string whose starting address is in register $a0
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 21 column 9:         jal     Print_string    # print the string whose starting address is in register $a0
Invalid language element: jal    
Error in C:\Users\Roger\Documents\Programs\version4.asm line 21 column 17:         jal     Print_string    # print the string whose starting address is in register $a0
Invalid language element: Print_string   
Error in C:\Users\Roger\Documents\Programs\version4.asm line 22 column 1:         lw      $a0, 24($sp)    # sum
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 22 column 9:         lw      $a0, 24($sp)    # sum
Invalid language element: lw     
Error in C:\Users\Roger\Documents\Programs\version4.asm line 22 column 29:         lw      $a0, 24($sp)    # sum
Invalid language element:    
Error in C:\Users\Roger\Documents\Programs\version4.asm line 23 column 1:         jal     Print_integer   # print the integer in register $a0
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 23 column 9:         jal     Print_integer   # print the integer in register $a0
Invalid language element: jal    
Error in C:\Users\Roger\Documents\Programs\version4.asm line 23 column 17:         jal     Print_integer   # print the integer in register $a0
Invalid language element: Print_integer  
Error in C:\Users\Roger\Documents\Programs\version4.asm line 24 column 1:         la      $a0, str2
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 24 column 9:         la      $a0, str2
Invalid language element: la     
Error in C:\Users\Roger\Documents\Programs\version4.asm line 25 column 1:         jal     Print_string    # print the string whose starting address is in register $a0
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 25 column 9:         jal     Print_string    # print the string whose starting address is in register $a0
Invalid language element: jal    
Error in C:\Users\Roger\Documents\Programs\version4.asm line 25 column 17:         jal     Print_string    # print the string whose starting address is in register $a0
Invalid language element: Print_string   
Error in C:\Users\Roger\Documents\Programs\version4.asm line 27 column 1:         # this exit sequence can be used with QtSPIM, but not with MARS
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 33 column 1:         # MARS likes this, but we need to demo Exit2
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 36 column 1:         # MARS likes this
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 37 column 1:         move    $a0, $0
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 37 column 9:         move    $a0, $0
Invalid language element: move   
Error in C:\Users\Roger\Documents\Programs\version4.asm line 38 column 1:         jal     Exit2           # end the program, with return status from register a0
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 38 column 9:         jal     Exit2           # end the program, with return status from register a0
Invalid language element: jal    
Error in C:\Users\Roger\Documents\Programs\version4.asm line 38 column 17:         jal     Exit2           # end the program, with return status from register a0
Invalid language element: Exit2          
Error in C:\Users\Roger\Documents\Programs\version4.asm line 42 column 1:         .data
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 43 column 1:         .align  0
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 43 column 9:         .align  0
Invalid language element: .align 
Error in C:\Users\Roger\Documents\Programs\version4.asm line 46 column 1:         .asciiz "The sum from 0 .. 100 is :"
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 48 column 1:         .asciiz ":\n"
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 55 column 1:         .text
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 58 column 1:         .globl  Print_integer
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 58 column 9:         .globl  Print_integer
Invalid language element: .globl 
Error in C:\Users\Roger\Documents\Programs\version4.asm line 59 column 15: Print_integer:  # print the integer in register $a0
Invalid language element:  
Error in C:\Users\Roger\Documents\Programs\version4.asm line 60 column 1:         li      $v0, 1
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 60 column 9:         li      $v0, 1
Invalid language element: li     
Error in C:\Users\Roger\Documents\Programs\version4.asm line 61 column 1:         syscall
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 62 column 1:         jr      $ra
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 62 column 9:         jr      $ra
Invalid language element: jr     
Error in C:\Users\Roger\Documents\Programs\version4.asm line 64 column 1:         .globl  Print_string
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 64 column 9:         .globl  Print_string
Invalid language element: .globl 
Error in C:\Users\Roger\Documents\Programs\version4.asm line 65 column 14: Print_string:   # print the string whose starting address is in register $a0
Invalid language element:   
Error in C:\Users\Roger\Documents\Programs\version4.asm line 66 column 1:         li      $v0, 4
Invalid language element:        
Error in C:\Users\Roger\Documents\Programs\version4.asm line 66 column 9:         li      $v0, 4
Invalid language element: li     
Error in C:\Users\Roger\Documents\Programs\version4.asm line 67 column 1:         syscall
Invalid language element:        
Error in  line 68 column 1: Error Limit of 200 exceeded.
Assemble: operation completed with errors.

I tried to compile the copied and pasted program, and it in fact, did not compile.

0

There are 0 best solutions below