μ©μ΄ μ μ
μλμμ κ°κ°μ μ©μ΄μ λν΄ μ μν ν, μ΄λ€μ΄ μλ‘ μ΄λ»κ² κ΄κ³λ₯Ό λ§Ίκ³ μλμ§ μ€λͺ
ν κ².
- Assembly Language (μ΄μ
λΈλ¦¬ μΈμ΄)
- μ μ: CPUμ λͺ
λ Ήμ΄λ₯Ό μ¬λμ΄ μ½μ μ μλ ννλ‘ ννν μ μμ€ νλ‘κ·Έλλ° μΈμ΄. νΉμ νλ‘μΈμ μν€ν
μ²μ λ°μ νκ² κ΄λ ¨λλ©°, κ°κ°μ λͺ
λ Ήμ΄λ ν΄λΉ νλ‘μΈμμ λͺ
λ Ήμ΄ μ§ν©(ISA)μ μ§μ λμλλ€. μ΄μ
λΈλ¦¬ μΈμ΄λ μ¬λμ΄ μμ±ν μ μμ§λ§, κ²°κ΅ κΈ°κ³κ° μ²λ¦¬ν μ μλ μ΄μ§ μ½λλ‘ λ³νλμ΄μΌ νλ€.
- μμ:
MOV R1, #5
(λ μ§μ€ν° R1μ μ«μ 5λ₯Ό μ΄λ)
- Binary Code (μ΄μ§ μ½λ)
- μ μ: μ»΄ν¨ν°κ° μ΄ν΄ν μ μλ 0κ³Ό 1λ‘ μ΄λ£¨μ΄μ§ λͺ
λ Ήμ΄. μ΄μ
λΈλ¦¬ μΈμ΄λ‘ μμ±λ μ½λλ₯Ό μ»΄νμΌνκ±°λ μ΄μ
λΈλ¦¬νμ¬ μ΄μ§ μ½λλ‘ λ³νν μ μλ€. μ΄λ CPUκ° μ§μ ν΄μνκ³ μ€ννλ λͺ
λ Ήμ΄μ μ€μ ννμ΄λ€.
- μμ:
10101000 00000101
(μ΄μ
λΈλ¦¬ λͺ
λ Ήμ΄ MOV R1, #5
μ μ΄μ§ νν)
- Instruction (λͺ
λ Ήμ΄)
- μ μ: CPUκ° μνν μμ
μ μ§μνλ λͺ
λ Ήμ΄λ‘, ISAμ μ μλ ννλ‘ μ‘΄μ¬νλ€. Instructionμ μ΄μ
λΈλ¦¬ μΈμ΄ λλ μ΄μ§ μ½λλ‘ ννλλ©°, λ©λͺ¨λ¦¬μμ νμΉ(fetch)λ ν CPUμ μν΄ μ€νλλ€.
- μμ:
ADD R1, R2, R3
(λ μ§μ€ν° R2μ R3μ κ°μ λν΄ R1μ μ μ₯)
- Operation (μ°μ°)
- μ μ: Instructionμ μν΄ μνλλ μ€μ μμ
. CPUκ° λͺ
λ Ήμ΄λ₯Ό ν΄μν ν νΉμ μ°μ°μ μννλ κ²μ μλ―Ένλ©°, μ°μ μ°μ°(λ§μ
, λΊμ
)μ΄λ λ
Όλ¦¬ μ°μ°(AND, OR) λ±μ΄ ν¬ν¨λλ€.
- μμ: λ§μ
(ADD) μ°μ°μ΄ μ€νλμ΄ λ μ§μ€ν° R2μ R3μ κ°μ΄ λν΄μ§λ κ².
- Compiler (μ»΄νμΌλ¬)
- μ μ: κ³ μμ€ νλ‘κ·Έλλ° μΈμ΄(μ: C, Python)λ‘ μμ±λ μ½λλ₯Ό CPUκ° μ΄ν΄ν μ μλ μ μμ€ μΈμ΄(μ΄μ
λΈλ¦¬ λλ μ΄μ§ μ½λ)λ‘ λ³ννλ νλ‘κ·Έλ¨. κ³ μμ€ μΈμ΄μ μ½λκ° μ§μ μ μΌλ‘ CPUμμ μ€νλμ§ μκΈ° λλ¬Έμ, μ»΄νμΌλ¬κ° μ΄λ₯Ό λ³ννλ μν μ νλ€.
- μμ: C μΈμ΄λ‘ μμ±λ μ½λλ₯Ό μ΄μ
λΈλ¦¬ λλ μ΄μ§ μ½λλ‘ λ³ννμ¬ μ€ν νμΌμ μμ±.
- CPU (Central Processing Unit)
- μ μ: μ»΄ν¨ν° μμ€ν
μ ν΅μ¬ μ²λ¦¬ μ₯μΉλ‘, λͺ¨λ λͺ
λ Ήμ΄λ₯Ό ν΄μνκ³ μ€ννλ©° μ°μ μ°μ°κ³Ό λ
Όλ¦¬ μ°μ°μ μ²λ¦¬νλ€. CPUλ Instructionμ λ©λͺ¨λ¦¬μμ κ°μ Έμ(νμΉ), μ΄λ₯Ό ν΄μνκ³ (λμ½λ), μ€μ λ‘ μ€ν(Execute)νλ μΈ λ¨κ³λ₯Ό κ±°μΉλ€.
- μμ: Intel Core i7, AMD Ryzen.
κ΄κ³ μ€λͺ
- Compilerλ κ³ μμ€ νλ‘κ·Έλλ° μΈμ΄λ‘ μμ±λ μμ€ μ½λλ₯Ό Assembly Languageλ Binary Codeλ‘ λ³ννλ€. μ΄ λ³νλ μ½λλ CPUκ° μ΄ν΄ν μ μλ InstructionμΌλ‘ ꡬμ±λλ€.
- Assembly Languageλ μ¬λ μΉνμ μΈ ννμ΄μ§λ§, Binary Codeλ CPUκ° μ€μ λ‘ μ²λ¦¬νλ λ°μ΄ν°μ΄λ€.
- Instructionμ Assembly Languageμ Binary Code λͺ¨λμμ μ¬μ©λλ©°, CPUκ° μνν μμ
μ μ μνλ€. CPUκ° Instructionμ κ°μ Έμ μ€ννκ² λλ€.
- CPUλ Instructionμ Fetch(κ°μ Έμ€κΈ°), Decode(ν΄μ), **Execute(μ€ν)**μ μμλ‘ μ²λ¦¬νλ€. μ΄λ Instructionμ΄ λͺ
μνλ Operation(μ°μ°)μ΄ CPUμμ μ€μ λ‘ μ€νλλ€. μλ₯Ό λ€μ΄,
ADD
λͺ
λ Ήμ΄λ λ μ§μ€ν°μ λ κ°μ λνλ λ§μ
Operationμ μννλ€.
- Binary Codeλ‘ λ³νλ Instructionμ CPUμ μν΄ μ§μ ν΄μλμ΄ Operationμ΄ μ€νλλ€. μ΄λ, CPUλ λ μ§μ€ν°, λ©λͺ¨λ¦¬, μ°μ λ
Όλ¦¬ μ°μ° μ₯μΉ(ALU) λ±μ μ¬μ©ν΄ μ°μ°μ μννλ€.
μ΄λ€μ κ΄κ³λ₯Ό μμ½νμλ©΄:
- Compilerλ κ³ μμ€ μΈμ΄λ₯Ό Assembly Language λλ Binary Codeλ‘ λ³ννλ€.
- Instructionμ Assembly Language λλ Binary Codeμ ννλ‘ μ‘΄μ¬νλ©°, CPUκ° μ²λ¦¬ν μμ
μ μ§μνλ€.