일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- Gap
- box-sizing
- float
- 미디어 쿼리
- Photoshop
- c++
- pandas
- SK바이오사이언스
- 확률
- 포토샵
- 알고리즘
- react
- JSX
- 백준
- spring
- 상태
- stl
- 소수
- 통신사할인
- 수학
- c
- REM
- transform
- 반응형 웹
- skt membership
- Javascript
- CSS
- 강화학습
- Codility
- grid
- Today
- Total
sliver__
2.12 Translating and Starting a Program 본문
Compiler
Compiler는 C program을 assembly language로 변환
Assembler
pseudoinstruction을 assembly language로 변환.
Ex 1)
move $t0,$t1 # register $t0 gets register $t1
==>
add $t0,$zero,$t1 # register $t0 gets 0 + register $t1
Ex2)
Blt (branch on less than) => slt 과 bne로 변환
Assembly program을 개발한다면 pseudoinstruction을 쓰지만 실제 MIPS architecture와 성능을 고려한다면 real MIPS instruction을 알아야한다.
MIPS assembler는 hexadecimal 사용
Assembler는 assembly language를 machine code로 바꾼다.
Assmebler는 assembly language 프로그램을 object file로 바꾼다(machine language 명령어, 데이터, information으로 구성됨)
Assembler는 label, branch, data transfer instruction을 symbol table로 가지고 있다.
symbol table을 label 이름과 instruction이 존재하는 memory 주소로 구성되어 있다.
Linker
독립적인 machine language program을 엮어준다.
정의되지 않은 label의 ojbect 파일을 symbol table에 추가한다.
기준은 bracnh, jump, data address에 대한 명령어 기준으로 편집한다.
table의 old address 대비 new address로 업데이트 한다.
assemble는 object파일을 독립적으로 생성해서 모듈 간 상대적인 위치를 모른다. 링커는 모듈은 true location을 반영해서 모듈 간 메모리를 위치시킨다.
Linker는 executable file을 생성한다.
Loader
Dynamically Linked Libraries
statically linking은 빠르지만 단점이 있다.
Dynamically linked libraries(DLLs)는 loader가 dynamic linker를 실행시키고 파일의 추가정보를 사용해서 적절한 라이브러리를 찾고 external references들을 업데이트한다.
라이브러리 함수가 호출되면 linking 된다.
'CS > 컴퓨터 구조' 카테고리의 다른 글
2.14 Arrray versus Pointers (1) | 2023.10.22 |
---|---|
2.13 A C Sort Exampleto Put It All Together (0) | 2023.10.21 |
2.11 Parallelism and Instructions : Synchronization (0) | 2023.10.21 |
2.10 MIPS Addressing for 32-bit immediates and Addresses (1) | 2023.10.21 |
2.9 Communicating with People (0) | 2023.10.21 |