Computer Science/Computer Architecture

[컴퓨터구조] Lecture 08: Instructions - Language of the Computer - Part5

kangkyunghyun 2026. 2. 8. 16:19
728x90
반응형

경희대학교 김정욱 교수님의 컴퓨터구조 강의를 기반으로 정리한 글입니다.

Translating and Staring a Program

Compiler

  • C program → Assembly language program
  • 70, 80년대 많은 운영체제와 어셈블러가 어센블리 언어로 작성됨 → 메모리 용량이 적고, 컴파일러가 비효율적이었기 때문
  • high-level language 프로그램은 어셈블리어보다 매우 적은 코드로 작성 가능

Assembler

  • Assembly Language Code → Machine Code(Object file)
  • Object file: Combination of machine language 명령어, 데이터, 명령어를 메모리에 적절하게 위치시킬 정보
  • Machine code: CPU에서 바로 실행될 수 있는 2진 코드

Linker

  • 독립적으로 어셈블된 모든 오브젝트 파일들을 하나로 묶는 역할 → executable file(.exe file)

Linker가 중요한 이유

  • 모든 것을 하나로 만들어 놓으면 불필요한 부분까지 Retranslating하기에 자원 낭비 → 비효율적
  • 각 procedure를 독립적으로 컴파일&어셈블함 → one line change는 오직 하나의 procedure만 컴파일링&어셈블링함

Dynamically linked libraries (DLLs)

  • 동적으로 링킹된 라이브러리
  • 프로그램이 실행되는 동안 링킹되는 라이브러리 루틴(block of codes)
  • 새로운 버전을 적용시킬 때 obj 파일만 덮어씌우면 됨

ARM vs. MIPS

ARMv7

  • 임베디드 장치에서 가장 인기있는 ISA(Instruction Set Architecture)
  • ARM은 레지스터 할당에 4비트만 필요 → 레지스터 할당에서 줄인 만큼 데이터 어드레싱 모드 증가

 

  • 임베디드 환경은 속도가 빨라야 함 → 경량화
  • Divide 인스트럭션은 속도가 느림 → 다른 방법으로

728x90
반응형