[ 출처 ]
혼자 공부하는 컴퓨터 구조 + 운영체제 03강
https://www.youtube.com/watch?v=kFWP6sFKyp0
[ 고급 언어 → 저급 언어 ]
고급 언어
= 개발자가 이해하기 쉽게 만든 언어 ( 컴파일 언어, 인터프리터 언어 )
컴파일 언어
= 컴파일 언어로 작성된 소스 코드는 컴파일러로 인해 저급 언어로 변환 ( 컴파일 )
= 컴파일 결과로 저급 언어인 목적 코드 생성
= 소스 코드 컴파일 중 오류가 발생하면 소스 코드 전체가 실행되지 않음
인터프리터 언어
= 인터프리터에 의해 한 줄씩 실행 ( 인터프리트 )
= 소스 코드 전체가 저급 언어로 변환되기까지 기다릴 필요 없음
= 소스 코드 인터프리트 중 오류가 발생하면 오류 발생 전까지의 코드는 실행
저급 언어
= 컴퓨터가 이해하고 실행하는 언어 ( 기계어, 어셈블리어 )
기계어 = 0과 1로 이루어진 명령어로 구성된 저급 언어
어셈블리어 = 기계어를 읽기 편한 형태로 번역한 저급 언어
[ 명령어의 구조 ]
명령어
= 연산 코드 + 오퍼랜드 ( 0 ~ 3개 )
연산 코드 = 수행할 연산
오퍼랜드 = 연산에 사용할 데이터 or 연산에 사용할 데이터가 저장된 위치
연산 코드 종류
1. 데이터 전송
2. 산술/논리 연산
3. 제어 흐름 변경
4. 입출력 제어
오퍼랜드에 굳이 데이터가 저장된 위치를 쓰는 이유
= 명령어 내에서 표현할 데이터의 크기가 제한됨
= 명령어 내에서 (연산 코드+ 다른 오퍼랜드 수) 만큼 비트 사용 제한
= 데이터를 외부에 저장 → 정해진 비트를 오로지 데이터 저장에 사용 가능
명령어 주소 지정 방식
= 연산에 사용할 데이터가 저장된 위치 ( 유효 주소 ) 를 찾는 방법
즉시 주소 지정 방식
= 연산에 사용할 데이터를 오퍼랜드 필드에 직접 명시 ( 메모리 접근 X )
= 연산에 사용할 데이터의 크기가 작아지지만, 빠름
직접 주소 지정 방식
= 유효 주소를 오퍼랜드 필드에 직접 명시 ( 메모리 접근 O )
= 유효 주소를 표현할 수 있는 크기가 연산 코드만큼 작아짐
간접 주소 지정 방식
= 유효 주소의 주소를 오퍼랜드 필드에 명시 ( 메모리 접근 O )
= 유효 주소를 온전히 표현할 수 있지만, 느림
레지스터 주소 지정 방식
= 연산에 사용할 데이터가 저장된 레지스터 명시 ( 메모리 접근 X )
= 메모리에 접근하는 것보다 레지스터에 접근하는 것이 빠름
= 직접 주소 지정 방식보다 빠름
레지스터 간접 주소 지정 방식
= 연산에 사용할 데이터를 메모리에 저장 ( 메모리 접근 O )
= 그 주소를 저장한 레지스터를 오퍼랜드에 명시
= 간접 주소 지정 방식보다 빠름
'CS > 컴퓨터 구조' 카테고리의 다른 글
[ 컴퓨터 구조 ] 메모리 종류 (1) | 2025.03.21 |
---|---|
[ 컴퓨터 구조 ] 명령어 (0) | 2025.02.05 |
[ 컴퓨터 구조 ] CPU 내부 (0) | 2025.02.03 |
[ 컴퓨터 구조 ] 전체적인 컴퓨터 구조 (0) | 2025.01.14 |