1. κ°μ
μ΄μ λΈλ¦¬μ΄λ μ»΄ν¨ν°μ κΈ°κ³μ΄μ κ°κΉμ΄ μ κΈ νλ‘κ·Έλλ° μΈμ΄λ‘, νλ‘κ·Έλ¨μ μμ±νλ λ°μ μ¬μ©λ©λλ€. μ΄μ λΈλ¦¬μ΄λ κΈ°κ³μ΄μλ λ¬λ¦¬ μ¬λμ΄ μ΄ν΄νκΈ° μ¬μ΄ ννλ‘ κ΅¬μ±λμ΄ μμ΅λλ€. μ£Όλ‘ νλμ¨μ΄μ λ°μ ν κ΄λ ¨μ΄ μλ νλ‘κ·Έλλ° μμ μ νμ©λλ©°, μλμ ν¨μ¨μ±μ μ€μνλ μμ€ν νλ‘κ·Έλλ°μμ μ£Όλ‘ μ¬μ©λ©λλ€.
μ΄μ λΈλ¦¬μ΄λ λ€μν λͺ λ Ήμ΄λ€μ μ§ν©μ²΄λ‘ μ΄λ£¨μ΄μ Έ μμ΅λλ€. μ΄λ¬ν λͺ λ Ήμ΄λ€μ κΈ°λ₯μ λ°λΌ λ€μν νλͺ©μΌλ‘ λΆλ₯λ μ μμ΅λλ€. μ΄ κΈμμλ μ΄μ λΈλ¦¬μ΄ λͺ λ Ήμ΄λ€μ λ€μκ³Ό κ°μ΄ 5κ°μ§ νλͺ©μΌλ‘ λΆλ₯νμ¬ μ€λͺ νκ³ μ ν©λλ€:
- λ°μ΄ν° μ μ‘ λͺ λ Ήμ΄: λ°μ΄ν°λ₯Ό ν κ³³μμ λ€λ₯Έ κ³³μΌλ‘ μ μ‘νλ λͺ λ Ήμ΄λ€μ λν΄ μ€λͺ ν©λλ€.
- μ°μ λ° λ Όλ¦¬ μ°μ° λͺ λ Ήμ΄: λ°μ΄ν°μ λν μ°μ μ μΈ κ³μ° λ° λ Όλ¦¬ μ°μ°μ μννλ λͺ λ Ήμ΄λ€μ λν΄ μ€λͺ ν©λλ€.
- μ μ΄ λͺ λ Ήμ΄: νλ‘κ·Έλ¨μ νλ¦μ μ μ΄νλ λͺ λ Ήμ΄λ€μ λν΄ μ€λͺ ν©λλ€.
- μ μΆλ ₯ λͺ λ Ήμ΄: μΈλΆ μ₯μΉμμ λ°μ΄ν° μ μΆλ ₯μ μ μ΄νλ λͺ λ Ήμ΄λ€μ λν΄ μ€λͺ ν©λλ€.
μμ λΆλ₯λ₯Ό ν΅ν΄ μ΄μ λΈλ¦¬μ΄μ λ€μν λͺ λ Ήμ΄λ€μ λν΄ μμΈν μμλ³΄κ² μ΅λλ€.
2. λ°μ΄ν° μ μ‘ λͺ λ Ήμ΄
λ°μ΄ν° μ μ‘ λͺ λ Ήμ΄λ μ΄μ λΈλ¦¬μ΄μμ μ¬μ©λλ μ€μν λͺ λ Ήμ΄ μ€ νλμ λλ€. μ΄ λͺ λ Ήμ΄λ€μ λ°μ΄ν°λ₯Ό ν κ³³μμ λ€λ₯Έ κ³³μΌλ‘ μ μ‘νλ μν μ μνν©λλ€. λ°μ΄ν° μ μ‘ λͺ λ Ήμ΄λ λ€μκ³Ό κ°μ΄ ν¬κ² λ κ°μ§λ‘ λΆλ₯λ μ μμ΅λλ€:
λ μ§μ€ν° κ° μ μ‘ λͺ λ Ήμ΄: μ΄ λͺ λ Ήμ΄λ€μ λ μ§μ€ν° κ°μ κ°μ μ μ‘νλ μν μ μνν©λλ€. μλ₯Ό λ€μ΄, MOV(λλ MOVE)λΌλ λͺ λ Ήμ΄λ ν λ μ§μ€ν°μ κ°μ΄λ λ©λͺ¨λ¦¬μ κ°μ΄ λ€λ₯Έ λ μ§μ€ν°λ‘ 볡μ¬λλ μν μ μνν©λλ€. MOV λͺ λ Ήμ΄λ λ€μν ννκ° μμΌλ©°, λ κ°μ μ€νΌλλ(operand)λ₯Ό κ°μ§κ³ μλν©λλ€. 첫 λ²μ§Έ μ€νΌλλλ 볡μ¬λ κ°μ΄λ μμΉλ₯Ό κ°λ¦¬ν€κ³ , λ λ²μ§Έ μ€νΌλλλ 볡μ¬λ λμμ κ°λ¦¬ν΅λλ€. μλ₯Ό λ€μ΄,
MOV AX, BX
λΌλ λͺ λ Ήμ΄λ BX λ μ§μ€ν°μ κ°μ΄ AX λ μ§μ€ν°λ‘ 볡μ¬λλ μν μ μνν©λλ€.λ©λͺ¨λ¦¬ κ° μ μ‘ λͺ λ Ήμ΄: μ΄ λͺ λ Ήμ΄λ€μ λ©λͺ¨λ¦¬ μ£Όμ κ°μ κ°μ μ μ‘νλ μν μ μνν©λλ€. μλ₯Ό λ€μ΄, LOAD(λλ LDR)λΌλ λͺ λ Ήμ΄λ νΉμ λ©λͺ¨λ¦¬ μ£Όμμ κ°μ΄ λ μ§μ€ν°λ‘ λ‘λλλ μν μ μνν©λλ€. μ΄λ¬ν λͺ λ Ήμ΄λ€μ λ©λͺ¨λ¦¬ μ£Όμμ λ μ§μ€ν°λ₯Ό μ€νΌλλλ‘ κ°μ§λ©°, λ©λͺ¨λ¦¬μ κ°μ ν΄λΉ λ μ§μ€ν°μ λ‘λν©λλ€. μλ₯Ό λ€μ΄,
LOAD A, [1000]
λΌλ λͺ λ Ήμ΄λ λ©λͺ¨λ¦¬ μ£Όμ 1000μ μμΉν κ°μ΄ A λ μ§μ€ν°λ‘ λ‘λλλ μν μ μνν©λλ€.
λ°μ΄ν° μ μ‘ λͺ λ Ήμ΄λ νλ‘κ·Έλ¨μμ λ°μ΄ν°μ μ΄λκ³Ό 볡μ¬μ μ€μν μν μ μνν©λλ€. μ΄λ¬ν λͺ λ Ήμ΄λ₯Ό μ μ ν μ¬μ©νμ¬ λ°μ΄ν° μ μ‘ μμ μ μ ννκ² μνν μ μμ΅λλ€.
3. μ°μ λ° λ Όλ¦¬ μ°μ° λͺ λ Ήμ΄
μ°μ λ° λ Όλ¦¬ μ°μ° λͺ λ Ήμ΄λ μ΄μ λΈλ¦¬μ΄μμ λ°μ΄ν°μ λν μ°μ μ μΈ κ³μ° λ° λ Όλ¦¬ μ°μ°μ μννλ λͺ λ Ήμ΄λ€μ λ§ν©λλ€. μ΄λ¬ν λͺ λ Ήμ΄λ€μ λ°μ΄ν°μ μ²λ¦¬λ₯Ό μν΄ λ€μν μ°μ°μ μνν μ μλλ‘ λμμ€λλ€. μ°μ λ° λ Όλ¦¬ μ°μ° λͺ λ Ήμ΄λ λ€μκ³Ό κ°μ΄ ν¬κ² μΈ κ°μ§λ‘ λΆλ₯λ μ μμ΅λλ€:
μ°μ μ°μ° λͺ λ Ήμ΄: μ°μ μ°μ° λͺ λ Ήμ΄λ€μ λ°μ΄ν°μ λν μ°μ μ μΈ κ³μ°μ μννλ μν μ ν©λλ€. λνμ μΈ μ°μ μ°μ° λͺ λ Ήμ΄λ‘λ ADD(λ§μ ), SUB(λΊμ ), MUL(κ³±μ ), DIV(λλμ ) λ±μ΄ μμ΅λλ€. μ΄λ¬ν λͺ λ Ήμ΄λ€μ μ£Όλ‘ λ°μ΄ν°μ μ¦κ°, κ°μ, κ³±μ , λλμ κ³Ό κ°μ μ°μ°μ μνν λ μ¬μ©λ©λλ€. μλ₯Ό λ€μ΄,
ADD A, B
λΌλ λͺ λ Ήμ΄λ A λ μ§μ€ν°μ B λ μ§μ€ν°μ κ°μ λν΄ A λ μ§μ€ν°μ μ μ₯νλ μν μ ν©λλ€.λ Όλ¦¬ μ°μ° λͺ λ Ήμ΄: λ Όλ¦¬ μ°μ° λͺ λ Ήμ΄λ€μ λ°μ΄ν°μ λν λ Όλ¦¬μ μΈ μ°μ°μ μννλ μν μ ν©λλ€. μ£Όλ‘ AND(λ Όλ¦¬ κ³±), OR(λ Όλ¦¬ ν©), NOT(λ Όλ¦¬ λΆμ )κ³Ό κ°μ λͺ λ Ήμ΄λ€μ΄ μ¬μ©λ©λλ€. μ΄λ¬ν λͺ λ Ήμ΄λ€μ λ°μ΄ν°μ λΉνΈ λ¨μ μ°μ°μ μ¬μ©λλ©°, λ κ°μ λΉκ΅ λμμ μ‘°ν©νμ¬ λΉκ΅ κ²°κ³Όλ₯Ό λ°νν©λλ€. μλ₯Ό λ€μ΄,
AND A, B
λΌλ λͺ λ Ήμ΄λ A λ μ§μ€ν°μ B λ μ§μ€ν°μ λΉνΈλ₯Ό λ Όλ¦¬ κ³± μ°μ°ν κ²°κ³Όλ₯Ό A λ μ§μ€ν°μ μ μ₯νλ μν μ ν©λλ€.λΉκ΅ μ°μ° λͺ λ Ήμ΄: λΉκ΅ μ°μ° λͺ λ Ήμ΄λ€μ λ°μ΄ν°μ λΉκ΅λ₯Ό μννλ μν μ ν©λλ€. μ£Όλ‘ CMP(λΉκ΅)λΌλ λͺ λ Ήμ΄κ° μ¬μ©λλ©°, μ΄ λͺ λ Ήμ΄λ λ κ°μ λ°μ΄ν°λ₯Ό λΉκ΅νμ¬ λΉκ΅ κ²°κ³Όλ₯Ό μ€μ ν©λλ€. λΉκ΅ κ²°κ³Όλ λ κ°μ λ°μ΄ν°κ° λμΌνμ§ μ¬λΆμ κ°μ μ 보λ₯Ό μ 곡ν©λλ€.
μ°μ λ° λ Όλ¦¬ μ°μ° λͺ λ Ήμ΄λ νλ‘κ·Έλ¨μμ λ°μ΄ν°μ μ²λ¦¬μ κ³μ°μ νμμ μΈ λΆλΆμ λλ€. μ΄λ¬ν λͺ λ Ήμ΄λ€μ μ μ ν νμ©νμ¬ λ°μ΄ν°μ μ°μ λ° λ Όλ¦¬ μ°μ°μ μ ννκ² μνν μ μμ΅λλ€.
4. μ μ΄ λͺ λ Ήμ΄
μ μ΄ λͺ λ Ήμ΄λ μ΄μ λΈλ¦¬μ΄μμ νλ‘κ·Έλ¨μ νλ¦μ μ μ΄νλ μν μ μννλ λͺ λ Ήμ΄λ€μ λ§ν©λλ€. μ΄λ¬ν λͺ λ Ήμ΄λ€μ νλ‘κ·Έλ¨μ μ€ν μμλ₯Ό λ°κΎΈκ±°λ, λ°λ³΅λ¬Έμ μ μ΄νκ±°λ, λΆκΈ°λ¬Έμ μ€ννλ λ±μ μμ μ μνν©λλ€. μ μ΄ λͺ λ Ήμ΄λ λ€μκ³Ό κ°μ΄ ν¬κ² μΈ κ°μ§λ‘ λΆλ₯λ μ μμ΅λλ€:
λΆκΈ° λͺ λ Ήμ΄: λΆκΈ° λͺ λ Ήμ΄λ€μ νλ‘κ·Έλ¨μ μ€ν νλ¦μ νΉμ μμΉλ‘ μ΄λμν€λ μν μ ν©λλ€. λνμ μΈ λΆκΈ° λͺ λ Ήμ΄λ‘λ JMP(무쑰건 μ ν), JZ(0μΌ κ²½μ° μ ν), JNZ(0μ΄ μλ κ²½μ° μ ν) λ±μ΄ μμ΅λλ€. μ΄λ¬ν λͺ λ Ήμ΄λ€μ μ£Όλ‘ μ‘°κ±΄μ λ°λΌ λ€λ₯Έ μμΉλ‘ νλ‘κ·Έλ¨μ μ€νμ λΆκΈ°μν€λ μν μ ν©λλ€. μλ₯Ό λ€μ΄,
JMP target
λΌλ λͺ λ Ήμ΄λ νλ‘κ·Έλ¨μ νλ¦μ target μμΉλ‘ μ΄λμν€λ μν μ μνν©λλ€.λ°λ³΅ λͺ λ Ήμ΄: λ°λ³΅ λͺ λ Ήμ΄λ€μ νλ‘κ·Έλ¨μ μΌλΆλ₯Ό λ°λ³΅ μ€νμν€λ μν μ ν©λλ€. λνμ μΈ λ°λ³΅ λͺ λ Ήμ΄λ‘λ LOOP(λ°λ³΅ 루ν), LDI(λ°λ³΅ μ΄κΈ°ν), LDB(λ°λ³΅ μν) λ±μ΄ μμ΅λλ€. μ΄λ¬ν λͺ λ Ήμ΄λ€μ λ°λ³΅ νμλ₯Ό μ μ΄νκ³ , νΉμ 쑰건μ λ§μ‘±ν λκΉμ§ λ°λ³΅ μ€νν μ μλλ‘ λμμ€λλ€. μλ₯Ό λ€μ΄,
LOOP target
λΌλ λͺ λ Ήμ΄λ λ°λ³΅ μΉ΄μ΄ν°λ₯Ό κ°μμν¨ ν, μΉ΄μ΄ν°κ° 0μ΄ μλλΌλ©΄ target μμΉλ‘ μ΄λνμ¬ λ°λ³΅ μ€νμ μνν©λλ€.μ ν λͺ λ Ήμ΄: μ ν λͺ λ Ήμ΄λ€μ νλ‘κ·Έλ¨μ μ€ν μμΉλ₯Ό 쑰건μ λ°λΌ λ³κ²½νλ μν μ ν©λλ€. λνμ μΈ μ ν λͺ λ Ήμ΄λ‘λ CALL(ν¨μ νΈμΆ), RET(리ν΄), INT(μΈν°λ½νΈ λ°μ) λ±μ΄ μμ΅λλ€. μ΄λ¬ν λͺ λ Ήμ΄λ€μ μλΈλ£¨ν΄ νΈμΆ, ν¨μ 볡κ·, μμ€ν νΈμΆ λ±κ³Ό κ°μ μμ μ μνν©λλ€. μλ₯Ό λ€μ΄,
CALL subroutine
λΌλ λͺ λ Ήμ΄λ subroutine μμΉλ‘ μ ννμ¬ μλΈλ£¨ν΄μ νΈμΆν©λλ€.
μ μ΄ λͺ λ Ήμ΄λ νλ‘κ·Έλ¨μ μ€ν νλ¦μ μ μ΄νμ¬ μνλ μμ μ μνν μ μλλ‘ λμμ€λλ€. μ΄λ¬ν λͺ λ Ήμ΄λ€μ μ μ ν νμ©νμ¬ νλ‘κ·Έλ¨μ μ μ΄ κ΅¬μ‘°λ₯Ό μ€κ³ν μ μμ΅λλ€.
5. μ μΆλ ₯ λͺ λ Ήμ΄
μ μΆλ ₯ λͺ λ Ήμ΄λ μ΄μ λΈλ¦¬μ΄μμ μ μΆλ ₯ μμ μ μννλ λͺ λ Ήμ΄λ€μ λ§ν©λλ€. μ΄λ¬ν λͺ λ Ήμ΄λ€μ μ»΄ν¨ν°μ μ£Όλ³ μ₯μΉκ°μ λ°μ΄ν° μ μ‘μ μν΄ μ¬μ©λ©λλ€. μ μΆλ ₯ λͺ λ Ήμ΄λ λ€μν μ μΆλ ₯ μ₯μΉμμ μνΈμμ©μ κ°λ₯νκ² νλ©°, μ£Όλ‘ λ μ§μ€ν°λ₯Ό ν΅ν΄ λ°μ΄ν°λ₯Ό μ μΆλ ₯ν©λλ€. μ μΆλ ₯ λͺ λ Ήμ΄λ λ€μκ³Ό κ°μ΄ ν¬κ² λ κ°μ§λ‘ λΆλ₯λ μ μμ΅λλ€:
μ λ ₯ λͺ λ Ήμ΄: μ λ ₯ λͺ λ Ήμ΄λ€μ μ£Όλ³ μ₯μΉλ‘λΆν° λ°μ΄ν°λ₯Ό μ½μ΄μ€λ μν μ ν©λλ€. λνμ μΈ μ λ ₯ λͺ λ Ήμ΄λ‘λ IN(μ λ ₯)μ΄ μμ΅λλ€. μ΄λ¬ν λͺ λ Ήμ΄λ€μ μ£Όλ‘ ν¬νΈ λ²νΈλ₯Ό μ§μ νμ¬ ν΄λΉ ν¬νΈλ‘λΆν° λ°μ΄ν°λ₯Ό μ½μ΄μ΅λλ€. μλ₯Ό λ€μ΄,
IN A, 01h
λΌλ λͺ λ Ήμ΄λ 01h ν¬νΈλ‘λΆν° λ°μ΄ν°λ₯Ό μ½μ΄ A λ μ§μ€ν°μ μ μ₯νλ μν μ ν©λλ€.μΆλ ₯ λͺ λ Ήμ΄: μΆλ ₯ λͺ λ Ήμ΄λ€μ λ°μ΄ν°λ₯Ό μ£Όλ³ μ₯μΉλ‘ 보λ΄λ μν μ ν©λλ€. λνμ μΈ μΆλ ₯ λͺ λ Ήμ΄λ‘λ OUT(μΆλ ₯)μ΄ μμ΅λλ€. μ΄λ¬ν λͺ λ Ήμ΄λ€μ μ£Όλ‘ ν¬νΈ λ²νΈλ₯Ό μ§μ νμ¬ ν΄λΉ ν¬νΈλ‘ λ°μ΄ν°λ₯Ό 보λ λλ€. μλ₯Ό λ€μ΄,
OUT 02h, B
λΌλ λͺ λ Ήμ΄λ B λ μ§μ€ν°μ λ°μ΄ν°λ₯Ό 02h ν¬νΈλ‘ 보λ΄λ μν μ ν©λλ€.
μ μΆλ ₯ λͺ λ Ήμ΄λ₯Ό μ¬μ©νμ¬ μ»΄ν¨ν°μ μ£Όλ³ μ₯μΉ κ°μ λ°μ΄ν°λ₯Ό μ μ‘ν μ μμ΅λλ€. μ΄λ¬ν λͺ λ Ήμ΄λ€μ νμ©νμ¬ νλ‘κ·Έλ¨μμ νμν μ μΆλ ₯ μμ μ μνν μ μμΌλ©°, μ£Όλ³ μ₯μΉμμ ν΅μ μ ν¨κ³Όμ μΌλ‘ κ΄λ¦¬ν μ μμ΅λλ€.
λκΈ