= 시스템 프로그램 및 어셈블리언어 튜터링 = * 튜터 : [서지혜] * 튜티 : [정의정], [윤종하] 외 4명. * 외 4명은 [ZeroPage]의 회원이 아니기에 기록하지 않는다. = 커리큘럼 = * 1주차 : 어셈블리 소개 및 컴퓨터 시스템 개요 * 2주차 : 인텔 프로세서의 구조, 파이프라이닝과 슈퍼스칼라와 스케쥴러 * 3주차 : 스케쥴러 반복, 주소 체계 * 4주차 : 주소 체계 반복, 가상주소와 물리주소의 관계 이해 * 5주차 : 세그먼트, 페이징과 캐싱 * 6주차 : 중간고사 대비 총정리 * 7주차 : 중간고사로 휴강 * 8주차 : 중간 간담회 * 9주차 : 스택과 프로시저 * 10주차 : 조건부 처리, 루프 * 11주차 : 정수 산술, 어셈블리언어의 정수&상수 계산 * 12주차 : 소프트웨어 인터럽트 * 13주차 : 매크로 연산 * 14주차 : 고급언어 인터페이스 * 15주차 : 인터럽트 핸들링 == 1주차 == * 주제 : 어셈블리 소개 및 컴퓨터 시스템 개요 * 첫인사. == 2주차 == == 3주차 == == 4주차 == == 5주차 == == 6주차 == * 중간고사를 위한 여러분의 대비 * 지금까지 배운것을 총정리 하는 시간 * 퀴즈 * 칠판에 나와서 문제 풀어보기 * 항상 기출되는 문제들이 있다. * 책의 정의를 그대로 외우지 말고 왜 그렇게 되는지를 이해하자. == 7주차 == * 중간고사 기간입니다. == 8주차 == * 튜터 간담회로 인해 수업하지 않습니다. == 9주차 == * 쏜살같은 진도 * 2주 하고도 반짜리 진도를 한번에 나가버렸다. * visual studio 2008이 설치되었으니 다음주 부터는 실습을 합니다. == 10주차 == * 코딩 실습 * 강의 과제인 Factorial을 코딩해본다. * 책의 코드를 그대로 베껴와 프로그램을 완성했지만 어떻게 동작하는지는 잘 모르는 사람이 많아 다시 짜보기로 한다. * 관례적으로 "Hello World!"를 출력해 보기로 한다. * 언어 입문의 첫단계 * 반복과 재귀의 차이를 알아보자 * 정수 총합 구하기 * 루프를 돌며 구하기 * sum 프로시저를 만들어 재귀호출하기 == 11주차 == * 코딩 실습2 * 지난주에 하던 정수 총합 구하기 계속 * 지난주에는 루프와 레지스터를 이용한 재귀함수까지 해 보았다. * 이번에는 전역변수와 스택을 이용한 재귀함수를 구현해 본다. *스택(Stack)이 쓰기 어려워요! * 그럼 쓰는것을 연습해 보자. * 스택의 기본은 push와 pop. * 스택에 push되는 값이 무엇인지 생각해보고 pop된 값을 어디에 저장할지를 정하자. * 이번주는 회식을 하였습니다. * 미스터 피자에서 == 12주차 == * 3N+1을 해보았습니다. * 전체 코드는 아니고 3N+1 부분만 * 생각했던 것 이상으로 시간이 오래걸려서 당황 {{{ TITLE MASM Template (main.asm) INCLUDE Irvine32.inc .data number byte ? isOdd byte ? .code main PROC call ReadDec ; 숫자 하나 받아옴 mov number, al START: ; n이 1인지 검사한다 cmp number, 1 je EXIT_LABEL ; 홀수 짝수 검사하는 부분 movzx edx, number mov isOdd, dl AND isOdd, 1 jz EVEN_LABEL ODD_LABEL: ; 홀수 계산 jmp START EVEN_LABEL: ; 짝수 계산 jmp START EXIT_LABEL: exit main ENDP END main }}} == 13주차 == * 매크로했다. == 14주차 == * 상위 언어 인터페이스 * c 프로그램에 어셈블리 사용 * inline * object 파일 * library == 15주차 == * 커리큘럼을 잘못 계산했네요.. 15주차는 기말고사중..