Programming (136) 썸네일형 리스트형 조건 분기와 함수 호출 1. 조건 분기 앞에서 프로그램 카운터에 다음에 실행할 명령어의 주소가 저장된다고 했다. 다시 말해, 명령어를 실행할 때마다 PC의 값이 바뀌는 것이다. 이를 간단히 나타내면 다음과 같다. 0100번지가 프로그램 실행의 시작 위치다. OS는 프로그램을 하드 디스크에서 메모리로 복사한 후 PC에 0100을 넣는다. 이 과정을 거쳐 프로그램이 실행되는 것이다. 그리고 CPU가 명령어 하나를 실행할 때마다 PC에 저장된 값은 명령어의 크기(여기서는 1)만큼 늘어난다. 조건 분기란 조건에 따라 특정 위치로 점프하는 것, 다시 말해 특정 주소에 있는 명령어를 실행하는 것이다. 이는 PC에 특정 주소 값을 넣는 것으로 구현된다. 0102에서 조건 만족 여부(어큐뮬레이터의 값이 0보다 큰지)는 플래그 레지스터의 값으.. 레지스터 1. 레지스터(register) 앞서 언급했던 CPU를 구성하는 네 가지 요소(CU, ALU, 레지스터, 클록)에서 프로그래머는 레지스터에 대해 반드시 알고 있어야 한다.프로그램은 레지스터를 이용해 데이터를 처리하기 때문이다. 다음은 *어셈블리어로 작성된 프로그램의 일부다. *어셈블리어(assmebly language): 전기 신호인 기계어에 기능을 의미하는 **니모닉을 대응시킨 것. 기계어와 어셈블리어는 기본적으로 1 대 1 대응이다. 참고로 어셈블리어를 기계어로 변환하는 작업을 어셈블(assemble), 그 반대의 작업을 디스어셈블(disassemble)이라 한다. **니모닉(mnemonic): 인간이 기억하기 쉬운 형태로 이름을 나타내는 기호. add는 더한다는 의미를 나타낸 니모닉이라 할 수 있다.. 프로그램의 작동 원리와 CPU 1. 프로그램의 작동 원리 1 2 3 int a; a = 1 + 2; printf("%d\n", a); cs ① 프로그래머가 C언어 등의 고급 언어로 소스 코드를 작성한다. 1 2 3 4 0100101000010111 0011010010100010 0010100100001100 ... cs ② 그 소스 코드를 컴파일해 기계어인 실행 파일(.exe)로 변환한다. ③ 프로그램이 실행될 때 실행 파일의 복사본이 메모리(보통 주기억장치)에 올려진다. ④ CPU가 메모리 상에 있는 exe 파일을 해석하고 실행한다. 2. CPU의 구조 CPU와 메모리는 실제로는 IC(Integrated Circuit) 로 불리는 전자 부품이다. IC는 많은 수의 *트랜지스터로 구성된 전자 회로로, 마이크로 칩이라고도 불린다. *트.. 변수와 자료형 1. 변수 수학에서의 변수는 수식에 따라 변하는 값을 의미한다. C언어의 변수는 다음을 의미한다. 어떤 값을 저장할 수 있는 메모리 공간에 붙은 이름. 또는 그 메모리 공간 자체. 쉽게 말해 어떤 값을 담을 수 있는 공간이다. 정확히 말하면, 변수는 운영체제를 통해 할당받은 메모리 공간인 것이다. 할당이란 단어가 낯설다면 전체 메모리 공간에서 일부만 빌려왔다고 생각하자. 그럼 그냥 메모리 공간인데, 왜 변수(Variable)라는 이름이 붙은 걸까? 이유는 간단하다. 메모리 공간에 저장된 값은 언제든 변할 수 있기 때문이다. n이라는 변수에 3을 저장해서 쓰다가 필요하면 5로 바꿀 수도 있다는 것이다. 변수를 만드는 방법은 다음과 같다. 1 int num; cs int: 정수(integer)를 저장할 수 .. C 프로그램의 기본 구조 1. C 프로그램은 함수로 이루어진다. 1 2 3 4 5 6 7 8 #include int main() { printf("Hello, world!\n"); return 0; } cs 1장에서 위와 같은 프로그램을 작성했다. 가장 기본적인 프로그램이지만, 우리에게 많은 것을 시사한다. 첫 번째 행부터 보자. 1 #include cs 대략적인 의미는 다음과 같다. stdio.h 파일의 내용을 현재 소스 코드 파일에 포함시킨다. #include는 현재 소스 코드에 무언가를 포함시킨다(include)는 의미다. stdio.h 는 파일의 일종이다. 따라서 다음과 같이 이해하고 넘어가면 된다. 모니터에 Hello, world!를 출력하려면 stdio.h 파일의 내용이 필요하다. 두 번째 행은 가독성을 위한 줄바꿈일.. Visual Studio 2017 설치 1. 개발 환경 구축 C 프로그램은 C언어로 작성한다고 해서 완성되는 게 아니다. 컴파일도 하고, 에러 검사도 하고, ... 여러 가지 작업을 거친 후에야 비로소 프로그램이 완성되는 것이다. 따라서 이런 작업을 위한 환경을 구축할 필요가 있다. 물론 컴파일은 컴파일러가 하기 때문에, 우리는 컴파일러만 구하면 된다. 다행히도 많은 컴파일러가 무료로 제공되고 있는데, 가장 편리하게 쓸 수 있고, 또 많이 쓰이는 것은 Microsoft 사에서 제공하고 있는 Visual Studio다. 무료 버전인 Community 버전과 유료 버전인 Professional, Enterprise 버전이 있는데, 유료 버전의 경우 각각 45USD, 250USD의 비용을 지불해야 한다. (2022/04/02: 현재는 다 무료로 제.. About C Language 1. C언어는 프로그래밍 언어다. 프로그래밍 언어란 사람이 컴퓨터와의 대화를 위한 대화수단의 한 종류다. 그러나 사람이 컴퓨터와 직접 대화할 수는 없다. 컴퓨터는 사람의 언어를 이해할 수 없고, 사람 또한 컴퓨터의 언어(*기계어)를 이해할 수 없기 때문이다. 따라서 한국인이 일본인과 대화하려면 통역사가 필요하듯이, 컴퓨터와 사람 간에도 통역 장치가 필요했다.이 때 통역 장치의 역할을 하는 것이 컴파일러(compiler)다. 그러나 컴파일러 역시 자연어를 알지 못한다. 그래서 사람이 알아듣기 쉬우면서 컴파일러도 이해할 수 있는 언어, 프로그래밍 언어가 만들어졌다. 여기서 알아야 할 것은 두 가지다. i. 프로그래밍 언어란 무엇인가?-> 사람과 컴파일러 모두 이해할 수 있는 언어. C언어는 프로그래밍 언어의.. 프로그래밍 언어란 무엇인가? 컴퓨터 관련 전공자가 아니더라도, '컴퓨터는 0과 1밖에 모른다'는 말은 들어봤을 것이다. 이것은 컴퓨터가 *자연어(Natural language)가 아닌 **기계어(machine language)만 이해할 수 있기 때문이다. 자음과 모음으로 이루어진 한국어를 쓰는 우리와 달리 0과 1로만 이루어진 기계어를 쓰는 컴퓨터는 우리의 언어를 이해할 수 없는 것이다. 따라서 사람과 컴퓨터가 서로 대화하려면 일종의 통역 수단이 필요한데, 이 통역 수단이 바로 프로그래밍 언어(programming language)다. 프로그래밍 언어는 고급 언어와 저급 언어로 구분된다. 이 때 고급/저급은 '급'이 높고 낮음을 의미하는 게 아니라, '얼마나 사람이 알아듣기 쉬운가'를 의미한다. 즉 자연어에 가까운 프로그래밍 언어는.. Prev 1 ··· 14 15 16 17 Next