2016-09-20 1 views
2

이것은 MIPS 용 샘플 프로그램입니다. 나는 MARS 4.5를 사용하고 있으며 정의 된 경우 설정을 활성화했습니다. -> 프로그램 카운터를 전역 "main"으로 초기화했습니다. 그러나, 내가 조립하려고했을 때, 그것은 .globl main 줄에서 "main"이 전역 레이블을 선언했지만 정의되지 않았다고 말했다. 어떻게 고칠 수 있을지 모르겠다.MIPS "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

답변

1

당신은 오타가 있어요. main: 대신 Main:을 사용했습니다. 그것은 차이를 만든다.

사이드 노트 : 매크로를 사용하는 mips 질문을 보는 것이 좋습니다.