프로그램 카운터 시뮬레이터
loop: 같은 레이블, LOAD 또는 ADD 같은 순차 명령어, BR label 또는 BR +8 같은 분기와 함께 JMP, CALL, RET, HALT를 사용할 수 있습니다.
이 학습용 시뮬레이터는 비어 있지 않은 각 명령 줄에 주소를 할당하고 단순화된 프로그램 카운터(PC)의 흐름을 추적합니다. 코드 줄, 문장 또는 토큰을 세지 않으며 프로그래밍 언어를 컴파일하거나 실행하지도 않습니다.
명령 목록 추적 방법
-
1
짧은 목록 입력
한 줄에 하나의 고정 길이 명령을 쓰고 필요하면 loop: 같은 ASCII 레이블을 사용합니다.
-
2
주소 모델 선택
시작 주소, 1·2·4·8바이트 명령 크기, 16/24/32비트 폭과 표시 형식을 설정합니다.
-
3
추적 방식 설정
인식한 모든 분기를 일괄적으로 실행 또는 미실행으로 처리하고 1–80단계를 선택해 각 전환을 확인합니다.
지원하는 모델
| 목록 항목 | 동작 |
|---|---|
LOAD, ADD 같은 기타 opcode |
선택한 고정 명령 크기만큼 전진 |
BR, BRA, BRANCH, BEQ, BNE, BGT, BGE, BLT, BLE, BZ, BNZ, JZ, JNZ |
전역 실행/미실행 설정 적용 |
JMP, JUMP, GOTO |
레이블 또는 숫자 주소로 점프 |
CALL, JSR, BL / RET, RETURN |
모의 반환 주소를 저장 / 꺼냄 |
HALT, HLT, STOP |
현재 PC에서 정지 |
대상은 ASCII 레이블, 10진 주소 또는 0x가 붙은 16진 주소일 수 있습니다. +8처럼 부호가 있는 대상은 다음 순차 PC 기준 상대값이고, 부호 없는 숫자는 절대값입니다. 주소는 선택한 비트 폭 안에서 순환합니다. //와 ; 뒤는 주석입니다. 피연산자는 표시만 하고 계산하지 않습니다.
제한과 개인정보
- 입력은 1,800자에서 잘리며 200개 명령 뒤에는 구문 분석을 멈춥니다.
- 추적은 1–80단계이며 모든 조건 분기가 하나의 전역 선택을 공유합니다.
- 레지스터, 메모리, 플래그, 파이프라인, 지연 슬롯, 명령 인코딩, 가변 길이 명령은 에뮬레이션하지 않습니다.
- 일반 모드는 Livewire로 목록을 이 사이트에 보내며, 단계 모드는 URL에도 넣습니다. 기밀 코드를 붙여 넣지 마세요.
자주 묻는 질문
아닙니다. 명령 줄에 주소를 배정하고 PC를 추적할 뿐 소스 줄, 문장 또는 토큰을 세지 않습니다.
아닙니다. 소수의 일반적인 제어 opcode만 인식합니다. 그 밖의 opcode는 PC만 전진시키며 피연산자는 실행하지 않습니다.
오프셋을 다음 순차 PC에 더합니다. PC가 0x1000이고 명령이 4바이트이면 대상은 0x100C입니다.
Livewire 표시를 위해 이 사이트로 전송되며 단계 모드에서는 URL에도 들어갑니다. 외부 분석 API는 쓰지 않지만 기밀 코드는 피하세요.
관련 도구
Base64 → Hex 변환기
Base64 문자열을 실제 바이트로 디코딩한 뒤 16진수로 표현합니다. 토큰, 키, 인증서, JWT를 살펴볼 때 유용합니다.
BBCode → HTML 변환기
BBCode(게시판 마크업)를 깔끔한 HTML로 변환합니다. 서식 태그, 목록, 인용, 코드, 이미지, 링크, 표를 처리합니다.
2진수 8진수 변환기
비트를 세 개씩 묶어 2진수를 8진수로 변환합니다. Unix 권한, 레거시 시스템, 간결한 숫자 표시에 유용합니다.
ASCII 이진수 변환기
ASCII 문자열을 이진수 표현으로 변환하세요. 각 문자는 8비트가 되고 공백으로 구분되어 프로토콜 추적이나 과제에 바로 붙여넣기 좋습니다.
ASCII를 16진수로 변환
ASCII text를 hexadecimal byte values로 변환하세요. 출력은 문자당 두 hex digits를 사용하며 memory dumps, packet traces, firmware tables에 바로 쓸 수 있습니다.
불 대수 간소화 도구
Karnaugh map과 Quine-McCluskey 알고리즘으로 불 대수 식을 간소화합니다. 모든 최소화 단계와 최종 SOP/POS 형태를 보여줍니다.