기계어: 두 판 사이의 차이

위키백과, 우리 모두의 백과사전.
내용 삭제됨 내용 추가됨
EmausBot (토론 | 기여)
잔글 r2.7.3) (로봇: tl:Kodigo ng makina 추가
Addbot (토론 | 기여)
잔글 봇: 인터위키 링크 53 개가 위키데이터d:q55813 항목으로 옮겨짐
36번째 줄: 36번째 줄:


[[분류:컴퓨터 언어]]
[[분류:컴퓨터 언어]]

[[ar:لغة الآلة]]
[[be:Машынны код]]
[[bg:Машинен език]]
[[bn:যান্ত্রিক ভাষা]]
[[br:Areg ijinenn]]
[[bs:Mašinski jezik]]
[[ca:Llenguatge de màquina]]
[[cs:Strojový kód]]
[[da:Maskinkode]]
[[de:Maschinensprache]]
[[el:Γλώσσα μηχανής]]
[[en:Machine code]]
[[eo:Maŝinkodo]]
[[es:Lenguaje de máquina]]
[[et:Masinkood]]
[[eu:Makina-lengoaia]]
[[fa:زبان ماشین]]
[[fi:Konekieli]]
[[fr:Langage machine]]
[[gl:Código máquina]]
[[he:שפת מכונה]]
[[hi:मशीनी भाषा]]
[[hr:Strojni jezik]]
[[hsb:Mašinowa rěč]]
[[hu:Gépi kód]]
[[id:Bahasa mesin]]
[[is:Vélamál]]
[[it:Linguaggio macchina]]
[[ja:機械語]]
[[jbo:sambau]]
[[ka:მანქანური ენა]]
[[kk:Машиналық тіл]]
[[lt:Mašininis kodas (programavimas)]]
[[mhr:Машин код]]
[[ml:യന്ത്രഭാഷ]]
[[mn:Машин код]]
[[nl:Machinetaal]]
[[no:Maskinkode]]
[[pl:Język maszynowy]]
[[pt:Código de máquina]]
[[ru:Машинный код]]
[[simple:Machine code]]
[[sk:Strojový kód]]
[[sl:Strojna koda]]
[[sr:Машински језик]]
[[sv:Maskinkod]]
[[th:ภาษาเครื่อง]]
[[tl:Kodigo ng makina]]
[[tr:Makine dili]]
[[uk:Машинний код]]
[[ur:آلاتی زبان]]
[[vi:Ngôn ngữ máy]]
[[zh:机器语言]]

2013년 3월 9일 (토) 00:42 판

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

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

   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

같이 보기