GoWoong의 개발 블로그
close
프로필 배경
프로필 로고

GoWoong의 개발 블로그

  • 분류 전체보기 (149)
    • 크래프톤 정글 (62)
    • 크래프톤 정글 (컴퓨터 시스템: CSAPP) (57)
      • 3장 프로그램의 기계수준 표현 (16)
      • 6장 메모리 계층구조 (6)
      • 7장 링커 (6)
      • 8장 예외적 제어 흐름 (7)
      • 9장 가상 메모리 (16)
      • 11장 네트워크 프로그래밍 (6)
    • 클라우드 (4)
      • [AWS] AWS IoT Core (4)
      • DevOps (0)
    • Deep Dive (16)
      • CS (15)
    • 백엔드 개발 (0)
      • 파이썬 (0)
      • 자바 스프링 (0)
    • 자격증 공부 (5)
      • AWS Cloud Practitioner (2)
      • 정보처리기사 (1)
      • AWS SAA-C03 (2)
    • 문제 기록 (0)
    • 커뮤니티 참석 후기 (2)
    • 일상 기록 (1)
  • 홈
  • 글쓰기

컴퓨터 시스템 : CSAPP 3장 정리 - 3.5 장 산술 및 논리 연산

📘 3.5장 도입: 산술 및 논리 연산🎯 이 장에서 무엇을 배우는가?이 장에서는 컴퓨터가 덧셈, 뺄셈, 곱셈 같은 산술 연산이나AND, OR, NOT 같은 논리 연산을 어떻게 수행하는지를 배운다.🧠 왜 중요한가?우리가 프로그램에서 a + b, x * 2, if (x > y) 같은 걸 사용한다. 컴퓨터는 이걸 아주 빠르게 계산하기 위해 레지스터, 비트 연산, 이진수 덧셈기 같은 도구를 사용한다. 이걸 어셈블리어에서 어떻게 처리하는지를 보면 컴퓨터가 똑똑하게 일하는 방식을 이해할 수 있다.📌 3.5.1 Load Effective Address (LEA, 유효 주소 적재)🤔 LEA란?leaq 명령어는 주소를 계산하지만, 메모리에서 값을 읽지는 않는다💡 예: leaq 7(%rdx, %rdx, 4), ..

  • format_list_bulleted 크래프톤 정글 (컴퓨터 시스템: CSAPP)/3장 프로그램의 기계수준 표현
  • · 2025. 4. 5.
  • textsms

컴퓨터 시스템 : CSAPP 3장 정리 - 3.4 장 정보 접근하기 Part.3

3.4.3 "데이터 이동 예제(Data Movement Example)"🎯 이 절의 핵심메모리에서 값을 읽고 쓰는 방식을 실제 C 코드와 어셈블리 코드 예제를 통해 배워본다.📘 C 코드 예시long exchange(long *xp, long y) { long x = *xp; *xp = y; return x;}💡 무슨 뜻인가?xp는 숫자가 들어 있는 상자의 주소이다.y는 바꿔치기할 새 숫자*xp = y: xp가 가리키는 곳의 값을 y로 바꿔준다.return x: 바꾸기 전에 있던 값을 결과로 돌려준다.마치 “친구 상자에 있는 숫자를 내가 보고, 그 자리에 새 숫자를 넣고, 원래 있던 숫자를 기억해 두는 것” 같다.🔧 어셈블리 코드exchange: movq (%rdi), %rax..

  • format_list_bulleted 크래프톤 정글 (컴퓨터 시스템: CSAPP)/3장 프로그램의 기계수준 표현
  • · 2025. 4. 5.
  • textsms

컴퓨터 시스템 : CSAPP 3장 정리 - 3.4 장 정보 접근하기 Part.2

3.4.1 "오퍼랜드 지정자(Operand Specifiers)"🧠 오퍼랜드란?오퍼랜드(Operand)는 명령어에서 사용되는 값예를 들어, 계산기에서 3 + 5라면+는 연산자 (operator),3과 5는 오퍼랜드어셈블리에서도 똑같다mov %rax, %rbx여기서 %rax와 %rbx는 오퍼랜드야.→ “rax에 있는 값을 rbx로 복사해 줘!”🔧 오퍼랜드의 종류컴퓨터는 다양한 종류의 값을 계산에 쓸 수 있어! 대표적으로 3가지이다:종류예시설명즉시 값 (Immediate)$10, $0x20그냥 숫자 자체!레지스터 (Register)%rax, %rbx빠른 기억상자메모리 (Memory)(%rax), 8(%rbx)주소를 따라가서 값을 가져와요🧮 메모리 주소 지정 (주소 계산 방법들)컴퓨터는 주소를 숫자로 계..

  • format_list_bulleted 크래프톤 정글 (컴퓨터 시스템: CSAPP)/3장 프로그램의 기계수준 표현
  • · 2025. 4. 5.
  • textsms

컴퓨터 시스템 : CSAPP 3장 정리 - 3.4 장 정보 접근하기 Part.1

