어셈블리어 프로그래밍

어셈블리어 프로그래밍


Great 프로그래머의 필수템, 어셈블리어를 마스터하세요. 이 강좌는 다양한 환경에서 어셈블리어를 자유롭게 구사할 수 있는 능력을 길러줍니다. 심지어 컴퓨터를 직접 제작하는 경험까지 포함되어 있죠! POCU 아카데미의 독창적이고 철저한 커리큘럼을 통해 하드웨어의 본질을 깊이 이해하고, 기초 컴퓨터 구조와운영체제의 세계를 완벽하게 습득하세요!




수강생 'Junseok Seo'


best of best.. 최고의 강의들 중 최고.. 그동안 배웠던 프로그래밍의 관점을 아예 바꿔버리는 최고의 강의였습니다. 심지어 대학교 강의들도 x86 어셈블리 코딩부터 시작하는데 컴퓨터 밑바닥부터 보는 최고의 시간이었습니다. 정말 감사합니다.



POCU @ teachable은 신용카드체크카드 결제를 지원합니다.

지원하는 카드: Visa, Mastercard, American Express

지원하지 않는 카드: 라쿠텐(楽天カード), UnionPay(中国银联)

배울 내용

  • x86 어셈블리어 (16, 32 ,64 비트)
  • 6502 어셈블리어
  • CPU처럼 생각하는 법
  • 간단한 컴퓨터 제작 방법
  • 컴퓨터 구조 기초 (CPU)
  • 운영체제와 BIOS의 역할


요구 사항

  • 'C 언매니지드 프로그래밍' 수료
  • 기초 자료 구조를 직접 구현할 수 있음
  • 포인터를 확실히 이해하고 사용할 수 있음
  • 문법에 발목 잡히는 일이 없을 정도로 프로그래밍에 능숙
  • 비트패턴을 자유자재로 다룰 수 있음
  • 진법 변환을 자유자재로 할 수 있음
  • C 표준 라이브러리의 문자열 함수를 다 구현할 수 있음
  • 스택 메모리의 동작법을 확실히 이해하고 있음



설명

본 비디오 강좌는 POCU 아카데미에서 진행하는 COMP2300 수업의 비디오 강좌입니다.

Great 프로그래머가 되려면 프로그램을 구성하는 가장 낮은 수준부터 가장 높은 수준까지 완벽하게 이해해야 합니다. 이를 통해 저수준과 고수준 사이의 어딘가에서 올바른 결정을 내려 미래에나 가능해 보이는 일을 지금 당장 이뤄낼 수 있으며, 그런 능력을 갖춘 사람이 바로 Great 프로그래머거든요. 하지만 시중에는 고수준 프로그래밍에 관한 강의가 넘쳐나는 반면, 저수준 프로그래밍에 대한 강의는 매우 부족한 상황입니다. 이를 해결하기 위해 POCU 아카데미가 차별화된 저수준 프로그래밍 강좌, 'COMP2300: 어셈블리 프로그래밍'을 선보입니다.


컴퓨터는 딱 한 가지 언어만 이해할 수 있습니다. 기계어, 즉 0과 1로 이루어진 이진수입니다. 마법처럼 보이는 어떤 언어와 도구를 사용하든 간에 그 도구가 하는 일은 결국 기계어를 만들어내는 것이며, 컴퓨터는 그 기계어를 해석해서 실행할 뿐입니다. 따라서 컴퓨터의 동작원리를 이해하기에 기계어를 공부하는 것만큼 좋은 방법이 없죠. 하지만 기계어는 사람이 쉽게 읽을 수 없습니다. 따라서 각 기계어 명령어마다 별칭을 단 언어인 어셈블리어를 그 대신 배우곤 합니다.


본 강좌는 간단히 CPU 구조를 살펴본 뒤, 크게 다음과 같은 순서에 따라 진행됩니다.


1. 8 비트 어셈블리 프로그래밍 (+컴퓨터 제작)

2. 16 비트 어셈블리 프로그래밍 (+운영체제 서비스)

3. 32/64 비트 인라인 어셈블리 프로그래밍 (+SIMD)


'Part 1: 8 비트 어셈블리 프로그래밍'에서는 MOS 6502 CPU를 사용해 기초적인 8 비트 컴퓨터를 제작하고, 그 컴퓨터에서 동작하는 기계어 및 어셈블리어 코드를 작성합니다. 이 부분에서는 CPU의 구조와 동작원리를 이해하고, 어셈블리어를 활용해 하드웨어를 직접 제어하는 제어기기 프로그래밍 패턴을 배울 수 있습니다.


