3.4장 "정보 접근하기 (Accessing Information)" 부분 전체를 살펴보겠다. 이 장은 컴퓨터가 값(정보)을 어디서, 어떻게 꺼내 쓰고 저장하는지 알려주는 아주 중요한 부분이다 😊
🎯 3.4장 핵심 주제:
컴퓨터가 값을 꺼내고 저장하는 방법을 배운다.
🧠 왜 이게 중요할까?
컴퓨터는 모든 걸 메모리에 저장하고 꺼내서 사용한다.
어셈블리어에서는 "정보를 어디서 꺼내서, 어디에 놓을지"를 직접 알려줘야 한다
📦 1. 컴퓨터에는 저장 공간이 3가지가 있다.
종류 | 예 | 설명 |
레지스터 | %rax, %rbx | 빠른 임시 상자! |
메모리 | (%rax) | 느리지만 큰 저장소 |
즉시값 | $10, $0x40 | 그냥 숫자 자체 |
🧩 2. 레지스터란?
레지스터는 컴퓨터 안에 있는 아주 빠른 기억 상자다.
예를 들어:
mov $10, %rax
→ rax라는 상자에 숫자 10을 넣어줘!
컴퓨터는 이런 레지스터들을 써서 계산하고 결과도 여기 담는다.
🧠 3. 메모리 주소로 값 읽고 쓰기
메모리는 책상 위에 놓인 수많은 작은 서랍들 같다.
각 서랍에는 번호(주소)가 있고, 그 안에 값을 넣거나 꺼낼 수 있다.
mov %rax, (%rbx)
→ rbx가 가리키는 주소(서랍 번호)에, rax 상자의 값을 넣어라
🧮 4. 주소를 계산하는 다양한 방법
컴퓨터는 서랍 번호(주소)를 그냥 쓰거나, 계산해서 만들 수 있다.
예시 | 의미 |
(%rax) | rax가 가리키는 주소에 있는 값 |
8(%rax) | rax + 8 위치에 있는 값 |
(%rax, %rdx, 4) | rax + rdx * 4 위치 |
8(%rax, %rdx, 4) | rax + 8 + rdx * 4 위치 |
🔧 5. mov 명령어로 값 복사하기
컴퓨터는 mov 명령어로 이렇게 말한다:
mov [어디서], [어디에]
예:
mov %rax, (%rbx)
→ rax에 있는 값을, rbx가 가리키는 메모리 주소에 복사해!
🎓 6. 즉시값 사용
mov $100, %rax
→ 그냥 숫자 100을 rax 상자에 넣어줘!
이건 마치 “100이라는 숫자를 직접 넣는 것”과 같다.
🧑🏫 전체 흐름 그림으로 정리!
[ 즉시값 ] → mov → [ 레지스터 ]
↓
mov → [ 메모리 ]
✅ 요약
- 컴퓨터는 값을 레지스터, 메모리, 즉시값 세 가지 방식으로 다룬다
- 주소를 직접 쓰거나 계산해서 메모리에 접근할 수 있다
- mov 명령어로 값을 이리저리 옮겨 다니며 프로그램이 작동한다
- 이걸 잘 이해하면, 복잡한 프로그램 흐름도 쉽게 읽을 수 있다
'크래프톤 정글 (컴퓨터 시스템: CSAPP) > 3장 프로그램의 기계수준 표현' 카테고리의 다른 글
컴퓨터 시스템 : CSAPP 3장 정리 - 3.4 장 정보 접근하기 Part.3 (0) | 2025.04.05 |
---|---|
컴퓨터 시스템 : CSAPP 3장 정리 - 3.4 장 정보 접근하기 Part.2 (0) | 2025.04.05 |
컴퓨터 시스템 : CSAPP 3장 정리 - 3.2장 프로그램의 인코딩 Part. 2 (1) | 2025.04.05 |
컴퓨터 시스템 : CSAPP 3장 정리 - 3.2장 프로그램의 인코딩 Part. 1 (0) | 2025.04.05 |
컴퓨터 시스템 : CSAPP 3장 정리 - 3.1장 역사적 배경 (0) | 2025.04.05 |