본문 바로가기

Programming8

[Programming] (윈도우 시스템 프로그래밍) CPU 명령어 구조 및 명령어 디자인 CPU 명령어 구조 및 명령어 디자인 명령어에는 일을 시키기 위한 기본정보가 다 담겨있다 연산자, 저장소, 피연산자 1, 피연산자 2 N 비트 시스템 = 레지스터길이 N 비트 = 명령어 길이 N 비트 example : 사칙연산 명령어 -예약 : 따로 예약된 2비트 -연산자 : 어떤 연산을 할것인지 나타내는 3bit example : 덧셈 : ADD -> 001 뺄셈 : SUB -> 010 곱셈 : MUL -> 011 나눗셈 : DIV -> 100 -저장소 : 연산 결과를 저장하는 3bit ( 레지스터로 제한 ) example : r1 - > 001, r2 -> 002 ... -피연산자 1,2 : 연산할 값 4bit ( 레지스터와 숫자 둘 다 가능 ) 4번째 비트 (X 표시), 0 이면 레지스터로, 1 이.. 2020. 8. 22.
[Programming] (윈도우 시스템 프로그래밍) 컴퓨터 시스템 디자인/레지스터 디자인 컴퓨터 시스템 디자인 CPU 는 종류가 많고(x64,arm,risc-v,mips), 표준이 없다.(CISC,RISC,VLIW 등 다양한 architecture 종류) 그래픽카드도 CPU 라고 할 수 있다. 다만 CPU 와 달리 GPU(Graphic Processing Unit) 라고 부르는데, GPU 는 CPU 와 비슷하게 연산을 하지만 그래픽 처리에 극히 제한되어있다. example : GPU 디자인 GPU 를 디자인할려면 H/W 전문가 그래픽알고리즘 전문가 INTERFACE 전문가 프로그래머 이런 사람들이 모여서 GPU 를 만든다. H/W 전문가 > LOGIC전문가 > ASIC 전문가, 우리나라에서는 ASIC 전문가가 주로 참여한다. ASIC 는 C 와 비슷하고, ASIC 는 논리게이트로 변환된다. .. 2020. 8. 17.
[Programming] (윈도우 시스템 프로그래밍) 64bit 기반 프로그래밍 / 에러검출, 에러코드가져오기, GetLastError() 64bit 기반 프로그래밍 64bit 기반 시스템에서 자료형에 대해 고려한 프로그래밍 이다. LLP64 vs LP64 32bit 시스템과 호환성을 중시한 모델. 운영체제 모델 char short int long pointer Windows LLP64 1byte 2byte 4byte 4byte 8byte UNIX LP64 1byte 2byte 4byte 8byte 8byte 64bit 와 32bit 공존의 문제점 int arr[10]={0,}; int arrVal=(int)arr; //데이터 손실 배열 arr 는 포인터다. 배열에서 값을 참조할때 arr[0] 으로 참조하는데, 이것은 *arr 과 같다. 포인터 이므로 8byte 의 크기를 가진다. 하지만 4byte 인 int 로 형변환을 하면 상위 4byt.. 2020. 8. 12.
[Programming] (윈도우 시스템 프로그래밍) Windows 32bit 와 64bit WIN32 vs WIN64 64bit 와 32bit 구분법 한번에 송수신 가능한 데이터 크기 (BUS) CPU 에서 처리 가능한 명령어의 크기 (Register 의 크기) 32bit -> 64bit 의 특징 프로그램으로 표현할 수 있는 범위의 증가 활용 가능한 메모리의 확장 (메모리에서 접근할 수 있는 범위 증가) 32bit 시스템에서는 포인터가 32bit 크기이고, 2^32-1 만큼 표현할 수 있다. 64bit 시스템에서는 포인터가 64bit 크기이고, 2^64-1 만큼 표현할 수 있다. ! 내컴퓨터 비트수 확인 제어판에 시스템에서 확인할 수 있다 ! 프로그래머 입장에서 64bit 특징 활용 가능한 메모리가 50byte 라고 가정해보자. (프로그램을 실행할때 할당하는 메모리는 고려하지 않는다.) exa.. 2020. 8. 12.