2016-06-17 3 views
1

나는 온라인으로 보았지만 찾을 수 있었던 유일한 것은이 구문이 PI = 3.1415 이었지만 어떤 설명 할 수없는 이유 때문에 이것은 사용하고있는 MIPS 시뮬레이터 프로그램에서 작동하지 않는다. 어느 것이 어느 MARS 4.5이다. MIPS 언어 사양의 일부라면 작동한다고 가정합니다. 간단한 hello world 프로그램을 어셈블 할 때 컴파일러에서 코드에 잘못된 언어 요소가 있음을 알립니다. 코드 자체는 다음과 같습니다.MIPS 어셈블리 언어로 상수를 정의하는 방법은 무엇입니까?

################################################################################ 
#                    # 
# This is a hello world program in the MIPS assembly language. It prints out # 
# "Hello, World!" on the screen and exits.          # 
#                    # 
################################################################################ 

# System call code constants 
SYS_PRINT_STRING = 4 
SYS_EXIT   = 10 

.data 
    msg: .asciiz "Hello, World!\n" 

.text 
.globl __start 
__start: 
    la $a0, msg    # Load the address of the string "msg" into the 
          # $a0 register 
    li $v0, SYS_PRINT_STRING # Store the system call for printing a string on 
          # the screen in the $v0 register 
    syscall 

    li $v0, SYS_EXIT   # Store the system call to exit the program in the 
          # $v0 register 
    syscall 

답변

4

대체 매크로가 필요합니다. 상수는 일반적으로 상수 변수를 참조합니다.
MIPS는 명령어 세트이며 명령어 자체 옆에 아무 것도 정의하지 않습니다. 매크로는 어셈블러에서 구현되므로 어셈블러 설명서를 확인해야합니다.

MARS의 경우 지시문은 .eqv입니다. 예 :

.eqv SYS_PRINT_STRING 4 

li $v0, SYS_PRINT_STRING 
관련 문제