2016-10-16 1 views
1

지침이 컴퓨터에 의해 내부적으로 처리되는 방식에 약간 혼란 스럽습니다.기계 지침과 조립 지침의 차이점은 무엇입니까?

내부적으로 명령어를 처리하는 두 가지가 있습니다 : 어셈블러 및 컨트롤 유닛.

예를 들어, 의사 밉스 명령어가 어셈블러로 전달 될 수 있습니다.이 명령어는 해당 어셈블러를 true-op mips 명령어 세트로 분해 한 다음 해당 명령어를 하나씩 컨트롤 유닛에 전달합니다. 디코딩.

MIPS 명령어가 pseudo 또는 true-op인지 여부에 관계없이 처리됩니다.

하지만 기계 명령어는 어떻게됩니까? 이것은 제어 장치에 입력 된 것입니까? 어셈블러가 그 어셈블러와 관련이 있습니까? 기계 지침이 조립 지침과 얼마나 다른가요?

+0

컴퓨터에 어셈블러가 없습니다. 어셈블러는 어셈블리 코드를 기계 코드로 변환 한 다음 CPU에서 실행합니다.이 코드는 일반적으로 산술/논리 장치와 같은 기능 단위로 나뉩니다. –

답변

10

머신 코드 또는 머신 언어는 컴퓨터의 중앙 처리 장치가 직접 실행 지시 의 집합이다. 각 명령어는 CPU 레지스터 또는 메모리의 데이터 단위에 대한로드, 점프 또는 ALU 연산과 같은 매우 구체적인 작업을 수행합니다. CPU에 의해 직접 실행되는 모든 프로그램은 일련의 명령으로 구성됩니다. .it에는 1과 0 만 포함됩니다.

어셈블리 언어는 컴퓨터 또는 다른 프로그래밍 가능한 장치의 하위 수준 프로그래밍 언어입니다. 언어와 아키텍처의 기계어 명령 [*] 사이에는 매우 강력한 (일반적으로 일대일) 대응이 있습니다. 어셈블리 언어는 이고 어셈블러라고하는 코드로 실행 컴퓨터 코드로 변환됩니다. 해당 기계 코드는 기계어입니다. 변환 프로세스를 어셈블리 또는 소스 코드 어셈블 링이라고합니다.

[*] 기본적으로이 라인은 기계어처럼 0과 1로 구성되며 읽을 때별로 유용하지 않습니다. 실제 생활에서 0과 1을 매우 큰 순서로 이해하는 것은 실제로 매우 어렵습니다. 그래서 일을 더 쉽게 만들고, 어셈블리 언어가 생겨났습니다. 그것은 기계 언어보다 한 레벨 위에 있습니다. 이는 사람이 읽을 수있는 형식으로 0과 1 집합을 대체 한 것입니다.

예 : 000은 기계어로 추가 된 것을 나타냅니다. 이고 0001은 숫자 1을 나타냅니다. 및 0010은 숫자 3을 나타냅니다. 함께하면 00000010010이되어 이해하기가 어려워집니다. 그렇게 쉽게 당신이

000 -> add 
0001 -> some_integer1 
0010 -> some_integer2 

어셈블리 및

add some_integer1,some_integer2 ; 

지금은 쉽게 읽을 수를 쓸 수 말할 수 있도록합니다. 그리고 마침내 어셈블러는이 어셈블리 코드 [add some_integer1, someinteger2;]를 컴퓨터 코드 [00000010010]로 변환하여 cpu가 컴퓨터를 직접 실행하여 자신의 언어로 명령을 내릴 수있게합니다. 조립은 우리를위한 것입니다. 기계어는 기계 용입니다. :-)

어셈블리 언어에 대한 자세한 내용은 및 기계 언어를 참조하십시오. here

1

기계 명령어는 출력을 생성하기 위해 컴퓨터에 입력되는 비트, 1 및 0입니다. 어셈블리 지침은 기계 코드 (1 및 0)로 변환되고 나중에 컴퓨터에서 사용되는 어셈블리로 작성된 코드 일뿐입니다. 제거 대상 : 어셈블리 언어는 다른 언어와 마찬가지로 컴퓨터와 상호 작용하는 데 사용되는 언어입니다. 어셈블리는 컴퓨터 코드로 직접 변환됩니다. 컴퓨터 코드는 컴퓨터에서 이해할 수있는 유일한 종류의 명령입니다. 컴퓨터는 기계 코드를 사용하여 정보를 처리하고 각 코드는 특정 작업을 처리합니다. 컴퓨터가 어셈블리를 이해하지 못하거나 c 또는 C++을 직접 이해하지 못하면 먼저 기계어 코드로 변환해야합니다.