일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Spring
- dockerd
- nestjs
- django #ninja #django-ninja #장고
- pipex
- docker
- Born2beroot #42
- data-root
- 42Seoul
- Daemon
- ecole42
- 네스트JS
- 데이터중심애플리케이션설계
- Spring-Boot
- 42
Archives
- Today
- Total
혼자 정리
[CSAPP] 3.3 데이터의 형식 본문
- 기본적으로 '워드(word)'는 16비트 데이터 타입을 지칭(처음에 16비트 구조를 사용하다 32비트로 확장했기 때문)
- 32비트는 '더블워드(double-word)'
- 64비트는 '쿼드워드(quad-word)'
아래 표는 C 기본 데이터 타입에 사용되는 x86-64 표현을 보여줌.
- 표준 int값은 더블워드로 저장(32비트=4바이트)
- 포인터는 64비트 머신에서 8바이트 쿼드워드로 저장.
- x86-64에서 long은 64비트(=8바이트)로 구현
C 선언 | 인텔 자료형 | 어셈블리코드 접미문자(suffix;꼬리 문자) | 사이즈 (바이트) |
---|---|---|---|
char |
Byte | b |
1 |
short |
Word | w |
2 |
int |
Double word | l |
4 |
long |
Quad word | q |
8 |
char * |
Quad word | q |
8 |
float |
Single precision | s |
4 |
double |
Double precision | 8 |
위의 꼬리문자는 인스트럭션의 오퍼랜드의 크기를 나타내준다.
ex) movb
(바이트 이동), movw
(워드 이동), movl
(더블워드 이동), movq
(쿼드워드 이동)
- 주의할 점은 접미 문자
l
을 4바이트 정수 말고도 8바이트 이중정밀도 부동소수점 자료에도 사용한다는 점. 하지만 서로 쓰이는 인스트럭션과 레지스터가 다르기 때문에 혼동되지는 않는다.
'CSAPP정리' 카테고리의 다른 글
[CSAPP] 3.4 정보 접근하기 ~ 3.5 산술연산과 논리연산 (0) | 2021.06.22 |
---|---|
[CSAPP] 3.2 프로그램의 인코딩(Program Encodings) (0) | 2021.06.22 |
[CSAPP] 3. Machine-Level Representation of Programs ~ 3.1 A Historical Perspective (0) | 2021.06.21 |
[CSAPP] 2.2 정수의 표시(Ch. 2 정보의 표현과 처리) (0) | 2021.04.04 |
[CSAPP] 2.1 정보의 저장(Ch. 2 정보의 표현과 처리) (0) | 2021.04.03 |