Introducing
Your new presentation assistant.
Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.
Trending searches
2학년3반9번 송인환
강의주제:어셈블리
이것을 강의주제로 한 이유: 요즘 프로그래밍의 중요성이 생기면서 이공부를 어떻게 시작을 하면 좋을지 모르는 사람들을 위해 생각을 해보다 기본적인 어셈블리를 선택하게 되었습니다.
강의를 위한 과정!
프로그램이란! 컴퓨터를 실행시키기 위해 차례대로 작성된 명령어 모음 입니다.
프로그래밍 언어는 프로그램을 개발하는 데 사용되는 언어입니다.
프로그래밍은 프로그램을 작성하는 일입니다.
효과적인 강의를 위해 인터넷을 통해 어셈블리의 효율적인 사용법을 조사 했습니다.
조사한 내용을 토대로 실제로 어셈블리를 이용하여 파일을 만들어 보고 실행 시켜보는것 까지 해보았습니다.
어셈블리어는, 기계어와 일대일 대응이 되는 컴퓨터 프로그래밍의 저급 언어 입니다.
기계어는 실제로 컴퓨터의 CPU가 읽어서 실행할 수 있는 0과 1로 이루어진 명령어의 조합입니다. 이러한 각 명령어에 대해 사람들이 알아보기 쉬운 '니모닉 기호'를 만들어 사람들이 좀 더 쉽게 컴퓨터의 행동을 제어할 수 있도록 한것이 어셈블리 언어입니다.
어셈블리어는 기계어를 니모닉 기호를 통하며,
보다 이해하기 쉬운 언어로 구성되어 있고,
이 니모닉 기호들은 기계어와
1:1로 대응되는 명령어를
갖고 있습니다.
부가설명!
컴퓨터 프로그램은 컴퓨터가 인식할수 있는 기계어로 만들어야 합니다.
현재의 대다수 컴퓨터는 32비트 프로세서의 명령어를 인지하고 있는데
이때 그 명령어를 이용해서 프로그램 한다는건 너무 어려운 일(숫자 0 과 1의 조합 뿐이기 때문)입니다.
컴퓨터는 0 과 1 (이진수) 이 두개로만 구분할수가 있는데,
이를 조합하여
(예제) 001000 00001 00000 0000000000001010 (32비트)
(2진수)이런식으로의 명령어를 나타냅니다.
위와 같은 32비트의 명령어는 너무 길고 기억하기 어렵기 때문에,
쉽게 기억하기 위해, 우리가 알아보기 쉽게끔 언어로 변환해줍니다.
이 기계어를 보기쉬운 언어로 바꾸어준 것이 니모닉입니다.
저 위에 예제인 001000 00001 00000 0000000000001010을
쉽게 니모닉 기호로 바꾼다면 08 01 00 000A(16진수) addi $0, $1, 10(addi는 add immediate의 약자)가됩니다. 뜻: <$0 = $1 + 10 (2)>
이렇게 니모닉을 정하여 일련의 명령어를 나타낸것이
assembly, 어셈블리어입니다.
이 어셈블리를 요약하자면
어떤 파일이 어떻게 이루어 진지 보기위해 2진수로 표시되는 바이너리를 리버싱을 통해 디컴파일 하여 이것을 소스코드로 변환시켜줄때 이 중간역할을 합니다.
컴퓨터 등의 cpu 는
0,1 로 만 인식하므로
모든것은 0과1의 조합을
검출하여 동작 합니다.
아직 모르겠다면 모두 잘아는 레드벨벳으로 예를 들자면 아이린, 슬기, 웬디, 조이, 예리 모두가 모여서 레드벨벳이 된다는 것과 같은 뜻이라고 보면 됩니다.
57%
55%
그런데 우리 사람들이
레드벨벳을 볼때마다
우와! 아이린, 슬기, 웬디, 조이, 예리다!!
라고할수 없지요?
그래서 '아이린, 슬기, 웬디, 조이, 예리'를
'레드벨벳' 이라고 줄여주는것이 16진수입니다!
52%
49%
44%
간단하게 표현하자면
아이린, 슬기, 웬디, 조이, 예리= 2진수
레드벨벳= 16진수
이해 하셨나요?
하지만 아직 부족합니다!
예를들어서
16진수 용어 8A 를
MOV 로 바꾸어 주는 식으로 전환을 시켜주는거죠!
영상을 통해 알아봅시다!
강의를 위해 직접 만들어 보았습니다.
이 코드는 Microsoft Macro Assmbler와 WinAPI를 사용하여 만든 Hello, world!입니다.
이것을 컴파일시켜서 하나의 실행가능한 exe파일로 만들면 더블 클릭 한다면 Hello World! 라는
글자가 나오는 아주 기본적인
스크립트라고 보시면 됩니다.
마이크로소프트사의 창립자 빌 게이츠는
모든 책상과 가정에 컴퓨터를 놓겠다는
혁신적인 비전을 최초로 제시하였고,
이후 이를 실천해 가면서 그들은 고가의 무거운 메인프레임이 주를 이루고 특별한 교육을 받은 전문가만이 운용할 수 있는 맞춤형 대형
소프트웨어가 주류를 형성하던 당시
산업계를 뒤흔들어 놓았습니다.
애플의 창시자 스티브 잡스는
힘든 환경에 굴하지 않고
자신이 믿는 비전을 열정적으로 설득해나가면서,
마침내 그들이 만든 퍼스널컴퓨터는 시장에서
큰 반응을 보이며 판매에 성공했고,
그에 힘입어 1980년에는 주식을 공개했고,
그는 억만장자가 되었으며
미국에서 최고 부자 대열에 합류했습니다.
리누스 토발즈님은
워크스테이션이나 개인용 컴퓨터에서 주로 사용되는 유닉스와 유사한 공개용 오퍼레이팅시스템인 리눅스(Linux)의 개발자입니다.
1997년 리눅스를 개발해 공개한 공로로 노키아재단상을 받았고,
2002년 12월 한국을 방문하여, 456번째로 명예 서울시민증을 받았습니다.
이 강의를 하면서 기본을 하지 않는다면 기본적인 어셈블리라는 스크립트 조차 짤 수 없다는 것을 알고 기본을 다시 탄탄히 다질 수 있는 계기가 되었으면 좋겠습니다.
위키백과
네이버사전
지금까지 들어주셔서 감사합니다!