본문 바로가기

전체 글328

0주차-1. 기초 개념 : 재귀함수 재귀함수(Recursion function)란 정의 단계에 자신을 재참조하는 함수이다. 재귀함수의 특징 전달되는 '상태'인 '매개변수'만 달라질 뿐 똑같은 일을 한다. 그러다가 어떤 '상태'에 도달했을 때 종료되는 '기저 사례'가 있다. 함수 호출에 대한 코스트가 크므로 반복문으로 풀 수 있으면 반복문으로 푸는게 좋다. 큰 문제를 작은 문제로 나누어 해결할 때 사용한다. 재귀함수를 사용할 때 주의해야 할 점 기저 사례를 반드시 작성해야 한다. (안그러면 무한히 반복하므로) 사이클이 있다면 사용할 수 없다. ( f(a) -> f(b) -> f(a) ... 같은 이유로 무한 반복..) Factorial 이 점화식을 코드로 표현하면 아래와 같다. int factorial(int n) { if (n < 2) r.. 2022. 9. 1.
1-2. MASM 기본 문법 본 글은 코드누리의 Windows Programming 강좌를 개인 학습 목적으로 정리한 글 입니다. https://www.ecourse.co.kr/ 레지스터(ebx) mov L1, ebx // 레지스터(ebx) -> 메모리(L1) mov eax, L1 ret end 위 예제처럼 메모리에서 메모리를 복사하는 행위는 불가능하다! 그 이유는 현재의 메모리의 구조상 메모리 유닛 자체가 Read/Write를 동시에 할 수 없기 때문이다. 메모리 주소 구하는 방법 ; asm2.asm .model flat public _asm_main .data L1 DWORD 100 L2 DD 200 L3 DD ? .code _asm_main: mov eax, offset L1 // eax = &L1과 동일한 의미 ret end.. 2022. 9. 1.
1-1-2. 어셈블리 빌드 방법 본 글은 코드누리의 Windows Programming 강좌를 개인 학습 목적으로 정리한 글 입니다. https://www.ecourse.co.kr/ Visual Studio 명령 프롬프트 - 여기서 cl 컴파일러를 임의적으로 사용할 수 있다. 1-1) 개발자 명령 프롬프트 실행 1-2) 프로젝트 파일이 있는 주소로 이동 (cd [주소]) 1-3-1) cl main.c 1-3-2) cl main.c /c 1-4-1) ml asm1.asm 1-4-2) ml asm1.asm /c 1-5) link main.obj asm1.obj 1-6) main.exe 2. 사용자 지정 빌드 명령 추가하기 2-1) Visual Studio 프로젝트에 확장자 .c 파일과 .asm 파일이 존재하는데, 빌드하면 asm 파일을 인.. 2022. 9. 1.
1-1-1. 인라인 어셈블리와 MASM 본 글은 코드누리의 Windows Programming 강좌를 개인 학습 목적으로 정리한 글 입니다. https://www.ecourse.co.kr/ 2022. 9. 1.