시스템 프로그램 및 어셈블리언어 튜터링

커리큘럼

  • 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 부분만
    • 생각했던 것 이상으로 시간이 오래걸려서 당황

  • 삼십분도 안걸릴것이라 생각했는데, 이날의 문제는 무엇일까
    • 정의정이 안옴
    • 축제 첫날
    • 내가 코드 설명을 부족하게 하였다. - 슈도코드를 제공하였는데, c로짠다면 3줄정도의 코드다..
    • 난이도가 갑자기 상승하였다? - 그런거같지는 않다. 템플릿을 제공했는데(늦었지만)
    • 짝수 홀수 구분부분에서 다들 헤맨듯.
    • 다들 변수이름 개떡같이 지어. 나도 개떡같지만..

TITLE MASM Template						(main.asm)

INCLUDE Irvine32.inc
.data
number byte ?
isOdd byte ?

.code
main PROC
	call ReadDec	; 숫자 하나 받아옴
	mov number, al

LOOP:
	; 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 LOOP

EXIT_LABEL:	exit
main ENDP

END main

13주차

  • 매크로했다.
  • 매크로는 대체 왜 쓰나요?
    • 타이핑 수가 줄어든다
    • 코드가 간결해져 보기 좋다.
      • 긴 코드를 짜보지 않아서 공감하기 힘들었나보다. 이놈. 조금만 기다려봐라

14주차

  • 상위 언어 인터페이스
    • c 프로그램에 어셈블리 사용
      • inline
      • object 파일
      • library
  • 튜터링 페이지가 있었네..보강은 아침에 합쉬다 - 정의정

15주차

  • 커리큘럼을 잘못 계산했네요.. 15주차는 기말고사중..
  • 기말고사 기간에도 강의할만큼 나에게 여유가 있지 않다..
    • 나야말로 찌질거리며 피피티 파고있을듯
Retrieved from http://wiki.zeropage.org/wiki.php/튜터링/2011/어셈블리언어
last modified 2021-02-07 05:31:22