소스코드에서 명령어로
High Level Language → Low Level Language (기계어, 어셈블리어)
같은 소스코드라도 컴파일러(CPU 종류)에 따라 변환되는 포맷이 다름.
gcc의 경우 "-S" 옵션 써서 어셈블리어로 출력 가능.
컴파일
소스코드 전체가 컴파일러에 의해 검사, 목적 코드로 변환
인터프리트
소스코드 한 줄씩 인터프리터에 의해 검사, 목적 코드로 변환 (Python, JavaScript)
명령어
(명령) + (오퍼랜드)
*오퍼랜드는 Argument처럼 생각하면 될듯.
*오퍼랜드는 포인터가 될 수 있음.
주소 지정
명령어의 길이가 한정되어 있기 때문에 오퍼랜드는 메모리 위치를 명시함. (즉시 주소 지정 이외에)
CPU가 레지스터에 접근하는 속도보다 메모리에 접근하는 속도가 훨씬 느리다
→ 레지스터에 접근하는 게 훨씬 나음
*즉시 주소 지정: 메모리, 레지스터 없이 데이터값을 직접 포함시켜 바로 실행함.
*직접 주소 지정: 메모리에 실제 데이터의 주소에 접근함.
*간접 주소 지정: 메모리에 실제 데이터의 주소의 주소가 있음. 메모리에 두 번 접근해야됨.
*레지스터 주소 지정: 레지스터 자체가 오퍼랜드(데이터)를 갖고 있음.
*레지스터 간접 주소 지정: 레지스터는 데이터 말고 실제 데이터의 주소만 갖고있음. 이것을 참조해서 메모리에 접근함.
'CS > 컴퓨터구조' 카테고리의 다른 글
| GPU (0) | 2025.10.21 |
|---|---|
| 보조기억장치와 입출력장치 (0) | 2025.10.21 |
| 메인 메모리와 캐시 메모리 (0) | 2025.10.21 |
| CPU (0) | 2025.10.20 |
| 데이터 (0) | 2025.10.20 |