이론/컴퓨터구조
명령어 집합
ohojee
2023. 11. 3. 16:53
명령어 종류
고급 언어
- 생산성 ⬆️, 컴파일 오류 탐지, 유지 보수에 용이
- 컴파일러 or 인터프리터에 의해 변환 → 실행
- 컴파일하면 기계명령어로 변환
- ex) c, java
기계 명령어
12 34 00 A0 56 78 90 F3
38 03 F8 00 AC 05 00 03
40 05 F8 04 18 00 9F 4D
48 30 30 F8 00 00 FF 7F
// 4개씩 끊어지니 8 * 4 = 32bit
- cpu에서 실행되는 명령어를 2진수 코드로 정의
어셈블리어
LOAD 3, $F800
ADD 5,3
STORE 5, $F804
----- ----------
연산자 피연산자
- 인간이 읽기 쉽도록 기계어를 기호로 표현
- 기계어와 1대1로 대응
- 사실상 기계어
명령어 집합 구조(ISA)
- 명령어: 하드웨어에서 인식되거나 실행될 수 있는 기계 명령어
- 명령어 집합: 특정 CPU를 위해 정의된 명령어의 모음
- 명령어 집합에 명시되는 내용: 컴퓨터가 수행할 수 있는 연산, 데이터 형식, 주소 지정 방식
- 명령어 집합 구조 = 좁은 의미의 컴퓨터 구조
- 작성된 프로그램과 그 프로그램을 수행할 컴퓨터 하드웨어 사이의 인터페이스에 대한 완전한 정의 혹은 명세
- hw와 sw 사이의 interface 역할, sw에게도 영향 미침
- ex) Intel의 x86, IBM과 Motorola의 PowerPC, Hewlett Packard의 PA-RISC, Sun Microsystems의 SPARC 등
명령어 집합 설계
- 하드웨어 기술이나 컴퓨터의 구성, 프로그래밍 언어, 컴파일러 기술, 운영체제 등을 고려해야 하는 매우 어려운 작업
- 새로운 hw 정의 = 새로운 ISA 정의
- 설계 논점
- 연산 종류 정의: 전송, 처리, 제어, 입출력 연산의 종류와 방법
- 전송: cpu - memory 사이의 전송
- 처리: 계산
- 제어
- 제어장치에서의 제어: cpu가 hw장치 제어
- 명령어에서의 제어: 실행 흐름 제어 ex) if, for ⋯
- 프로그램의 동작(프로그램 구조의 조합): - 기본적으로 seq하게 동작 - 분기 명령 - 반복문
- 명령어 형식: 연산 부호의 종류와 형식
- 입출력 연산
- 명령어 형식: 연산 부호의 종류와 형식
- 피연산자의 주소지정방식: 명령어에서 레지스터 or 메모리에 있는 데이터의 위치를 명시하는 방법
- 데이터 형식: 정수, 실수, 논리 데이터, 문자열 등의 취급 방법
- 문자열은 보통 sw에서 처리
- 연산 종류 정의: 전송, 처리, 제어, 입출력 연산의 종류와 방법
Uploaded by N2T