농소
1. 디버거 사용법: GDB (콘솔상에서 사용하는 디버거) - bug : 프로그램에 존재하는 잠재적인 오류 - de-bugging : 버그를 찾는 행위 - de-bugger : 버그를 찾는데 도와주는 도구 일반 사용자 shell(user)가 메모리에 접근할 수 없고, 커널은 메모리에 접근권한을 가지고있다.우리가 프로세스에 접근하기 위해선 디버거를 이용하여 메모리에 접근 할 수 있다. 유명한 디버거 IDA, OLLY.. GDB 사용법 - 실행 : run - 종료 : quit 1). #>gdb 2). #>gdb (gdb) file 2. 자주 사용하는 GDB 명령어, 기능 - 명령어 축약 : (r)un - r만 입력해서 run으로 인식 - 명령어 완성 : r - r로 시작하는 명령어를 보거나 완성 할 수 있다..
시스템 프로그래밍 게임 프로그래밍 - 게임 관련 라이브러리 사용 네트워크 프로그래밍 - 소켓을 이용한 네트워크 라이브러리 사용 시스템 프로그래밍 - 윈도우즈 : win API (Advanced Programing Interface) - 리눅스 : system call 시스템 호출(System call)은 운영 체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스이다. os를 크게 나누면 2가지로 나눌 수 있다 1). shell(user) - 사용자 영역 (목적 - h/w제어)2). H/W(Device) - shell에서 하드웨어에 바로접근하게되면 문제가발생 한다. - 그래서 중간에 커널이 존재한다. 또, 장치를 출력하고싶으면 interface를 이용 - in..
asm 지역변수 배열활용 이번에 asm에서 배열을 지역변수로 나타내려면 어떻게 표현해야 하는지 알아보자 스택이 쌓일 수록 메모리주소값은 작아지는데 배열도 마찬가지로첫주소가 다음주소보다 높다는 생각을 할 수도 있다.하지만 배열같은경우 c에서 처럼 낮은 주소부터 높은 주소로 표현된다. 즉, 배열의 시작주소는 지정된 크기중 가장 낮은 주소에 위치한다. 우선 이전에 했던 입력한 문자열을 반대로 출력하는 코드를 지역변수로 변환해서 asm으로 작성해보겠다. C 언어 int main(){ char buffer[1024] = {0,}; int len =0; printf("input: "); gets( buffer ); while(buffer[len] !=0) {len++ } len--; while( len >= 0) ..