가스 (GNU 어셈블러)와 함께 MIPS 레지스터 이름을 사용할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/721192

  •  05-09-2019
  •  | 
  •  

문제

레지스터 이름을 사용하면 다음을 얻습니다.

Error: illegal operands `add $t0,$zero,$zero'

레지스터 번호를 사용하는 경우 ($8 대신에 $t0 그리고 $0 대신에 $zero) 효과가있다. (Binutils 2.17을 사용하고 있습니다).

도움이 되었습니까?

해결책

GNU 어셈블러는 상징적 등록 이름을 직접 지원하지 않습니다. GCC를 사용하여 어셈블러를 구동하는 경우 일반적인 접근 방식은 어셈블러 소스 파일에 ".S"확장자를 사용하는 것입니다 (GCC에게 어셈블러 앞에 C 프리 브레이저를 통해 소스를 전달하도록 지시하고 정의가 포함 된 헤더 파일을 포함합니다. 처럼:

#define zero $0
#define v0   $2
#define v1   $3

그런 다음 어셈블러 소스는 같은 진술을 가질 수 있습니다

add v0, zero, zero
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top