3
저는 MIPS가 새로워서 this 도서를 사용하여 나 자신을 가르치려고합니다. 데이터 지시어를 배우려고하는데이 세 가지의 차이점은 무엇입니까?MIPS 데이터 지시문
list: .word 0:3
list: .word 3
list: .word
그러나 명확한 문서/참조를 찾지 못했습니다.
감사합니다.
저는 MIPS가 새로워서 this 도서를 사용하여 나 자신을 가르치려고합니다. 데이터 지시어를 배우려고하는데이 세 가지의 차이점은 무엇입니까?MIPS 데이터 지시문
list: .word 0:3
list: .word 3
list: .word
그러나 명확한 문서/참조를 찾지 못했습니다.
감사합니다.
list: .word 0:3
3 단어를 예약하고 각 값을 0
으로 설정합니다.
int list[3] = {0, 0, 0};
또는
list: .space 12
가 (이 경우, 값이 암시 적으로 0) :이 유사 할 것입니다.
'0 : 3'의 0은 다른 값이 될 수 있습니다. 예를 들어 :
list: .word 'X':3
# or
list: .word 88:3
요소의 수는 없습니다, 그것은
int list = 3;
마지막 하나와 유사한 단어
list: .word 3
의 값은, 단순히이다
list: .word
어셈블러를 사용하여 누락 된 피연산자에 대해 불만을 제기하십시오.
감사합니다. 그리고 완벽한 답변. 그러나 하나 더 질문 : 목록 :. 단어 0 : 3 동적 메모리 할당 또는 정적입니까? 스택 포인터 ($ sp)는 어떻습니까? –
@Hooman 정적입니다. 사실 모든 정적입니다. .data 또는 .rdata는 주로 프로그램이 시작될 때 정적 데이터 설정에 사용됩니다. 어떤 함수 밖에서라도 C의'static' 키워드와 같습니다. 일반적으로'new' 또는'malloc() '을 통한 동적 메모리는 일반적으로 시스템 콜을 통해 할당됩니다 ('syscall' 찾기). 스택에 할당 된 메모리는 일반적인 C 자동 변수입니다. 예를 들어'void foo() {int x; }'여기 x는 스택에 할당되는 자동 변수입니다. – Wiz