Assembly 튜터링

1주차

강의 내용

  • 사전 실력점검 테스트
  • 어셈블리란?
    • 이 과목에서 가장 주로 다루는 어셈블리 언어를 사용하는 이유와 현재 어떤 곳에 사용되는지, 특징은 무엇이며 장단점은 무엇인지 알아보자.
  • 컴퓨터 구조
    • 어셈블리 과목의 특성상 하드웨어와 소프트웨어의 이해가 동시에 필요한데, 이 부분에 관해 알아보기 위해 하드웨어가 어떤 식으로 명령을 처리하는지 알아보자.

과제

  • 어셈블리 언어란 무엇이며, 왜 쓰고 장단점은 무엇인지 써보자.(서술식으로 자신이 아는 내용/책에서 찾아본 내용을 써내려가보자.)
  • 컴퓨터 구조가 어떤 식으로 되어있는지 써보고, CPU에는 어떤 것이 있으며 각각 무슨 일을 하는지 써보자.
  • 재귀함수에 관해 써보고, n!을 재귀함수로 작성할 때 무엇을 고민해야하는지 써보자.
    • 가능하다면 n!을 직접 구현해보고 돌려보자.

  • 승준이를 위한 과제
    • 0과 1000 사이의 정수를 입력받아 모든 자릿수를 더하여 출력하는 프로그램을 짜보자.
      • /10, %10 등을 이용해서 해 보세요.
    • 소문자를 대문자로 바꾸는 프로그램을 작성해보자.
    • 2중 for문을 사용하여 다음 모양의 별찍기를 작성해보자.

1.
*****
 ****
  ***
   **
    *
2.
*
**
***
****
*****

2주차

강의 내용

  • Virtual, 2진수, 메모리 공간, ALU연산, Pipeline, Multitasking, 보호모드, Little-endian, RISC&CISC

과제

  • 9개의 단어 중 3개를 골라 수업시간에 그에 관해 설명할 수 있도록 준비하자.
  • 아래 문제는 기출문제입니다. --*
    1. 각 data가 메모리에 어떻게 저장되는지 쓰세요.

 
.data
arrV BYTE 12h,34h,56h,78h
arrD WORD 0502h, 0603h
arrW DWORD 13141516h
  1. 10진수값 223을 16진수 값으로 변환하세요.
  2. 십진수 14에서 5를 빼는 과정과 결과를 2진수로 표현하여 쓰세요.
  3. Instruction Execution Cycle을 도식하고, 설명하세요.
  • 어셈블리언어의 기본문법을 보고, 어떤 프로그램이든 컴파일시키고 실행시켜보자.

3주차

강의 내용

과제

  1. Directive와 instruction의 차이점에 대해 설명하시오.
  2. 각 배열을 그림으로 표현하고, 다음의 실행결과가 나오도록 괄호를 채우시오.

arrayB BYTE 12h, 34h, 56h, 78h;
arrayW WORD 1324h, 5768h;
arrayD DWORD 87654321h;
mov al, (          )  // al = 21
mov ax, (          )  // ax = 7856
mov eax, (         )  // eax = 57681324
3.

.data
arrV BYTE 12h,34h,56h,78h
arrD  WORD 0502h, 0603h
arrW DWORD 13141516h
a) 각 data가 메모리에 어떻게 저장되는지 쓰세요.
b) 다음 코드를 데이터에 따라 완성하세요.

   .code
	; 3412h 출력
	; 1314h 출력
4.다음 방식(indirect, indexed)로 코드를 작성하고, 설명하시오.

.data
arrayD BYTE 100h, 200h, 300h 
	   indirect operands   		indexed operands
;ax=100h			1)				1)
;ax=ax+300h;			2)				2)
				3)				3)
				4)				4)

4주차

강의 내용

  • 스택프레임
  • 중간고사 이전 범위 Review

과제

5주차

강의 내용

  • FSM
  • Interrupt
  • Disk HW적인 요소, SW적인 요소

과제

Retrieved from http://wiki.zeropage.org/wiki.php/튜터링/2013/Assembly
last modified 2021-02-07 05:31:22