2013-09-26 6 views
0

저는 MIPS로 작업 중이며 사용자 정수 입력을 받아 값을 배열에 저장하고 나중에 특정 형식으로 출력합니다. 나는 또한 .align 4으로 프로그램을 실행 한MIPS .align # 다른 숫자에 대해 동일한 결과를 제공합니다.

point_array:

.align 2
.space 1024

과 값은 동일한 방법으로 메모리에 저장됩니다

메모리

는 다음과 같이 선언한다. .align의 효과를 완전히 파악했다고 생각하지 않으며 2와 4의 메모리를 정렬하면 왜 같은 결과가 발생하는지 알고 싶습니다.

답변

1

"정렬"은 다음 주소가 2^n의 배수 여야 함을 의미합니다. ".align"은 이것을 달성하기 위해 더미 바이트를 삽입합니다.

예 : 주소 0x123400F에 ".align 4"명령어를 삽입하면 1 바이트가 삽입됩니다. ".align 1"은 1 바이트를 삽입합니다.

그러나 주소가 0x1234012 인 두 명령어를 사용하는 경우 ".align 1"은 아무 것도하지 않지만 ".align 4"는 14 바이트를 삽입합니다.

관련 문제