"기계어"의 두 판 사이의 차이

1,531 바이트 추가됨 ,  13년 전
잔글
편집 요약 없음
(+같이 보기)
잔글
 
기계어는 [[어셈블리어]]와 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''는 변화량을 제공한다; ''address''나 ''immediate'' 필드는 직접 연산을 포함한다.
 
이를테면, 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
 
== 같이 보기 ==