'Part 2: 16 비트 어셈블리 프로그래밍'에서는 현재 데스크톱 CPU 점유율 1위인 x86 계열 CPU의 시초인 Intel 8086/8088 CPU에서 x86-16 어셈블리어 코드를 작성합니다. 이 부분에서는 많은 프로그램에 공통적인 연산(예: 콘솔 출력)을 운영체제의 도움을 받아 처리하는 법을 배우며, 이는 시스템 프로그래밍 패턴을 익히는 좋은 계기가 될 것입니다.


'Part 3: 32/64비트 인라인 어셈블리 프로그래밍'에서는 고수준 언어인 C에서 성능에 중요한 일부 코드만 어셈블리어로 작성하는 인라인 어셈블리 프로그래밍 패턴에 대해 배워봅니다. 또한 한 번의 명령으로 다수의 데이터를 한 번에 처리하는 SIMD(Single Instruction Multiple Data)에 대한 지식도 함께 습득하게 됩니다.


이 과목의 목표는 어셈블리어를 화려하게 구사하는 것이 아닙니다. 이 과목을 성공적으로 끝마친 학생이 기대할 수 있는 효과는 다음과 같습니다.


1. 프로그래밍의 근본적인 구조와 원리를 깊이 이해하며, 저수준 프로그래밍을 통해 고수준 프로그래밍의 효율성과 높은 수준의 성과를 이끌어 낼 수 있는 Great 프로그래머로 거듭날 것입니다.

2. 기존에 알고 있던 프로그래밍 언어와 개념에 대한 이해가 더욱 깊어질 것입니다. 특히 어셈블리어를 배우는 것은 최적화된 코드를 작성하는 데 큰 도움이 되며, 높은 수준의 언어와 저수준의 언어 사이에서 발생하는 성능 상의 이슈를 파악하고 해결할 수 있는 능력을 기를 수 있습니다.

3. 향후에 다양한 플랫폼과 환경에서 동작하는 프로그램을 개발하고 최적화할 때 중요한 역할을 하는 저수준 프로그래밍에 대한 실질적인 이해를 갖추게 될 것입니다. 이는 더욱 전문적이고 성공적인 프로그래머로 성장하는 데 필수적인 역량입니다.

4. 이 과목에서 얻은 지식과 경험을 바탕으로 프로젝트를 구성하고 관리하는 데 있어 보다 합리적이고 전략적인 결정을 내릴 수 있게 될 것입니다. 이로 인해 프로젝트의 효율성과 성공률이 크게 향상되는 것은 물론, 속한 조직이나 개인적인 경력에서도 큰 도약을 이룰 것입니다.


POCU 아카데미의 독창적이고 철저한 커리큘럼을 통해 하드웨어의 본질을 깊이 이해하고, 기초 컴퓨터 구조 및 운영체제의 세계를 완벽하게 습득하세요. 지금 바로 POCU 아카데미의 어셈블리어 강좌를 통해 프로그래머로서 한 단계 더 도약할 수 있습니다. 저수준 프로그래밍의 흥미로운 세계로 함께 떠나 볼 준비가 되셨나요? 지금 바로 참여하세요!

이 강좌의 대상

  • 컴퓨터 공학의 기본기를 배우고 싶은 분들
  • 프로그래머로서 평생 커리어를 꿈꾸는 분들
  • Great 프로그래머를 꿈꾸는 분



강좌 콘텐츠


  과목 소개
Available in
일 after you enroll
  수업에 도움되는 자료
Available in
일 after you enroll
  디지털 컴퓨터 구조(기초)
Available in
일 after you enroll
  기계어 프로그래밍
Available in
일 after you enroll
  6502 어셈블리 기초 문법
Available in
일 after you enroll
  산술 논리 연산
Available in
일 after you enroll
  조건문
Available in
일 after you enroll
  반복문과 배열
Available in
일 after you enroll
  함수
Available in
일 after you enroll
  매크로와 지시문
Available in
일 after you enroll
  주변기기 연결
Available in
일 after you enroll
  x86-16 소개
Available in
일 after you enroll
  x86-16 니모닉
Available in
일 after you enroll
  콘솔 입출력
Available in
일 after you enroll
  문자열, 함수, 구조체
Available in
일 after you enroll
  메모리 세그먼테이션
Available in
일 after you enroll
  FPU 프로그래밍
Available in
일 after you enroll
  인라인 어셈블리
Available in
일 after you enroll
  SIMD 프로그래밍
Available in
일 after you enroll
  X86-64와 내장 함수
Available in
일 after you enroll
  강의를 마무리 하며
Available in
일 after you enroll