Great 프로그래머의 필수템, 어셈블리어를 마스터하세요. 이 강좌는 다양한 환경에서 어셈블리어를 자유롭게 구사할 수 있는 능력을 길러줍니다. 심지어 컴퓨터를 직접 제작하는 경험까지 포함되어 있죠! POCU 아카데미의 독창적이고 철저한 커리큘럼을 통해 하드웨어의 본질을 깊이 이해하고, 기초 컴퓨터 구조와운영체제의 세계를 완벽하게 습득하세요!
열리는 날 | 닫히는 날 | |
---|---|---|
수강기간 |
2024-09-02 00:00:00 GMT
|
2024-12-15 23:59:59 GMT
|
수강신청기간 |
2024-08-19 00:00:00 GMT
|
2024-09-01 23:59:59 GMT
|
수강신청 시 해당 내용을 숙지 및 동의한 것으로 간주합니다.
Great 프로그래머가 되려면 프로그램을 구성하는 가장 낮은 수준부터 가장 높은 수준까지 완벽하게 이해해야 합니다. 이를 통해 저수준과 고수준 사이의 어딘가에서 올바른 결정을 내려 미래에나 가능해 보이는 일을 지금 당장 이뤄낼 수 있으며, 그런 능력을 갖춘 사람이 바로 Great 프로그래머거든요. 하지만 시중에는 고수준 프로그래밍에 관한 강의가 넘쳐나는 반면, 저수준 프로그래밍에 대한 강의는 매우 부족한 상황입니다. 이를 해결하기 위해 POCU 아카데미가 차별화된 저수준 프로그래밍 강좌, 'COMP2300: 어셈블리 프로그래밍'을 선보입니다.
컴퓨터는 딱 한 가지 언어만 이해할 수 있습니다. 기계어, 즉 0과 1로 이루어진 이진수입니다. 마법처럼 보이는 어떤 언어와 도구를 사용하든 간에 그 도구가 하는 일은 결국 기계어를 만들어내는 것이며, 컴퓨터는 그 기계어를 해석해서 실행할 뿐입니다. 따라서 컴퓨터의 동작원리를 이해하기에 기계어를 공부하는 것만큼 좋은 방법이 없죠. 하지만 기계어는 사람이 쉽게 읽을 수 없습니다. 따라서 각 기계어 명령어마다 별칭을 단 언어인 어셈블리어를 그 대신 배우곤 합니다.
본 강좌는 간단히 CPU 구조를 살펴본 뒤, 크게 다음과 같은 순서에 따라 진행됩니다.
'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)에 대한 지식도 함께 습득하게 됩니다.
이 과목의 목표는 어셈블리어를 화려하게 구사하는 것이 아닙니다. 이 과목을 성공적으로 끝마친 학생이 기대할 수 있는 효과는 다음과 같습니다.
POCU 아카데미의 독창적이고 철저한 커리큘럼을 통해 하드웨어의 본질을 깊이 이해하고, 기초 컴퓨터 구조 및 운영체제의 세계를 완벽하게 습득하세요. 지금 바로 POCU 아카데미의 어셈블리어 강좌를 통해 프로그래머로서 한 단계 더 도약할 수 있습니다. 저수준 프로그래밍의 흥미로운 세계로 함께 떠나 볼 준비가 되셨나요? 지금 바로 참여하세요!
동영상 강의 범위(총 4시간 26분): 훌륭한 프로그래머와 어셈블리어 ~ 클럭 속도 늦추기
실습 1
과제 1 (제출 마감: 2024-09-22 22:00:00 GMT)
실습 2
과제 1 (제출 마감: 2024-09-22 22:00:00 GMT)
동영상 강의 범위(총 2시간 43분): 어셈블리어의 언어적 분류 ~ 정리
실습 3
과제 1 (제출 마감: 2024-09-22 22:00:00 GMT)
실습 4
과제 2 (제출 마감: 2024-10-13 22:00:00 GMT)
동영상 강의 범위(총 2시간 15분): 반복문 ~ zp를 이용한 인자 전달
실습 5
과제 2 (제출 마감: 2024-10-13 22:00:00 GMT)
동영상 강의 범위(총 2시간 13분): 스택을 통한 인자 전달 ~ 정리
실습 6
과제 2 (제출 마감: 2024-10-13 22:00:00 GMT)
과제 3 (제출 마감: 2024-11-10 22:00:00 GMT)
동영상 강의 범위(총 3시간 12분): x86 아키텍처 소개 ~ 정리
실습 7
과제 3 (제출 마감: 2024-11-10 22:00:00 GMT)
실습 8
과제 3 (제출 마감: 2024-11-10 22:00:00 GMT)
동영상 강의 범위(총 1시간 25분): 8086과 8087 ~ 정리
실습 9
과제 4 (제출 마감: 2024-12-01 22:00:00 GMT)
동영상 강의 범위(총 2시간 24분): CPU 성능의 비약적 발전 ~ 요즘 컴파일러와 SIMD 코드
실습 10
과제 4 (제출 마감: 2024-12-01 22:00:00 GMT)
실습 11
과제 4 (제출 마감: 2024-12-01 22:00:00 GMT)
없음
제목 | 공지일 | 제출 마감 |
---|---|---|
101
실습 1
|
1
2024-09-02 00:00:00 GMT
(1주 차)
|
638614296000000000
2024-09-08 22:00:00 GMT
|
102
실습 2
|
2
2024-09-09 00:00:00 GMT
(2주 차)
|
638620344000000000
2024-09-15 22:00:00 GMT
|
103
실습 3
|
3
2024-09-16 00:00:00 GMT
(3주 차)
|
638626392000000000
2024-09-22 22:00:00 GMT
|
104
실습 4
|
4
2024-09-23 00:00:00 GMT
(4주 차)
|
638632440000000000
2024-09-29 22:00:00 GMT
|
105
실습 5
|
5
2024-09-30 00:00:00 GMT
(5주 차)
|
638638488000000000
2024-10-06 22:00:00 GMT
|
106
실습 6
|
6
2024-10-07 00:00:00 GMT
(6주 차)
|
638644536000000000
2024-10-13 22:00:00 GMT
|
107
실습 7
|
9
2024-10-28 00:00:00 GMT
(9주 차)
|
638662680000000000
2024-11-03 22:00:00 GMT
|
108
실습 8
|
10
2024-11-04 00:00:00 GMT
(10주 차)
|
638668728000000000
2024-11-10 22:00:00 GMT
|
109
실습 9
|
11
2024-11-11 00:00:00 GMT
(11주 차)
|
638674776000000000
2024-11-17 22:00:00 GMT
|
1010
실습 10
|
12
2024-11-18 00:00:00 GMT
(12주 차)
|
638680824000000000
2024-11-24 22:00:00 GMT
|
1011
실습 11
|
13
2024-11-25 00:00:00 GMT
(13주 차)
|
638686872000000000
2024-12-01 22:00:00 GMT
|
001
과제 1
|
1
2024-09-02 00:00:00 GMT
(1주 차)
|
638626392000000000
2024-09-22 22:00:00 GMT
|
002
과제 2
|
4
2024-09-23 00:00:00 GMT
(4주 차)
|
638644536000000000
2024-10-13 22:00:00 GMT
|
003
과제 3
|
7
2024-10-14 00:00:00 GMT
(7주 차)
|
638668728000000000
2024-11-10 22:00:00 GMT
|
004
과제 4
|
11
2024-11-11 00:00:00 GMT
(11주 차)
|
638686872000000000
2024-12-01 22:00:00 GMT
|
2024-09-15 23:59:59 GMT | 환불 신청 마감 |
|
---|---|---|
2024-11-03 23:59:59 GMT | 수강 철회 신청 마감 |
|
반드시 PC에서(모바일은 응시 불가) 크롬(Chrome) 브라우저를 사용해야 합니다.
시험을 볼 때 시험 감독 서비스를 사용하며, 서비스를 이용하기 위한 시스템 최소 사양은 다음과 같습니다.
윈도우 | 맥 | 리눅스 | 크롬 운영체제 | |
---|---|---|---|---|
운영체제 | 윈도우 7+ | 맥 OSX 10.9+ | 우분투 18.04+ | 크롬 58+ |
프로세서 | 인텔 펜티엄 이상 | 인텔 또는 ARM | 인텔 펜티엄 이상 | 인텔 또는 ARM |
사용 가능한 디스크 공간 | 250 MB | 250 MB | 250 MB | 250 MB |
램(메모리) | 4 GB1 | 4 GB1 | 4 GB1 | 4 GB1 |
업로드 속도 | 0.092 Mbps - 0.244 Mbps | |||
마이크 | 내장형 또는 독립형 | |||
웹캠 | VGA 해상도 320x240 이상, 내장형 또는 독립형 |
공통
6502 관련
x86 관련
열리는 날 | 닫히는 날 | |
---|---|---|
수강기간 |
2025-01-06 00:00:00 GMT
|
2025-04-20 23:59:59 GMT
|
수강신청기간 |
2024-12-23 00:00:00 GMT
|
2025-01-05 23:59:59 GMT
|
수강신청 시 해당 내용을 숙지 및 동의한 것으로 간주합니다.
Great 프로그래머가 되려면 프로그램을 구성하는 가장 낮은 수준부터 가장 높은 수준까지 완벽하게 이해해야 합니다. 이를 통해 저수준과 고수준 사이의 어딘가에서 올바른 결정을 내려 미래에나 가능해 보이는 일을 지금 당장 이뤄낼 수 있으며, 그런 능력을 갖춘 사람이 바로 Great 프로그래머거든요. 하지만 시중에는 고수준 프로그래밍에 관한 강의가 넘쳐나는 반면, 저수준 프로그래밍에 대한 강의는 매우 부족한 상황입니다. 이를 해결하기 위해 POCU 아카데미가 차별화된 저수준 프로그래밍 강좌, 'COMP2300: 어셈블리 프로그래밍'을 선보입니다.
컴퓨터는 딱 한 가지 언어만 이해할 수 있습니다. 기계어, 즉 0과 1로 이루어진 이진수입니다. 마법처럼 보이는 어떤 언어와 도구를 사용하든 간에 그 도구가 하는 일은 결국 기계어를 만들어내는 것이며, 컴퓨터는 그 기계어를 해석해서 실행할 뿐입니다. 따라서 컴퓨터의 동작원리를 이해하기에 기계어를 공부하는 것만큼 좋은 방법이 없죠. 하지만 기계어는 사람이 쉽게 읽을 수 없습니다. 따라서 각 기계어 명령어마다 별칭을 단 언어인 어셈블리어를 그 대신 배우곤 합니다.
본 강좌는 간단히 CPU 구조를 살펴본 뒤, 크게 다음과 같은 순서에 따라 진행됩니다.
'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)에 대한 지식도 함께 습득하게 됩니다.
이 과목의 목표는 어셈블리어를 화려하게 구사하는 것이 아닙니다. 이 과목을 성공적으로 끝마친 학생이 기대할 수 있는 효과는 다음과 같습니다.
POCU 아카데미의 독창적이고 철저한 커리큘럼을 통해 하드웨어의 본질을 깊이 이해하고, 기초 컴퓨터 구조 및 운영체제의 세계를 완벽하게 습득하세요. 지금 바로 POCU 아카데미의 어셈블리어 강좌를 통해 프로그래머로서 한 단계 더 도약할 수 있습니다. 저수준 프로그래밍의 흥미로운 세계로 함께 떠나 볼 준비가 되셨나요? 지금 바로 참여하세요!
동영상 강의 범위(총 4시간 26분): 훌륭한 프로그래머와 어셈블리어 ~ 클럭 속도 늦추기
실습 1
과제 1 (제출 마감: 2025-01-26 22:00:00 GMT)
실습 2
과제 1 (제출 마감: 2025-01-26 22:00:00 GMT)
동영상 강의 범위(총 2시간 43분): 어셈블리어의 언어적 분류 ~ 정리
실습 3
과제 1 (제출 마감: 2025-01-26 22:00:00 GMT)
실습 4
과제 2 (제출 마감: 2025-02-16 22:00:00 GMT)
동영상 강의 범위(총 2시간 15분): 반복문 ~ zp를 이용한 인자 전달
실습 5
과제 2 (제출 마감: 2025-02-16 22:00:00 GMT)
동영상 강의 범위(총 2시간 13분): 스택을 통한 인자 전달 ~ 정리
실습 6
과제 2 (제출 마감: 2025-02-16 22:00:00 GMT)
과제 3 (제출 마감: 2025-03-16 22:00:00 GMT)
동영상 강의 범위(총 3시간 12분): x86 아키텍처 소개 ~ 정리
실습 7
과제 3 (제출 마감: 2025-03-16 22:00:00 GMT)
실습 8
과제 3 (제출 마감: 2025-03-16 22:00:00 GMT)
동영상 강의 범위(총 1시간 25분): 8086과 8087 ~ 정리
실습 9
과제 4 (제출 마감: 2025-04-06 22:00:00 GMT)
동영상 강의 범위(총 2시간 24분): CPU 성능의 비약적 발전 ~ 요즘 컴파일러와 SIMD 코드
실습 10
과제 4 (제출 마감: 2025-04-06 22:00:00 GMT)
실습 11
과제 4 (제출 마감: 2025-04-06 22:00:00 GMT)
없음
제목 | 공지일 | 제출 마감 |
---|---|---|
101
실습 1
|
1
2025-01-06 00:00:00 GMT
(1주 차)
|
638723160000000000
2025-01-12 22:00:00 GMT
|
102
실습 2
|
2
2025-01-13 00:00:00 GMT
(2주 차)
|
638729208000000000
2025-01-19 22:00:00 GMT
|
103
실습 3
|
3
2025-01-20 00:00:00 GMT
(3주 차)
|
638735256000000000
2025-01-26 22:00:00 GMT
|
104
실습 4
|
4
2025-01-27 00:00:00 GMT
(4주 차)
|
638741304000000000
2025-02-02 22:00:00 GMT
|
105
실습 5
|
5
2025-02-03 00:00:00 GMT
(5주 차)
|
638747352000000000
2025-02-09 22:00:00 GMT
|
106
실습 6
|
6
2025-02-10 00:00:00 GMT
(6주 차)
|
638753400000000000
2025-02-16 22:00:00 GMT
|
107
실습 7
|
9
2025-03-03 00:00:00 GMT
(9주 차)
|
638771544000000000
2025-03-09 22:00:00 GMT
|
108
실습 8
|
10
2025-03-10 00:00:00 GMT
(10주 차)
|
638777592000000000
2025-03-16 22:00:00 GMT
|
109
실습 9
|
11
2025-03-17 00:00:00 GMT
(11주 차)
|
638783640000000000
2025-03-23 22:00:00 GMT
|
1010
실습 10
|
12
2025-03-24 00:00:00 GMT
(12주 차)
|
638789688000000000
2025-03-30 22:00:00 GMT
|
1011
실습 11
|
13
2025-03-31 00:00:00 GMT
(13주 차)
|
638795736000000000
2025-04-06 22:00:00 GMT
|
001
과제 1
|
1
2025-01-06 00:00:00 GMT
(1주 차)
|
638735256000000000
2025-01-26 22:00:00 GMT
|
002
과제 2
|
4
2025-01-27 00:00:00 GMT
(4주 차)
|
638753400000000000
2025-02-16 22:00:00 GMT
|
003
과제 3
|
7
2025-02-17 00:00:00 GMT
(7주 차)
|
638777592000000000
2025-03-16 22:00:00 GMT
|
004
과제 4
|
11
2025-03-17 00:00:00 GMT
(11주 차)
|
638795736000000000
2025-04-06 22:00:00 GMT
|
2025-01-19 23:59:59 GMT | 환불 신청 마감 |
|
---|---|---|
2025-03-09 23:59:59 GMT | 수강 철회 신청 마감 |
|
반드시 PC에서(모바일은 응시 불가) 크롬(Chrome) 브라우저를 사용해야 합니다.
시험을 볼 때 시험 감독 서비스를 사용하며, 서비스를 이용하기 위한 시스템 최소 사양은 다음과 같습니다.
윈도우 | 맥 | 리눅스 | 크롬 운영체제 | |
---|---|---|---|---|
운영체제 | 윈도우 7+ | 맥 OSX 10.9+ | 우분투 18.04+ | 크롬 58+ |
프로세서 | 인텔 펜티엄 이상 | 인텔 또는 ARM | 인텔 펜티엄 이상 | 인텔 또는 ARM |
사용 가능한 디스크 공간 | 250 MB | 250 MB | 250 MB | 250 MB |
램(메모리) | 4 GB1 | 4 GB1 | 4 GB1 | 4 GB1 |
업로드 속도 | 0.092 Mbps - 0.244 Mbps | |||
마이크 | 내장형 또는 독립형 | |||
웹캠 | VGA 해상도 320x240 이상, 내장형 또는 독립형 |
공통
6502 관련
x86 관련