이 프로젝트는 CPU와 메모리로 구성된 간단한 컴퓨터 시스템을 시뮬레이션합니다. CPU와 메모리는 통신하는 별도의 프로세스로 시뮬레이션됩니다. 메모리에는 CPU가 실행되는 하나의 프로그램이 포함 된 다음 시뮬레이션이 종료됩니다.
CPU의 경우 :
메모리 용 :
타이머 :
인터럽트 처리 :
교육 세트 :
-> 1 =로드 값 # 값을 AC에로드합니다.
-> 2 = 부하 Addr # 주소의 값을 AC에로드합니다.
-> 3 = loadInd addr # 주어진 주소에있는 주소에서 값을 AC에로드합니다. (예를 들어, 500을로드하고 500에 100이 포함 된 경우 100에서로드).
-> 4 = loadIdxx addr # (주소+x)의 값을 AC에로드합니다. (예를 들어, loadIdxx 500이고 x에 10이 포함 된 경우 510에서로드).
-> 5 = loadIdxy addr # a (주소+y)의 값을 AC에로드합니다.
-> 6 = loadspx # (sp+x)에서 AC로로드 (SP가 990이고 x가 1, 991에서로드)로드.
-> 7 = 상점 추가 # AC의 값을 주소로 저장
-> 8 = get # lemant int를 1에서 100까지 AC로 가져옵니다.
-> 9 = 포트 #을 port = 1 인 경우 aC를 화면에 int로 씁니다. port = 2 인 경우 AC를 화면에 숯으로 씁니다.
-> 10 = addx # x의 값을 AC에 추가
-> 11 = addy # y의 값 추가 AC에 추가
-> 12 = Subx # AC에서 X의 값을 빼냅니다.
-> 13 = suby # AC에서 Y로 값을 빼냅니다.
-> 14 = CopyTox # AC의 값을 x로 복사합니다.
-> 15 = COPYFROMX # X의 값을 AC에 복사합니다.
-> 16 = CopyToy # AC의 값을 Y로 복사합니다.
-> 17 = Copyfromy # y의 값을 AC에 복사합니다.
-> 18 = CopyTosp # AC의 값을 SP에 복사합니다.
-> 19 = Copyfromsp # SP의 값을 AC에 복사합니다.
-> 20 = Jump Addr # 주소로 점프
-> 21 = jumpifequal addr # AC의 값이 0 인 경우에만 주소로 점프합니다.
-> 22 = jumpifnotequal addr # AC의 값이 0이 아닌 경우에만 주소로 점프
-> 23 = 호출 addr # 스택에 반환 주소를 푸시하고 주소로 점프합니다.
-> 24 = Ret # 스택에서 팝 리턴 주소, 주소로 점프
-> 25 = incx # x의 값을 증가시킵니다.
-> 26 = decx # x의 값 감소
-> 27 = 푸시 # AC를 스택에 푸시합니다
-> 28 = 팝 # 스택에서 AC로 팝 팝
-> 29 = int # 시스템 호출을 수행합니다
-> 30 = IRET # 시스템 호출에서 반환합니다
-> 50 = 종료 # 끝 실행
======================================================================================
샘플 폴더에는 5 개의 샘플 파일이 포함되어 있습니다.
샘플 1.txt
sample2.txt
sample3.txt
sample4.txt
sample5.txt
======================================================================================
프로젝트 컴파일 및 실행 단계 :