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
반응형
'Computer Science > Computer Architecture' 카테고리의 다른 글
| [컴퓨터구조] Lecture 10: Arithmetic for Computers - Part2 (0) | 2026.02.08 |
|---|---|
| [컴퓨터구조] Lecture 09: Arithmetic for Computers - Part1 (0) | 2026.02.08 |
| [컴퓨터구조] Lecture 07: Instructions - Language of the Computer - Part4 (0) | 2026.02.08 |
| [컴퓨터구조] Lecture 06: Instructions - Language of the Computer - Part3 (0) | 2026.02.08 |
| [컴퓨터구조] Lecture 05: Instructions - Language of the Computer - Part2 (0) | 2026.02.08 |