목록2024/01/04 (3)
Machineboy空
CPU 구성품 중 레지스터 시스템, 임베디드, 해킹 분야의 경우 레지스터 안에 어떤 값이 담겼는지 관찰하게 되는 경우가 많다. ALU나 제어장치에 비해 좀 더 중요하게 살펴 볼 필요가 있다! 반드시 알아야 하는 레지스터 종류 * CPU 종류마다 레지스터의 갯수, 종류가 다르다 * 하지만 공통적으로 포함하는 레지스터들. 이름 저장하는 내용과 용도 1 프로그램 카운터 메모리에서 가져올 명령어의 주소 = 메모리에서 읽어들일 명령어의 주소 *타 CPU에서는 명령어 포인터( Instruction Pointer)라고 부르기도 함 2 명령어 레지스터 해석할 명령어 = 방금 메모리에서 읽어 들인 명령어 제어장치가 해석 3 메모리 주소 레지스터 메모리의 주소 CPU가 읽어 들이고자 하는 주소를 주소 버스로 보낼 때 거치..
CPU의 구성품 중 ALU(Arithmetic Logic Unit)와 제어 장치(Control Unit) 1) ALU(Arithmetic Logic Unit) = 계산기 ALU가 받아들이는 정보: 계산을 하기 위해 필요한 정보 피연산자 (from 레지스터) 수행할 연산 (from 제어장치의 제어 신호) ALU가 내보내는 정보: 계산한 결과값 계산한 결과값을 레지스터에 저장한다. *메모리가 아닌 레지스터에 저장하는 이유: CPU가 메모리에 접근하는 속도보다 레지스터에 접근하는 속도가 더 빠르기 때문 플래그값을 플래그 레지스터에 저장한다. *플래그: 연산 결과에 대한 부가 정보 연산결과가 결과를 담을 레지스터에 비해 너무 클 때도 플래그 래지스터에 담는다. *오버플로우(overflow) 2) 제어 장치(Co..
다음과 같은 과정을 거쳐 실행파일이 된다 1 전처리기 (preprocessor) 본격적으로 컴파일 하기 전에 처리할 작업들 외부에서 선언된 다양한 소스 코드, 라이브러리 포함 (c의 #include) 프로그래밍의 편의를 위해 작성된 매크로 변환 (c의 #define) 컴파일할 영역 명시 (c의 #if, #ifdef ...) 2 컴파일러 (compiler) 전처리가 완료되어도 여전히 소스 코드이다. 이것을 컴퓨터가 이해할 수 있는 저급 언어(어셈블리 언어)로 변환하는 것 3 어셈블러 (assembler) 어셈블리어를 (0과 1로 이루어진)기계어로 변환하는 과정. 목적코드(object file)를 포함하는 목적 파일이 된다. *목적 파일과 실행 파일은 둘 다 기계어로 이루어졌지만 다르다! *목적 파일: 링킹..