키워드: CPU · 메모리 주소 · 레지스터 · 어셈블리/기계어 · 명령어(연산코드+피연산자) · 전송/연산/분기 · 스택(push/pop) · 논리연산(AND/OR/NOT/XOR) · 시프트/순환 · 성능평가 개념(효율 vs 효과, 정밀도 Precision, 재현율 Recall, 정확도 Accuracy)
1) 한눈 요약 (Executive Summary)
- 프로그램은 메모리(주소) ↔ CPU(레지스터) 사이에서 명령어/데이터를 주고받으며 실행된다. 명령어는 연산코드(opcode) + 피연산자(operand 1, 2) 구조.
- 명령어 유형: 데이터 전송(MOV/PUSH/POP), 연산(산술/논리/시프트), 분기(JUMP) 로 크게 구분. 결과는 보통 **피연산자1(목적지)**에 저장.
- 스택은 “맨 위(top)부터 넣고/빼는(LIFO)” 메모리 영역으로 PUSH/POP 명령으로 접근.
- AI/ML 평가는 효율(시간·자원) 과 효과(정확히 맞추는가) 를 구분. 효과 평가지표로 정밀도(Precision), 재현율(Recall), 정확도(Accuracy) 를 사용한다.
2) 컴퓨터 동작 큰 그림
- CPU: 연산을 수행하는 중앙처리장치. 내부에는 여러 레지스터(명령어/주소/범용)가 있음.
- 메모리(주기억장치): 프로그램과 데이터가 주소(예: 105번)에 저장. CPU는 주소를 통해 읽기/쓰기.
- 버스:
- 주소 버스: 어디에서/어디로 읽고 쓸지 지정(예: 150번).
- 데이터 버스: 실제 데이터 이동(예: 500).
- 제어 버스: 읽기/쓰기 같은 제어 신호. 컴퓨터사고와 인공지능 9_24
명령어 형식: 연산코드 OPC 피연산자1(dst) 피연산자2(src) → 실행 결과는 보통 dst(피연산자1) 에 저장.
3) 명령어 분류와 예시
3.1 데이터 전송(Transfer)
- MOV: 메모리/레지스터/상수 사이 값 이동
- 예)
MOV A, [150] → 메모리 150번에 든 값을 레지스터 A로 로드
- 예)
MOV [105], A → 레지스터 A의 값을 메모리 105번에 저장
- PUSH / POP(스택 전용)
PUSH A : 레지스터 A 값을 스택 top에 저장
POP B : 스택 top 값을 꺼내 레지스터 B에 저장
- 스택은 위에서만 넣고/빼는 구조(LIFO). 빠르게 지역 데이터/복귀주소 등을 다룰 때 사용.
3.2 연산(Arithmetic / Logic / Shift)
- 산술:
ADD/SUB/MUL/DIV — 두 피연산자 계산 결과를 보통 피연산자1에 기록.