CPU 심
CPU Sim| 원저작자 | 데일 스크리엔[1] |
|---|---|
| 안정된 릴리스 | 4.0.11 / 2017년 8월 |
| 기입처 | 자바 |
| 운영 체제 | MS-Windows, Linux, Mac (크로스 플랫폼) |
| 유형 | IDE |
| 면허증. | GPLv3+ |
| 웹 사이트 | www |
CPU Sim은 단순한 컴퓨터 시뮬레이션을 위한 소프트웨어 개발 환경입니다.이것은 학생들이 컴퓨터 아키텍처를 이해하는 것을 돕기 위해 Dale Scrien에 의해 개발되었다.이 애플리케이션을 사용하면 새로운 CPU 또는 기존의 단순한 CPU를 시뮬레이트할 수 있습니다.사용자는 일련의 마이크로 명령으로 구현되는 커스텀 머신 언어 명령을 사용하여 새로운 가상 CPU를 생성할 수 있습니다.CPU Sim을 사용하면 시뮬레이션 중인 CPU의 어셈블리 언어 프로그램을 편집하고 실행할 수 있습니다.
CPU Sim은 Java Swing 패키지를 사용하여 프로그래밍되었습니다.즉, 플랫폼에 의존하지 않습니다(Java 가상 머신이 설치된 모든 플랫폼에서 실행).
Wombat 1 샘플 CPU
샘플 컴퓨터 시스템인 웜뱃 1은 CPU Sim을 갖추고 있다.다음과 같은 레지스터가 있습니다.
- pc(프로그램 카운터);
- 액셀러레이터(조절기);
- ir(지시대장);
- mar(메모리 주소 레지스터);
- mdr(메모리 데이터 레지스터);
- 상황.
Wombat 1 컴퓨터의 어셈블리 언어는 12개의 명령어로 구성됩니다.각 명령은 16비트에 저장됩니다.첫 번째 4는 opcode이고 나머지 12는 주소 필드입니다.
| 니모닉 | 작업코드 | 필드 길이 | 의미. |
|---|---|---|---|
| 이제 그만 | 0 | 16 | 프로그램 실행을 중지합니다. |
| 장전 | 1 | 4 12 | 메모리에서 어큐뮬레이터로 데이터 전송 |
| 가게 | 2 | 4 12 | 축적기에서 메모리로 데이터 전송 |
| 읽어주세요 | 3 | 4 (12) | IO 콘솔의 데이터를 어큐뮬레이터에 저장합니다. |
| 쓰다 | 4 | 4 (12) | 데이터를 어큐뮬레이터에서 IO 콘솔로 전송합니다. |
| 더하다 | 5 | 4 12 | 메모리의 데이터를 어큐뮬레이터에 추가하면 결과가 어큐뮬레이터에 저장됩니다. |
| 빼다 | 6 | 4 12 | 메모리에서 데이터를 축전기에서 빼서 결과를 축전기에 저장합니다. |
| 곱하다 | 7 | 4 12 | 메모리의 데이터에 축전기를 곱하면 결과가 축전기에 저장됩니다. |
| 나누다 | 8 | 4 12 | 메모리의 데이터를 어큐뮬레이터로 분할하여 결과를 어큐뮬레이터에 저장합니다. |
| jmpz | 9 | 4 12 | 어큐뮬레이터가 0인 경우 주소로 이동 |
| jmpn | A | 4 12 | 축전지가 음수인 경우 바로 대응 |
| 뛰어내리다 | B | 4 12 | 무조건 속전속결 |
특징들
CPU Sim에는 다음과 같은 기능이 있습니다.
- 에서는 레지스터, RAM, 마이크로 명령 및 머신의 명령을 포함한 CPU(가상 CPU)를 생성할 수 있습니다.
- 시뮬레이트된 CPU용 어셈블리 언어 프로그램의 작성, 편집 및 실행을 허용합니다.
- 를 사용하면 어셈블리 언어 프로그램의 실행을 통해 전진 및 후퇴할 수 있습니다.
Wombat 1 CPU용 프로그램 예시
이 프로그램은 음의 정수를 읽을 때까지 정수로 읽습니다.그런 다음 모든 양의 정수의 합을 출력합니다.
Start: read // read n -> acc jmpn Done // acc < 0 . add sum // acc store sum에 합을 추가 // 저장 완료: load sum // 최종 합계 쓰기 // stop sum: . data 2 // 바이트 위치에 합을 저장합니다.
다음과 같은 프로그램 수정도 가끔 사용됩니다.
Start: read // read n -> acc jmpz Done // acc가 0인 경우 Done으로 점프합니다./ acc store sum에 합계 추가 // 새로운 합계 점프를 저장합니다.// stop sum // stop sum write // final sum write // // stop sum write // store sum write write // // store sum write write // store sum write // // // store write // store sum write //
이것은 마이너스 입력을 사용하여 빼거나 0을 사용하여 루프를 끊을 수 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ CPU SIM: 입문 컴퓨터 조직 아키텍처 클래스에서 사용하는 컴퓨터 시뮬레이터,작성자:데일 주 스크리엔