기계어

CPU가 직접 해독하고 실행할 수 있는 비트 단위로 쓰인 컴퓨터 언어

기계어(機械語)는 CPU가 직접 해독하고 실행할 수 있는 비트 단위로 쓰인 컴퓨터 언어를 통틀어 일컫는다. 기계어는 프로그램을 나타내는 가장 낮은 단계의 개념이다.

WDC 65816 단일 기판 컴퓨터의 기계어 모니터가 코드의 역어셈블리된 모습 및 프로세서 레지스터, 메모리 덤프를 보여주고 있다.

기계어는 어셈블리어와 1 : 1로 쓰일 수 있다. 다시 말해 컴퓨터 프로그래밍에서 기계어는 대부분 어셈블리어를 거쳐 짜여지게 된다. 어셈블리어가 아직 만들어지기 전에는 기계어를 직접 입력하여 프로그램을 작성하기도 했으며, 오늘날에도 흔치는 않지만 그렇게 하는 사람이 있다. 기계어는 CPU의 종류에 따라서 서로 다른 코드를 갖게 된다.

편집

   6      5     5     5     5      6 bits
[  op  |  rs |  rt |  rd |shamt| funct]  R-type
[  op  |  rs |  rt | ad
      target address        ]  J-type

rs, rt, rd는 register 연산자를 지시한다; shamt는 변화량을 제공한다; addressimmediate 필드는 직접 연산을 포함한다.

이를테면, register 1과 2를 추가하여 register 6이라는 결과를 낳게 만들면 다음과 같이 인코딩된다:

[  op  |  rs |  rt |  rd |shamt| funct]
    0     1     2     6     0     32     decimal
 000000 00001 00010 00110 00000 100000   binary

값을 register 3에 나열된 위치 뒤의 메모리 셀 68 셀에서 가져온 register 8로 불러들인다:

[  op  |  rs |  rt | address/immediate]
   35     3     8           68           decimal
 100011 00011 01000 00000 00001 000100   binary

address 1024로 Jump:

[  op  |        target address        ]
    2                 1024               decimal
 000010 00000 00000 00000 10000 000000   binary

같이 보기 편집