2012-01-17 2 views
1

이 어셈블러 코드의 기능은 무엇입니까?어셈블러에서 'label'은 어떻게 작동합니까?

someName label word 
     dw 8dup(0) 

label는 어떻게 작동합니까?

+1

'label'은 CPU 명령어가 아니며 어셈블러의 기능입니다. 어떤 어셈블러를 사용하고 있으며 어떤 시스템을 사용하고 있습니까? –

+0

이것은 내 프로그램이 아니며, 이것을 알아 내야합니다. 그래서 제가 말할 수있는 것은이 프로그램이 Intel 386+ 프로세서를위한 것입니다. 그리고 코드 스 니펫은 데이터 세그먼트 – superM

답변

3

일반적으로 label은 다음에 오는 코드/데이터에 대한 심볼 이름을 만들고 해당 유형에도 할당합니다. 주어진 이름과 타입/크기로 변수를 정의하는 것과 비슷합니다. 그러나 실제로 공간을 할당하지는 않습니다. 변수에 대한 별칭을 만드는 데 사용할 수 있습니다.

+0

그래서 제대로 얻으면 someName에 의해 다음 메모리의 첫 번째 단어에 액세스 할 수 있습니까? – superM

+0

@superM : 맞습니다. –

1

사용중인 어셈블러에 대한 세부 정보가 부족하지만 추측 할 수 있습니다.

문은 현재 주소 (word)를 someName에 할당합니다. 즉, 나중에 프로그램에서 특정 주소 대신 someName 레이블을 사용할 수 있습니다.

dw 문은 word 유형의 일부 공간을 예약합니다. 나는 8dup(0)이 무엇을 의미하는지 완전히 확신하지는 못했지만 8 단어 (16 바이트)의 공간이 될 수 있습니다.

+0

dw에 기록됩니다. 8dup (0)은 8 단어의 메모리를 할당하고 각 단어에 값 0을 쓰는 것을 의미합니다. – superM

1

레이블은 명령문의 시작 부분에 놓을 수 있습니다. 조립하는 동안 레이블에는 활성 위치 카운터의 현재 값이 할당되고 명령 피연산자로 사용됩니다. 기호에는 두 가지 유형이 있습니다.

관련 문제