[Excel] 엑셀로 16비트 CPU 만들기가 가능??
Becain
2024.01.29 15:32
3,082
0
0
0
본문
해외 유튜버가 엑셀을 이용을 해서 16bit CPU 를 만들고 이 CPu 를 통해서 게임도 만들었다고 하네요... 굉장한.... ㅎㅎ
프로젝트 개요
- 유튜버 Inkbox는 엑셀의 조건부 서식 기능을 이용해 3Hz로 동작하고 128KB의 램, 128x128의 픽셀 디스플레이를 가진 16비트 CPU를 엑셀 내에 구현했습니다.
- 이 CPU는 Inkbox가 만든 어셈블리 언어를 사용하며, 간단한 게임이나 프로그램을 실행할 수 있습니다.
- Inkbox는 이 프로젝트의 과정과 결과물을 유튜브 채널에 올렸습니다.
CPU 구조
- 이 CPU는 16비트의 데이터 버스와 16비트의 주소 버스를 가지고 있습니다.
- 레지스터는 A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P 총 16개로 구성되어 있습니다.
- 명령어는 16비트로 이루어져 있으며, 첫 4비트는 연산 코드, 나머지 12비트는 피연산자를 나타냅니다.
- 명령어는 메모리에서 읽어와서 디코더에 전달되고, 디코더는 연산 코드에 따라 적절한 연산을 수행합니다.
- 연산은 레지스터 간의 이동, 레지스터와 메모리 간의 이동, 레지스터와 상수 간의 이동, 레지스터의 산술 및 논리 연산, 비교 및 분기 등으로 구성됩니다.
- CPU는 3Hz의 클럭 주파수로 동작하며, 한 사이클에 한 명령어를 수행합니다.
디스플레이
- 이 CPU는 128x128의 픽셀 디스플레이를 가지고 있습니다.
- 각 픽셀은 4비트의 색상 값을 가지며, 총 16가지의 색상을 표현할 수 있습니다.
- 디스플레이는 메모리의 특정 영역에 매핑되어 있으며, 메모리의 값이 변경되면 디스플레이에 반영됩니다.
- 디스플레이는 엑셀의 셀을 이용해 구현되었으며, 셀의 배경색과 테두리를 조건부 서식으로 설정하여 픽셀을 흉내냈습니다.
어셈블리 언어
- 이 CPU는 Inkbox가 만든 어셈블리 언어를 사용합니다.
- 이 언어는 16비트의 명령어를 가지며, 다음과 같은 형식을 따릅니다.
[연산 코드] [피연산자1] [피연산자2]
- 연산 코드는 4비트로 표현되며, 다음과 같은 종류가 있습니다.
MOV : 레지스터, 메모리, 상수 간의 데이터 이동
ADD : 레지스터의 산술 덧셈
SUB : 레지스터의 산술 뺄셈
AND : 레지스터의 논리 곱
OR : 레지스터의 논리 합
XOR : 레지스터의 배타적 논리 합
NOT : 레지스터의 논리 부정
CMP : 레지스터의 비교
JMP : 레지스터, 메모리, 상수로 점프
JE : 레지스터, 메모리, 상수로 점프 (두 값이 같을 때)
JNE : 레지스터, 메모리, 상수로 점프 (두 값이 다를 때)
JG : 레지스터, 메모리, 상수로 점프 (첫 번째 값이 더 클 때)
JL : 레지스터, 메모리, 상수로 점프 (첫 번째 값이 더 작을 때)
- 피연산자는 6비트로 표현되며, 다음과 같은 종류가 있습니다.
R0 ~ R15 : 레지스터
M0 ~ M63 : 메모리
C0 ~ C63 : 상수
- 예를 들어, 다음과 같은 명령어는 A 레지스터에 10을 더하는 연산을 수행합니다.
ADD R0 C10
프로젝트 결과
- Inkbox는 이 CPU를 이용해 간단한 게임이나 프로그램을 만들어 보았습니다.
- 예를 들어, 다음과 같은 게임은 랜덤한 위치에 나타나는 적을 총으로 쏘는 게임입니다.
게임 로직
- 게임은 무한 루프를 돌면서 다음과 같은 과정을 반복합니다.
- 먼저, 적의 위치를 랜덤하게 결정합니다. 적의 위치는 M16에 저장됩니다.
- 그 다음, 키보드 입력을 받습니다. 키보드 입력은 M17에 저장됩니다.
- 키보드 입력에 따라 총알의 위치를 변경합니다. 총알의 위치는 M18에 저장됩니다.
- 총알의 위치와 적의 위치를 비교하여 점수를 계산합니다. 점수는 M19에 저장됩니다.
- 마지막으로, 디스플레이에 적, 총알, 점수를 출력합니다. 디스플레이는 M20부터 M16383까지의 메모리에 매핑됩니다
0
0
로그인 후 추천 또는 비추천하실 수 있습니다.
- Becain
- 회원등급 : 지하계 / Level 13
포인트 124,340
경험치 18,149
[레벨 13] - 진행률
99%
가입일 :
2020-07-29 23:57:30
-
Mobile - iPhone 16e 벤치마크 결과 공개! RAM 용량 및 충전 속도까지 확인2시간 38분전
-
Computer - AMD RX 9070 XT 벤치마크 유출! RTX 4070과 비슷한 성능?18시간 14분전
-
Mobile - 애플 폴더블폰, OPPO Find N 스타일로 나온다?18시간 26분전
-
Mobile - iPhone SE 4, 내일 공개 예상 – 하지만 5G 모뎀이 변수?2025-02-19
-
Computer - Intel Core Ultra 5 230F, 중국 전용 모델로 테스트 결과 공개2025-02-16
-
SNS - Gmail 오프라인 모드 활성화 및 사용 방법2025-02-16
-
Computer - Windows 11 24H2 공식 CPU 지원 리스트 공개, 새로운 AMD Ryzen 프로세서 추가2025-02-16
-
Computer - AMD, RX 9070 시리즈 2월 28일 공개 예고 – 32GB 모델 루머 부인2025-02-14
최신글이 없습니다.
댓글목록 0