3.4장 "정보 접근하기 (Accessing Information)" 부분 전체를 살펴보겠다. 이 장은 컴퓨터가 값(정보)을 어디서, 어떻게 꺼내 쓰고 저장하는지 알려주는 아주 중요한 부분이다 😊🎯 3.4장 핵심 주제:컴퓨터가 값을 꺼내고 저장하는 방법을 배운다.🧠 왜 이게 중요할까?컴퓨터는 모든 걸 메모리에 저장하고 꺼내서 사용한다.어셈블리어에서는 "정보를 어디서 꺼내서, 어디에 놓을지"를 직접 알려줘야 한다📦 1. 컴퓨터에는 저장 공간이 3가지가 있다.종류예설명레지스터%rax, %rbx빠른 임시 상자!메모리(%rax)느리지만 큰 저장소즉시값$10, $0x40그냥 숫자 자체🧩 2. 레지스터란?레지스터는 컴퓨터 안에 있는 아주 빠른 기억 상자다.예를 들어:mov $10, %rax→ rax라는 상..

  • format_list_bulleted 크래프톤 정글 (컴퓨터 시스템: CSAPP)/3장 프로그램의 기계수준 표현
  • · 2025. 4. 5.
  • textsms

컴퓨터 시스템 : CSAPP 3장 정리 - 3.2장 프로그램의 인코딩 Part. 2

🧪 3.2.2 Code Examples — 코드 예제💡 C 코드로 함수 만들기먼저 아래와 같은 C 코드를 가정해 보자. 파일 이름은 mstore.c라고 한다.long mult2(long, long);void multstore(long x, long y, long *dest) { long t = mult2(x, y); *dest = t;}이 함수는 x와 y를 mult2 함수에 넘겨서 곱한 결과를 dest가 가리키는 곳에 저장한다.🛠️ 어셈블리 코드로 보기이 C 코드를 어셈블리로 바꾸려면 이렇게 명령어를 입력한다:gcc -Og -S mstore.cmultstore: pushq %rbx ; %rbx 저장 (함수 호출 시 보존해야 함) movq %rdx, %rbx ..

  • format_list_bulleted 크래프톤 정글 (컴퓨터 시스템: CSAPP)/3장 프로그램의 기계수준 표현
  • · 2025. 4. 5.
  • textsms

컴퓨터 시스템 : CSAPP 3장 정리 - 3.2장 프로그램의 인코딩 Part. 1

🧠 핵심 질문: 우리가 만든 프로그램은 컴퓨터에게 어떻게 전달될까?우리가 C 같은 언어로 프로그램을 짜면, 그 코드는 컴퓨터가 직접 이해할 수 없다. 컴퓨터는 오직 기계어라는 아주 특별한 형태의 언어만 이해한다. 그래서 우리가 만든 코드는 컴퓨터가 이해할 수 있는 모양으로 인코딩(Encoding) 되어야 한다.이 인코딩은 기계 수준 코드(Machine-Level Code)라고 부르며, 그 과정을 거치면 컴퓨터가 그 프로그램을 메모리에 올리고, 실행할 수 있게 된다.🏗️ 컴퓨터가 프로그램을 실행할 준비를 하는 과정컴퓨터는 다음과 같은 과정으로 우리가 만든 코드를 처리한다:컴파일러가 C 코드 같은 고급 언어를 받아서 어셈블리 코드라는 저수준 언어로 바꿔준다.어셈블러가 이 어셈블리 코드를 읽어서 기계가 이..

  • format_list_bulleted 크래프톤 정글 (컴퓨터 시스템: CSAPP)/3장 프로그램의 기계수준 표현
  • · 2025. 4. 5.
  • textsms
  • navigate_before
  • 1
  • ···
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • ···
  • 25
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (149)
    • 크래프톤 정글 (62)
    • 크래프톤 정글 (컴퓨터 시스템: CSAPP) (57)
      • 3장 프로그램의 기계수준 표현 (16)
      • 6장 메모리 계층구조 (6)
      • 7장 링커 (6)
      • 8장 예외적 제어 흐름 (7)
      • 9장 가상 메모리 (16)
      • 11장 네트워크 프로그래밍 (6)
    • 클라우드 (4)
      • [AWS] AWS IoT Core (4)
      • DevOps (0)
    • Deep Dive (16)
      • CS (15)
    • 백엔드 개발 (0)
      • 파이썬 (0)
      • 자바 스프링 (0)
    • 자격증 공부 (5)
      • AWS Cloud Practitioner (2)
      • 정보처리기사 (1)
      • AWS SAA-C03 (2)
    • 문제 기록 (0)
    • 커뮤니티 참석 후기 (2)
    • 일상 기록 (1)
최근 글
인기 글
최근 댓글
태그
  • #CLF-C01
  • #AWS
  • #AWSKRUG
  • #aws #iot
  • #Cloud Practitioner
  • #AWS 자격증
  • #saa-c03
  • #serverless
  • #AWS Community Day
  • #IOT
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바