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

GoWoong의 개발 블로그

  • 분류 전체보기 (166) N
    • 크래프톤 정글 (79) N
    • 크래프톤 정글 (컴퓨터 시스템: 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.11 부동소수점 코드

컴퓨터 시스템 : CSAPP 3장 정리 - 3.11 부동소수점 코드

📘 3.11 Floating-Point Code부동소수점 연산은 일반적인 정수 연산과는 달리 복잡한 구조와 특별한 규칙을 따릅니다. 이 절의 도입부에서는 다음과 같은 핵심 요소들을 설명한다:1. 부동소수점 아키텍처란?부동소수점 아키텍처는 다음 네 가지 측면에서 프로그램이 부동소수점 데이터를 어떻게 다루는지를 규정한다:저장 및 접근 방법: 대부분 레지스터를 사용해 저장하고 접근함.작동하는 명령어 세트: 특정 명령어들이 부동소수점 데이터를 처리함.함수 호출 시 인자 및 반환값 처리 규칙: 예를 들어, 부동소수점 인자는 %xmm0~%xmm7에 저장됨.레지스터 저장 규칙: 어떤 레지스터가 caller-saved 또는 callee-saved인지 규정.2. 역사적 배경x86-64에서 부동소수점 연산은 SIMD (..

  • format_list_bulleted 크래프톤 정글 (컴퓨터 시스템: CSAPP)/3장 프로그램의 기계수준 표현
  • · 2025. 4. 8.
  • textsms
컴퓨터 시스템 : CSAPP 3장 정리 - 3.10 기계수준 프로그램에서 제어와 데이터의 결합

컴퓨터 시스템 : CSAPP 3장 정리 - 3.10 기계수준 프로그램에서 제어와 데이터의 결합

📦 3.10 머신 수준 프로그램에서 제어와 데이터 결합하기Combining Control and Data in Machine-Level Programs이 장에서는 제어 흐름(control flow)과 데이터 구조(data structures)가 머신 수준에서 어떻게 상호작용하며 동작하는지를 탐구한다. 지금까지는 이를 별도로 배웠지만, 실제 프로그램에서는 두 요소가 복잡하게 얽혀 있다.주요 주제:포인터(pointer)의 심화 이해 – C 언어에서 가장 강력하면서도 혼란스러운 개념 중 하나.gdb 디버거 사용법 – 머신 수준 프로그램의 실행 과정을 자세히 들여다보는 도구.버퍼 오버플로우 – 보안 취약점의 주요 원인 중 하나.스택 프레임의 크기가 실행마다 달라지는 경우의 구현 방식.🧠 3.10.1 포인터 ..

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

컴퓨터 시스템 : CSAPP 3장 정리 - 3.9 이기종 자료구조

🔷 3.9 이질적 자료구조 (Heterogeneous Data Structures)C 언어는 서로 다른 타입의 데이터를 하나의 단위로 묶는 두 가지 방법을 제공한다:struct (구조체) – 여러 타입의 객체를 연속된 메모리 공간에 저장하여 하나의 단위로 사용union (공용체) – 여러 타입의 객체가 동일한 메모리 공간을 공유하도록 함이러한 구조는 배열과 달리 단일 타입만을 반복하는 것이 아니라, 다양한 타입을 조합할 수 있게 해 준다. 객체지향 언어의 클래스(class)와는 다르지만, 구조체는 객체 정보를 캡슐화하는 데 가장 가까운 C의 수단이다​.🔹 3.9.1 구조체 (Structures)📌 기본 개념구조체(struct)는 다양한 타입의 필드를 하나의 단위로 묶는 데이터 타입이다.struct ..

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

컴퓨터 시스템 : CSAPP 3장 정리 - 3.8 배열의 할당과 접근 Part.2

🔍 지금까지의 요약더보기🔹 3.8 도입: 배열과 주소 계산C 언어에서 배열은 연속적인 메모리 공간에 할당됨.배열 이름은 배열 시작 주소(포인터)처럼 동작.A[i]는 실제로 *(A + i)로 처리되며, 주소 계산은 xA + L*i로 단순화됨.이 단순한 구조는 어셈블리 주소 계산 명령어(D(Rb, Ri, S))와 자연스럽게 매핑됨.🔹 3.8.1 기본 원리 (Basic Principles)T A[N] 형태의 배열은 총 N * L 바이트를 연속적으로 할당.각 배열 요소 A[i]의 주소는 xA + i * L로 계산됨.배열 인덱싱은 어셈블리에서 스케일 인덱스를 활용한 주소 계산으로 구현됨 (예: movl (%rdx,%rcx,4), %eax).🔹 3.8.2 포인터 연산 (Pointer Arithmetic)포인..

  • format_list_bulleted 크래프톤 정글 (컴퓨터 시스템: CSAPP)/3장 프로그램의 기계수준 표현
  • · 2025. 4. 6.
  • textsms
컴퓨터 시스템 : CSAPP 3장 정리 - 3.8 배열의 할당과 접근 Part.1

컴퓨터 시스템 : CSAPP 3장 정리 - 3.8 배열의 할당과 접근 Part.1

3.8 배열의 할당과 접근(Array Allocation and Access)이 절은 배열이 메모리에 어떻게 배치되고 접근되는지, 그리고 어셈블리 코드로 어떻게 변환되는지를 중점적으로 설명한다. 배열은 C 언어에서 스칼라 데이터를 모아 하나의 집합적인 자료형으로 만들 수 있는 수단이다. C는 배열을 아주 단순한 방식으로 구현하며, 이를 통해 기계어로의 변환도 간단해지는 장점이 있다.🔷 3.8.1 배열의 기본 원리 (Basic Principles)📌 핵심 아이디어배열은 C 언어에서 메모리를 연속적으로 할당받는 자료구조이다. 컴파일러가 배열을 다룰 때는 포인터 + 오프셋 방식으로 매우 단순하게 처리한다.배열은 포인터처럼 행동하지만, 실제로는 정적 메모리 블록을 가리키는 기준 주소(base address)..

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

컴퓨터 시스템 : CSAPP 3장 정리 - 3.7 프로시저 Part.2

🔍 지금까지의 요약3.7 프로시저 도입: 프로시저는 제어 이동, 데이터 전달, 메모리 관리 등 세 가지 핵심 역할을 담당함.3.7.1 런타임 스택: 각 함수 호출 시 스택 프레임이 생성되며, 복귀 주소와 로컬 변수, 보존 레지스터 등을 저장.3.7.2 제어의 이동: call 명령어로 제어를 이동하고 ret 명령어로 원래 위치로 복귀. 복귀 주소는 스택에 저장됨.3.7.3 데이터 전송: 최대 6개의 인자는 레지스터로 전달되고, 초과분은 스택을 사용. 반환값은 %rax를 통해 전달됨.3.7.4 로컬 저장소(Local Storage on the Stack)지금까지 본 대부분의 프로시저 예제들은 로컬 저장소가 따로 필요하지 않았고, 모든 데이터가 레지스터만으로 처리될 수 있었다. 하지만 다음과 같은 경우에는 ..

  • format_list_bulleted 크래프톤 정글 (컴퓨터 시스템: CSAPP)/3장 프로그램의 기계수준 표현
  • · 2025. 4. 6.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (166) N
    • 크래프톤 정글 (79) N
    • 크래프톤 정글 (컴퓨터 시스템: 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)
최근 글
인기 글
최근 댓글
태그
  • #AWS 자격증
  • #AWS Community Day
  • #serverless
  • #AWS
  • #saa-c03
  • #Cloud Practitioner
  • #IOT
  • #aws #iot
  • #CLF-C01
  • #AWSKRUG
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바