컴퓨터구조
[컴퓨터 구조] 명령어의 구조
*혼자공부하는컴퓨터구조+운영체제(강민철 / 한빛미디어) 책과 강의를 듣고 작성한 내용입니다 :) 명령어 한 줄은 연산 코드와 오퍼랜드로 이루어져 있습니다. 📗 연산 코드와 오퍼랜드 ✔ 연산 코드 : 명령어가 수행할 연산 가장 기본적인 연산 코드 유형은 크게 4가지 입니다. 1️⃣ 데이터 전송 MOVE : 데이터를 옮겨라 (다른 레지스터로 데이터 이동) STORE : 메모리에 저장하라 LOAD (FETCH) : 메모리에서 CPU로 데이터를 가져와라 PUSH : 스택에 데이터를 저장하라 POP : 스택의 최상단 데이터를 가져와라 2️⃣ 산술/논리 연산 ADD / SUBTRACT / MULTIPLY / DIVIDE : 덧셈 / 뺄셈 / 곱셈 / 나눗셈을 수행하라 INCREMENT / DECREMET : 오퍼랜..
[컴퓨터 구조] 어셈블리어 2. 예제
📗 어셈블리 메모리 주소, 크기, 포인터 표기법 📌 메모리 주소 표기법 메모리 주소는 대괄호 [] 로 표기한다. ex) [00402001], [02130423] 등등등,, 📌 크기 표기법 레지스터의 크기에 맞춰 명령어에 들어갈 필수 입력 정보 DWORD : 4byte WORD : 2byte BYTE : 1byte 📌 포인터 표기법 PTR 📗 C언어로 작성된 간단한 사칙연산 소스 코드 int square(int num) { int a = 1, b = 2; int c = a + b; return c; } push rbp mov rbp, rsp mov DWORD PTR [rbp-20], edi mov DWORD PTR [rbp-4], 1 mov DWORD PTR [rbp-8], 2 mov edx, DWORD ..
[컴퓨터 구조] 컴퓨터가 고급언어를 이해하는 방법
*혼자공부하는컴퓨터구조+운영체제(강민철 / 한빛미디어) 책과 강의를 듣고 작성한 내용입니다 :) 컴퓨터를 한 마디로 정의하면 명령어를 처리하는 기계 라고 할 수 있습니다. 컴퓨터는 우리가 사용하는 프로그래밍 언어로 작성된 프로그램을 바로 이해하고 실행할 수 있을까요? 정답은 그렇지 않다 입니다! 컴퓨터가 어떻게 프로그래밍 언어(C, C++, Java, Python...)로 작성된 소스코드를 이해하고, 실행시키는지 알아봅시다 😋 📗 고급 언어 사람이 이해하고 작성하기 쉽게 만들어진 언어 가독성이 좋고, 변수나 함수같은 편리한 문법 제공 우리가 사용하는 프로그래밍 언어 ex) C, C++, Java, Python... 📗 저급 언어 컴퓨터가 직접 이해하고 실행할 수 있는 언어 기계어, 어셈블리어 2가지 종류..
[컴퓨터 구조] 컴퓨터가 데이터를 이해하는 방법 2. 문자
*혼자공부하는컴퓨터구조+운영체제(강민철 / 한빛미디어) 책과 강의를 듣고 작성한 내용입니다 :) 📗 문자를 이해하는 방법 🌟 용어정리 문자집합 : 컴퓨터가 이해할 수 있는 문자들의 집합, 각 문자마다 코드 포인트(고유한 값)이 있음 인코딩 : 문자에 해당하는 코드 포인트를 컴퓨터가 이해할 수 있는 값(0과1)으로 변환 디코딩 : 컴퓨터가 이해할 수 있는 값에서 우리가 이해할 수 있는 값으로 변환 ✔ 아스키코드 초창기 문자집합 중 하나로 영어 알파벳과 아라비아숫자, 일부 특수문자를 포함합니다. 각 문자를 7비트로 표현합니다. 따라서 2의7승개인 총 128개의 문자를 표현할 수 있습니다. 아스키코드표에서 각 문자마다 부여한 코드 포인트를 확인할 수 있습니다. (아스키코드표를 참조해주세요) * 실제로 하나의 ..
[컴퓨터 구조] 컴퓨터가 데이터를 이해하는 방법 1. 숫자
* 혼자공부하는컴퓨터구조+운영체제(강민철 / 한빛미디어) 책과 강의를 듣고 작성한 내용입니다 :) 컴퓨터는 0과 1로 표현된 정보만 이해할 수 있습니다. 그러면 컴퓨터는 어떻게 우리가 사용하는 숫자와 문자를 이해할 수 있을까요? 📗 숫자를 이해하는 방법 우리가 일상생활에서 사용하는 숫자는 십진수 입니다. 십진수 숫자를 컴퓨터가 이해할 수 있는 정보로 변환하기 위해 이진법을 사용합니다. 이진수는 끝에 아래첨자(2)를 붙이거나 이진수앞에 0b을 붙여 표기합니다. (이 포스팅에서는 0b을 붙여 표기하겠습니다) 십진수를 이진수로 변환 ex) 10 -> 8 + 2 -> 0b1010 7 -> 4 + 2 + 1 -> 0b111 따라서 컴퓨터에게 십진수7을 알려주려면 십진수7을 이진수로 표현한 0b111을 전달해야합니..