K_blueprint
컴퓨터 구조 과제 본문
- 구름 IDE로 리눅스 개발환경 만들기
- Sizeof 연산 타이핑해보기
- 오버플로 예제를 언더 플로로 바꿔서 해보기(CHAR_MIN의 값에서 -1 하기)
- 비트 연산 프로그램 바꿔보기(특정 위치의 비트를 끄는 함수 구현)
- C언어가 기계어가 되는 과정 직접 해보기
1. 구름 IDE로 리눅스 개발환경 만들기
- 먼저 구름 홈페이지에 접속하여 계정을 설정해준다.
- 그 후에 컨테이너 만들기를 통해 개발 환경을 구축한다.
나는 C언어로 환경을 만들었고 터미널을 실행하게 되면 아래와 같게 된다.
2. Sizeof 연산 타이핑해보기
- 먼저 각 자료형마다 몇 바이트의 값이 할당되어있는지를 확인하기 위해 아래의 소스코드를 작성한다.
(여기서 %zu는 자료형의 크기를 알 수 있는 형식지정자이다.)
- 이후에 실행을 하게되면 각 자료형들의 크기를 알 수 있다.
3. 오버플로 예제를 언더 플로로 바꿔서 해보기
- 먼저 CHAR 자료형의 최소값을 기준으로 -1 연산을 수행하는 소스코드를 만든다.
(<limits.h>헤더는 주석과 같이 정수형 자료형의 유효범위를 확인할 수 있는 헤더이다.)
- 실행 결과는 다음과 같다.
4. 비트 연산 프로그램 바꿔보기
- 특정 위치의 비트를 끄는 함수를 구현하기 위해 아래의 소스코드를 만든다.
-이후 0, 4, 8번째 비트들을 차례대로 꺼보았을 때 결과를 본다면 아래와 같다.
5. C언어가 기계어가 되는 과정 직접 해보기
- 해당 과정을 알아보기 위해 간단한 함수를 만들고 실행한다.
- 함수를 실행한 후에 "gcc -E 파일명.c -o 파일명.i" 명령어를 입력하고 실행하게되면 i의 확장자를 가진 파일이 생기게 된다.
- (필자의 경우 project.i의 파일(= 내부 모습)이 생긴다.)
- 다음으로 "gcc -S 파일명.i -o 파일명.s" 명령어를 입력한다.
- (필자의 경우 project.s의 파일(=내부 모습)이 생긴다.)
- 마지막으로 "gcc -C 파일명.s -o 파일명.o" 명령어를 입력한다.
- (필자의 경우 project.o의 파일(=내부 모습)이 생긴다.)
'computer architecture' 카테고리의 다른 글
컴퓨터 구조론 CH.1 내용 정리 (0) | 2023.11.07 |
---|---|
컴퓨터 주기억장치의 종류와 역할 (1) | 2023.11.07 |