기계어: 두 판 사이의 차이

위키백과, 우리 모두의 백과사전.
내용 삭제됨 내용 추가됨
TXiKiBoT (토론 | 기여)
잔글 로봇이 더함: hsb:Mašinowa rěč
AlleborgoBot (토론 | 기여)
잔글 로봇이 바꿈: it:L.macchina
60번째 줄: 60번째 줄:
[[hu:Gépi kód]]
[[hu:Gépi kód]]
[[id:Bahasa mesin]]
[[id:Bahasa mesin]]
[[it:Linguaggio macchina]]
[[it:L.macchina]]
[[ja:機械語]]
[[ja:機械語]]
[[lt:Mašininis kodas (programavimas)]]
[[lt:Mašininis kodas (programavimas)]]

2008년 5월 23일 (금) 17:24 판

기계어는 직접적으로 CPU에 의해 해독될 수 있는 비트 단위로 쓰여진 컴퓨터 언어를 통틀어 일컫는다. 기계어는 프로그램을 나타내는 가장 낮은 단계의 개념이다.

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

MIPS 아키텍처는 명령어의 길이가 언제나 32비트인 기계어를 위한 예제를 제공한다. 일반 명령어는 op (operation) 필드, 최고 6비트에 의해 주어진다. J-type (jump)와 I-type (immediate) 명령어는 완전히 op에 의해 지정된다. R-type (register) 명령어는 정확한 연산을 결정하기 위해 funct라는 추가 필드를 포함한다. 이러한 형에 쓰이는 필드는 다음과 같다:

   6      5     5     5     5      6 bits
[  op  |  rs |  rt |  rd |shamt| funct]  R-type
[  op  |  rs |  rt | address/immediate]  I-type
[  op  |        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 00100 000000   binary

같이 보기