MIPS "main" 已声明全局标签但未定义

MIPS "main" declared global label but not defined

这是MIPS 的示例程序。我正在使用 MARS 4.5,并且启用了设置 -> 将程序计数器初始化为全局 "main"(如果已定义)。但是,当我尝试 assemble 时,它说在 .globl main 行上,"main" 声明了全局标签但未定义。我不确定如何解决它?

--------宏定义-----

    # Macro : print_str
    # Usage: print_str(<address of the string>)
    .macro print_str($arg)
    li  $v0, 4     # System call code for print_str  
    la  $a0, $arg   # Address of the string to print
    syscall            # Print the string        
    .end_macro

    # Macro : print_int
    # Usage: print_int(<val>)
    .macro print_int($arg)
    li  $v0, 1     # System call code for print_int
    li  $a0, $arg  # Integer to print
    syscall            # Print the integer
    .end_macro

    # Macro : exit
    # Usage: exit
    .macro exit
    li  $v0, 10 
    syscall
    .end_macro

------数据段定义----

.data
str: .asciiz "Enter="

-----代码段定义----

.text .globl main Main: print_str(str) print_int(54) exit

你打错了。您使用 Main: 而不是 main:。这很重要。

旁注:很高兴看到一个使用宏的 mips 问题。