본문 바로가기

분류 전체보기

170316 Caller & Callee , 함수 호출 규약 1. Caller & Callee 호출 하는 놈 : Caller - main()콜러가 저장하는 레지스터 ( caller-saved-register) : 콜러가 사용하기 전 반드시 백업해야 하는 레지스터, 콜리는 사용가능 값이 보존되지않아도 되는 경우는 백업하지 않을 수 있다.☞ EAX, ECX, EDX호출 당한 놈 : Callee - func()콜리가 저장하는 레지스터 ( Callee-saved-register) : 콜리가 사용하기 전 반드시 백업해야 하는 레지스터, 콜러는 사용 가능 콜리 입장에서는 콜러가 백업을 필요로하는 레지스터가 무엇인지 모르기 때문에 무조건 백업해야함.☞ EBX, ESI, EDI, EBP 2. 함수 호출 규약(Calling Convention)cdelc : 콜러(Caller)가 .. 더보기
170314 리눅스, 우분투 설치 및 C 소양교육 우분투 및 가상머신 설치 * www.ubuntu.com/download // 우분투 설치 * 절대경로, 상대경로 절대경로 : 루트부터 지정하고싶은 곳 까지 이름을 지정해서 찾아감상대경로 : ../directoryname 상위 디렉토리 , ./directoryname 현재 디렉토리 리눅스 명령어======================================동작 명령====================================== ls : 파일 리스트 보기cd : 디렉토리 변경cp : 파일 복사mv : 파일 이름/위치 변경mkdir : 디렉토리 생성rmdir : 디렉토리 삭제rm : 파일 삭제pwd : 현재 디렉토리 경로 보여주기chmod : 파일 permission 변경chown :cat : 파일.. 더보기
170315 C (포인터, 반복문) 1. 포인터포인터는 값을 가리키지 않고 주소를 가리킨다.단항 연산자로서의 * 와 &는 변수계산에 사용된다. &연산자는 주소값을 저장하는 연산* 연산자는 자신에게 저장된 주소값이 들어있는 곳의 데이터 C 언어에서 포인터는 다음과 같이 정의할 수 있습니다. (포인터에 주소값이 저장되는 데이터의 형) *(포인터의 이름); 혹은 아래와 같이 정의할 수 도 있습니다. (포인터에 주소값이 저장되는 데이터의 형)* (포인터의 이름); int *a;int b; a = &b;b = 2; printf("b : %d\n", b);printf("*a : %d\n", *a); b에 2가 수록되어 있고, a에 b의 주소가 있는 모양이다.*a를 사용했을 경우 a에 들어있는 주소 b에 가서 b의 데이터를 가져온다. 2. 반복문반복문.. 더보기
170315 레지스터 1. 레지스터 CPU 내부에 위치하는 다목적 공간으로 고속으로 데이터 처리가 가능하다.현재 처리되고있는 데이터를 저장하는것이 특징. 1)레지스터 구분 범용 레지스터 EAX 누산기 산술연산에 사용(함수의 결과값 저장) EBX 베이스 레지스터 특정 주소 저장(주소 지정 확대) ECX 카운트 레지스터 루프의 반복횟수나 좌우 시프트 횟수 기억 EDX 데이터 레지스터 일반 자료 저장 (입출력 동작에 사용) 포인터 레지스터 EBP 베이스 포인터 스택의 첫부분 (?), SS 레지스터와 함께 사용되어 스택내의 변수값을 읽는데 사용함 ESP 스택 포인터 스택의 끝부분을 가리킴 EIP 명령 포인터 다음명령어의 Offset(다음 명령의 주소)을 저장하여 다음 수행될 명령의 주소 형성 플래그 레지스터 EFLAGS 플래그 레지.. 더보기
170315 스택(STACK) 자료구조와 프롤로그, 에필로그 1. 스택(STACK) LIFO(Last In First Out)을 동작원리로 하는 자료구조.스택의 특성을 이용한 작업들- 지역변수 저장- 매개변수 전달- 임시 데이터 백업- 함수호출,복귀 정보 저장 Top (), Pop(), Push(), isEmpty() 등의 함수로 관리1) 스택 프레임- 함수와는 독립적인 메모리 영역- 함수 호출시 생성, 복귀시 삭제- 해당 함수는 스택을 독립적으로 사용 (새로운 함수를 사용할 때 마다 스택이 새로 할당됨) 2) 동작 순서예 ) 메인함수 → 1함수 → 2함수 → 1함수 복귀 → 메인함수 복귀스택 프레임이 생성되고 삭제되는곳에 프롤로그와 에필로그가있다. 3) 프롤로그 & 에필로그함수 호출시 프롤로그가 실행되고 복귀시 에필로그가 실행 되는데 위치는 대충 이곳이다. ma.. 더보기