2016-06-22 10 views
2

제 질문은 : MIPS의 정수 상수의 크기는 얼마입니까?MIPS : MIPS의 정수 상수의 크기는 얼마입니까?

Here 사용 방법을 찾았습니다. 내 데이터 세그먼트에 정의 된 이러한 상수를 가지고 는 데이터 세그먼트의 크기를 계산에 내가 원하는 경우

, 나는이 일정에 대해 수행 할 것을 크기 : 워드, 바이트, 절반의 크기를 .. ?

여기에 데이터 세그먼트의 예입니다 :

.data 
array: .word 1, 2, 3 
LEN = 2    ; Here's the constant 

데이터 세그먼트의 크기 : 3 * 32 (비트) + (비트)

가 사전에 감사합니다?!

답변

1

나는 상수에서 까지를과 동일시한다고 가정합니다.

상수는 데이터 세그먼트에서 공간을 차지하지 않습니다. 피연산자로 사용할 때마다 피연산자와 일치해야하며 크기는 피연산자와 같아야합니다. 예를 들어 데이터 세그먼트는 4 * 3 바이트를 사용합니다 = 12 바이트 (96 비트).

는 예를 들어, 당신은 다음

.data 
array: .word 1,2,3 
.eqv LEN 2 
.eqv LARGE_VALUE 20000 
buffer: .space LARGE_VALUE 

당신은, 예를 들어, 2에 대한 대체 식별자 LEN을 사용할 수 있습니다 MARS 시뮬레이터에서 작성하는 경우 제 지시 조립시

li $a1, LEN 
li $a2, LARGE_VALUE 

이 경우, LEN은 16 비트 즉시 것이고, 어셈블러는 제 의사 명령의 32 비트로드를 수행하는 코드를 방출한다. 데이터 세그먼트에 정의 된 버퍼는 20000 바이트 (eqv LARGE_VALUE에 정의 된대로)입니다.

+0

명확한 설명에 감사드립니다. –