Load * Store 명령어 디자인 레지스터 필요성에 초점을 맞춘다. 지금까지 구조는 모든 피연산자에는 메인 메모리의 주소값이 올 수 없다. (피연산자로 올 수 있는 것을 숫자와 레지스터로 제한 했기 때문에) 때문에 지금까지의 디자인으로 아래와 같은 연산을 할 수 없다. 위에서 마지막 줄 소스는 아래와 같이 바뀐다. ADD c a b = 더해라 / c의 메모리 주소에 저장히라 / a의 메모리 주소와/ b의 메모리주소를 지금까지 설계한 레지스터 구조에서는 위의 명령어가 불가능하다. 메모리 주소가 올 수 있는 공간이 없기 때문이다. 따라서 메인 메모리에 저장된 데이터를 레지스터로 일단 옮겨 놓은 다음에, 덧셈진행을 해야 한다. 그래서 레지스터와 메인 메모리 사이에서 데이터를 전송할 수 있는 명령어가 필요한..
컴퓨터 구조 프로그래머 관점 -컴퓨터 구조를 잘 아는 프로그래머도 컴퓨터 디자인에 참여 -컴퓨터 디자인은 레지스터와 명령어 디자인 레지스터 디자인의 핵심 - 레지스터는 몇 비트로 구성할 것인가? 일반적으로 N비트 시스템이라면 레지스터도 N비트다. 예) 32비트 시스템 = 레지스터 32비트 32비트 시스템에서 데이터의 최소 단위가 32비트이다. 그래서 레지스터도 데이터를 동일하게 32비트로 담는다. 예제에서는 16비트로 구성한다. - 몇 개 정도로 레지스터를 구성할 것인가? 많으면 많을 수록 좋다. 하지만 예제에서는 8개로 구성한다. -레지스터 각각을 무슨 용도로 사용할 것인가? 레지스터는 특별한 목적을 가지고 있는 저장장치다. 이처럼 목적과 용도를 정해 두면, 명령어가 단순해지고, 속도도 빨라진다. 예)..
Win32비트 Vs Win64비트 하드웨어 관점에서 Win32비트 Win64비트 구분 방법 -한번에 송수신 가능한 데이터 크기(BUS에 의존적이다.) -데이터 처리 능력 (CPU가 한번에 읽어 들일 수 있는 명령어 크기. 만약 16비트 데이터가 레지스터에 두개 있으면 32비트 일경우 한번에 패치 한다.) -cpu는 64비트로 처리하는데 bus가 32비트로 데이터를 이동한다면? 완벽한 64비트라고 할 수 없다. cpu , bus 둘다 일치해야 한다. 프로그래머 관점에서 32비트 Vs 64비트 32비트 시스템에서는 포인터는 32비트(4바이트) 이다. 64비트 시스템에서는 포인터는 64비트(8바이트) 이다. bus가 64비트 시스템에서 포인터를 32비트를 설정해서 프로그램을 만들었다면 bus는 주소를 어드레싱..
아스키 코드 & 유니코드 문자 집합의 종류와 특성 MBCS 기반에서 한글사용시 문제점 실제로는 문자 길이는 5인데, 출력된 문자열의 길이가 7이다. 실제 한글 한문자를 두 글자로 인식을 했다. 이부분이 한글을 사용하는데 문제가 될 수 있다. 숫자만 놓고 보면 되고 MBCS가 효율적인데, 메모리보다도 더 안정선을 중요시해서 유니코드를 사용한다. WBCS 기반의 프로그래밍 (유니코드를 위한 자료형) MBCS.cpp의 유니코드 버전 문자열 조작 함수 문자열 입출력 함수 매개변수 전달인자 유니코드화 MBCS와 WBCS 동시지원 참고 뇌를 자극하는 윈도우즈 시스템 프로그래밍 정리 - 한빛출판네트워크
프로그램 실행과정 참고 cpu개발자는 cpu를 디자인 하면서 cpu명령어를 디자인 한다. cpu명령어에 따라서 cpu 구조가 변경되기도 한다. cpu 명령어 예) 0011 은 덧셈으로 인식하도록 디자인 0010은 마이너스로 인식하도록 디자인 .. 위의 예 처럼 만약 0011이 cpu로 들어가면 컨트롤 유닛에 의해서 덧셈으로 처리된다. 하지만 0011에게는 프로그래머가 직접 사용하기 어렵다. 그래서 0011 명령어에 ADD 같은 문자를 붙였다. 그리고 그 후에 ADD 같은 명령어도 사람이 직접 사용하기 어려워서, java, c 같은 고수준 언어가 만들어진다. 1.전처리기에 의한 치환작업 #으로 시작하는 지시자. ex) #include 전처리기 -> 컴파일러 -> 어셈플러 -> 링커 2.컴파일러에 의한 번역..
시스템이란? 하드웨어 + 운영체제 시스템 프로그래밍이란? 운영체제 자체의 기능을 활용해서 소프트웨어를 개발하는 것. 컴퓨터 시스템의 구성요소 컴퓨터 구조 : cpu, 캐쉬 운영체제 : 메인메모리, 하드웨어 cpu : 중앙처리 장치이다. 연산이 이루어지는 원리는 무엇인가를 이해해야 한다. 메인 메모리 : 램이다. 프로그램 실행 방식을 이해해야 한다. 입출력 버스 : 데이터 송수신이 이루어지는 원리를 이해해야한다. cpu에 대한 이해 1.A라는 파일(2+5 더하기 기능) 이 있다. 2.A라는 파일컴파일 3.실행파일(바이너리파일) 하드디스크에 저장 4.실행 5.실행을 위해서 숫자 2와 5 그리고 덧셈이라는 연산자가 메인메모리로 이동하게 된다. (메인 메모리로 올라가야 cpu가 연산을 할 수 있다.) 6.숫자 ..