작은 프로젝트로서 필자는 8080 아키텍처를 기반으로하는 구형 마이크로 컴퓨터 CPU 에뮬레이터를 제작 해왔다. 8 비트 범용 레지스터 (according to wikipedia)는 "3 개의 16 비트 레지스터 쌍"과 일반 8 비트 모드로 사용될 수 있습니다. 그리고 여기 내 문제가있다.모델링 마이크로 컴퓨터 메모리에 등록 하시겠습니까?
첫 번째 모델링 시도는 개별 이름이 지정된 바이트와 단락이었습니다. 사양 페이지를 다시 읽고 16 비트 레지스터가 실제로 자체적 인 것이 아니라는 것을 알았을 때까지 잘 작동했습니다. 죄송합니다.
내가 지금 노력하고있는 것은 8 비트 레지스터마다 하나의 위치와 스택/명령어 포인터 용으로 예약 된 두 위치의 바이트 배열입니다. 이것은 매우 잘 작동하고 8 비트 레지스터에 좋으며 관리하기가 훨씬 쉽지 않지만 2 바이트를 메모리 부족으로 변환하는 방법을 실제로 알지 못합니다. 그게 가능한가? 그렇지 않다면 어떻게해야하는지에 대한 제안이 있습니까?
공용체 사용을 고려하십시오. 또는 메모리 표현을 사용하여 직접 작업하려면 포인터를 사용하십시오. –
어, 어떻게 다른 유형의 두 변수를 가리키는 포인터를 만들까요? 나는 아직도 C++ 위업을 배우고있다. – Lexusjjss
기본적으로 동일한 메모리 주소를 가진 두 개의 다른 유형의 포인터가 있습니다. C++에이 작업을 위해 많은 것을 권유하고 있습니다. 그러나 C에서 벌거 벗게 드러난 프로그래밍 모델과 에뮬레이트하려고하는 하드웨어 아키텍처의 유사성 때문에 C에서는 사소한 부분도 없습니다. 물론 포인터 접근 방식은 에뮬레이트 된 호스트 아키텍처와 동일한 엔디안 방식을 필요로합니다 ... 현재 시점에서는 가능성이 매우 높습니다. –