인텔 8080 CPU를 위한 어셈블러 개발하기

Find AI Tools
No difficulty
No complicated process
Find ai tools

인텔 8080 CPU를 위한 어셈블러 개발하기

목차

  1. 소개
  2. 인텔 8080 명령어 집합 1) Knob 2) LXI 3) Stack 4) Inks
  3. 명령어별 이진 코드
  4. 올바른 인수 확인
  5. 인스트럭션 처리 함수
  6. 액션 함수
  7. 패스 1과 패스 2의 동작
  8. 패스 1에서의 레이블 추가
  9. 주소 카운터 증가
  10. 패스 2에서의 인스트럭션 출력
  11. 마무리

인텔 8080 어셈블러 개발하기

이번 시간에는 인텔 8080 CPU의 명령어 집합을 세분화하여 각 명령어에 해당하는 이진 코드를 출력하는 기능을 개발할 것입니다. 이를 위해 각 명령어의 올바른 인수를 확인하는 기능도 구현할 것입니다. 우선은 가장 간단한 명령어인 Knob을 처리하는 함수부터 작성해보겠습니다.

😊 Knob 명령어 처리하기

Knob 명령어는 인수를 전달받지 않는 가장 간단한 명령어입니다. 따라서 우리는 이 명령어를 처리하기 전에 올바른 인수가 제공되었는지 체크하는 함수를 작성해야 합니다. 그 후, 실제로 해당 명령어에 대한 액션을 수행하는 함수를 작성하면 됩니다.

def check_arguments(tokens):
    if tokens:
        raise Exception(f"인수 개수가 올바르지 않습니다: {tokens.instruction}")

def knob(tokens, output):
    check_arguments(tokens)
    output_exe = output.exe
    out_byte = 0x00

    output_exe += bytes([out_byte])
    output.address += 1

    return output

이렇게 작성된 Knob 명령어 처리 함수를 실행하면, 올바른 인수가 제공되지 않았을 경우 예외가 발생하며, 그렇지 않은 경우에는 이진 코드를 올바른 주소에 출력하게 됩니다.

이와 마찬가지로, 다른 명령어들에 대한 처리 함수와 액션 함수도 작성하고, 패스 1과 패스 2에서의 동작을 구분하여 개발해나가면 됩니다. 다음 시간에는 8080 명령어들 중 1/4에 해당하는 부분을 완성하도록 할 것이며, 마지막에는 완성된 어셈블러를 사용하여 이진 코드를 생성하는 예제를 다룰 예정입니다.

Are you spending too much time looking for ai tools?
App rating
4.9
AI Tools
100k+
Trusted Users
5000+
WHY YOU SHOULD CHOOSE TOOLIFY

TOOLIFY is the best ai tool source.