# Where to Start?
Emu8086을 설치했었다. 이제는 간단히 콘솔창에 "Hello World"를 표시하는 예제를 실행해서 맛(??)을
보는것으로 부터 시작하도록 하겠다. 이와같은 작업이 시시해 보여도, 윈도우에서 이러한 프로그램을
실행하기 위해서 표준적인 방식으로 MASM을 설치해서 비디오메모리에 직접출력하기란 여간 어려운게
아니다. Emu8086은 가상기계를 구동해서 이작업을 윈도우에서 사용가능하도록 만들어준다.
샘플을 실행하기 위해서는 다음과 같은 순서대로 하면된다. 자세한 사항은 해당 장에서 자세히
설명하도록 하겠다. 이가이드를 이해하면 기본으로 제공하는 여러가지 예제를 실행해볼 수 있을
것이다.
바탕화면의 Emu8086을 실행한 후 "code example"버튼을 누른 후 기본으로 제공되는 예제중에
첫번째인 "Hello, world"를 선택해준다.
선택하면 하기의 그림과 같이 기본코드가 표시된다.. 참고로 녹색글자들은 전부 주석문이다.
주석은 어셈블러에게 명령하는것이 아니고 사람에게 무엇인가를 알리기 위함이다.
어셈블리에서 주석은 ';' 세미콜론을 사용한다.
코드량이 좀 되기 때문에 겁먹을 것 없다. 이프로그램의 용도만 자세히 생각해보기 바란다.
새로운 콘솔이 생겨나고 거기에 "Hello world"라는 문자열을 출력하는 프로그램이다.
C에서는 printf("Hello world/n"); 이면 되지만 어셈블리에서는 해당작업을 손수 제공해줘야한다.
이전 강좌에서 C는 어셈블리를 쉽게 쓰기위해서 만든언어의 특징이 있다고했었다.....
또한가지, 이렇게 불편한 어셈블리를 써야만하나?? 반드시 써야할 이유는 없다. C가 편하면
C라이브러리를 어셈블리에서 불러다 써도 된다.. 어셈블리는 만능이다. 잊지 말기 바란다.
위의 코드는 비디오메모리에 직접 H e l l o w o r l d 라는 문자코드를 제공해서 표시하는 코드이다.
뭐 자세한 내용과 문법은 해당장에서 설명하겠고, 지금은 단지 이 예제를 실행해보는 것이다.
메뉴중의 "Emulater"를 선택해서 실행해도 되고, 간단히 툴바로 눌러서 실행해도 되고, 키보드의 F5키를
눌러서 실행해도 된다. 주로 키보드를 사용하기 바란다....프로그래밍에서 가장 귀챦은것이 키보드에서
마우스로 손을 옮기는 작업이다!!!
상기와 같은 화면이 나타난다... 정신없는가?? ㅋㅋ 하지만 자꾸보면 익숙한 화면이다. 좌측창은 디버거
창이다. 우측창은 실제 소스창이다. 즉 우측의 소스창을 하나씩 실행해가면서 CPU내부에 어떤일이
벌어지는지를 좌측창에서 보여주는것이다. 본가이드에서는 실행이 목적이므로 좌측 디버거창의
'Run"버튼을 눌러서 실행한다.
무엇인가가 실행되면서 상기의 그림과 같이 나타날 것이다. 이것은 실제이다. 가상도스에서 가상 VGA가
생성되고 실제 VGA메모리에 Hello, World! 가 표시되는 것이다.
창을 닫던가, 혹은 디버거 창의 Stop버튼을 눌러서 중지해도 된다. VGA화면에 Hello World!를 표시
하는 CPU의 내부동작을 본것이다. 디버거창에 나오는 레지스터와 각종 버튼에 대해서만 이해하고
소스창의 명령어만 이해한다면, 어떻게 컴퓨터가 작동하는지를 알게 될 것이다.
이러한 명령어들의 덩어리가 바로 운영체제인 것이다.... 각종 법칙을 배워야하는것이 바로 컴퓨터를
배우는 것이다.
이것으로 간단히 실행하는것에 대해서 알게 되었다. 메인창의 "examples"툴바를 눌러보면 여러가지
다른 예제들이 있다는 것을 알게될 것이다. 하나씩 읽어들인후 F5키로 실행해보기 바란다.
어셈블리의 주요용도중 하나를 알게 될 것이다. DevX강좌에서는 어셈블리를 이용해서 윈도우
프로그래밍하는 한 분야일 뿐이다. 네트워킹 / 데이터베이스 / 게임 ... 어셈블리로 못하는것은 없다.
예제에서는 온도계와 교통신호등 프로그래밍 공장제어용 코드 등 각분야별 예제들이 존재한다..
당연한 얘기지만, 해당코드를 C언어로도 작성할 수 있다. 더빠를 수도 있다. 하지만 원하는 환경에서
정확히 원하는 바를 부가적인 코드없이 수행할려면 어셈블리밖에 없을 것이다.....
어셈블리가 어렵다면 비주얼베이직 / C / 델파이등을 이용하게 될 것이다...... 왜 어셈블리를 쓰는지
를 아직도 이해하지 못한다면 본 가이드들은 그저 글자와 그림으로 구성된 눈아픈 링크일뿐일것이다.
emu8086프로그램은 모든것을 가상기계화 해서 펜티엄4던 어떤CPU든지 8086CPU로 애뮬레이트해주고
윈도우에서 하드웨어 직접액세스가 허용되지 않는것을 가상기계를 생성해서 에뮬레이트해주는
프로그램인것이다. 상당히 편리하다...
아무리 복잡해도, 하나씩 하나씩 이해해가다보면 100%이해하게 되고, 더나아가 새로운 프로그램도
만들 수 있고, 남들이 애써만든 프로그램도 역으로 분석해볼 수 도 있을것이다......
Emu8086을 설치했었다. 이제는 간단히 콘솔창에 "Hello World"를 표시하는 예제를 실행해서 맛(??)을
보는것으로 부터 시작하도록 하겠다. 이와같은 작업이 시시해 보여도, 윈도우에서 이러한 프로그램을
실행하기 위해서 표준적인 방식으로 MASM을 설치해서 비디오메모리에 직접출력하기란 여간 어려운게
아니다. Emu8086은 가상기계를 구동해서 이작업을 윈도우에서 사용가능하도록 만들어준다.
샘플을 실행하기 위해서는 다음과 같은 순서대로 하면된다. 자세한 사항은 해당 장에서 자세히
설명하도록 하겠다. 이가이드를 이해하면 기본으로 제공하는 여러가지 예제를 실행해볼 수 있을
것이다.
바탕화면의 Emu8086을 실행한 후 "code example"버튼을 누른 후 기본으로 제공되는 예제중에
첫번째인 "Hello, world"를 선택해준다.
선택하면 하기의 그림과 같이 기본코드가 표시된다.. 참고로 녹색글자들은 전부 주석문이다.
주석은 어셈블러에게 명령하는것이 아니고 사람에게 무엇인가를 알리기 위함이다.
어셈블리에서 주석은 ';' 세미콜론을 사용한다.
코드량이 좀 되기 때문에 겁먹을 것 없다. 이프로그램의 용도만 자세히 생각해보기 바란다.
새로운 콘솔이 생겨나고 거기에 "Hello world"라는 문자열을 출력하는 프로그램이다.
C에서는 printf("Hello world/n"); 이면 되지만 어셈블리에서는 해당작업을 손수 제공해줘야한다.
이전 강좌에서 C는 어셈블리를 쉽게 쓰기위해서 만든언어의 특징이 있다고했었다.....
또한가지, 이렇게 불편한 어셈블리를 써야만하나?? 반드시 써야할 이유는 없다. C가 편하면
C라이브러리를 어셈블리에서 불러다 써도 된다.. 어셈블리는 만능이다. 잊지 말기 바란다.
위의 코드는 비디오메모리에 직접 H e l l o w o r l d 라는 문자코드를 제공해서 표시하는 코드이다.
뭐 자세한 내용과 문법은 해당장에서 설명하겠고, 지금은 단지 이 예제를 실행해보는 것이다.
메뉴중의 "Emulater"를 선택해서 실행해도 되고, 간단히 툴바로 눌러서 실행해도 되고, 키보드의 F5키를
눌러서 실행해도 된다. 주로 키보드를 사용하기 바란다....프로그래밍에서 가장 귀챦은것이 키보드에서
마우스로 손을 옮기는 작업이다!!!
상기와 같은 화면이 나타난다... 정신없는가?? ㅋㅋ 하지만 자꾸보면 익숙한 화면이다. 좌측창은 디버거
창이다. 우측창은 실제 소스창이다. 즉 우측의 소스창을 하나씩 실행해가면서 CPU내부에 어떤일이
벌어지는지를 좌측창에서 보여주는것이다. 본가이드에서는 실행이 목적이므로 좌측 디버거창의
'Run"버튼을 눌러서 실행한다.
무엇인가가 실행되면서 상기의 그림과 같이 나타날 것이다. 이것은 실제이다. 가상도스에서 가상 VGA가
생성되고 실제 VGA메모리에 Hello, World! 가 표시되는 것이다.
창을 닫던가, 혹은 디버거 창의 Stop버튼을 눌러서 중지해도 된다. VGA화면에 Hello World!를 표시
하는 CPU의 내부동작을 본것이다. 디버거창에 나오는 레지스터와 각종 버튼에 대해서만 이해하고
소스창의 명령어만 이해한다면, 어떻게 컴퓨터가 작동하는지를 알게 될 것이다.
이러한 명령어들의 덩어리가 바로 운영체제인 것이다.... 각종 법칙을 배워야하는것이 바로 컴퓨터를
배우는 것이다.
이것으로 간단히 실행하는것에 대해서 알게 되었다. 메인창의 "examples"툴바를 눌러보면 여러가지
다른 예제들이 있다는 것을 알게될 것이다. 하나씩 읽어들인후 F5키로 실행해보기 바란다.
어셈블리의 주요용도중 하나를 알게 될 것이다. DevX강좌에서는 어셈블리를 이용해서 윈도우
프로그래밍하는 한 분야일 뿐이다. 네트워킹 / 데이터베이스 / 게임 ... 어셈블리로 못하는것은 없다.
예제에서는 온도계와 교통신호등 프로그래밍 공장제어용 코드 등 각분야별 예제들이 존재한다..
당연한 얘기지만, 해당코드를 C언어로도 작성할 수 있다. 더빠를 수도 있다. 하지만 원하는 환경에서
정확히 원하는 바를 부가적인 코드없이 수행할려면 어셈블리밖에 없을 것이다.....
어셈블리가 어렵다면 비주얼베이직 / C / 델파이등을 이용하게 될 것이다...... 왜 어셈블리를 쓰는지
를 아직도 이해하지 못한다면 본 가이드들은 그저 글자와 그림으로 구성된 눈아픈 링크일뿐일것이다.
emu8086프로그램은 모든것을 가상기계화 해서 펜티엄4던 어떤CPU든지 8086CPU로 애뮬레이트해주고
윈도우에서 하드웨어 직접액세스가 허용되지 않는것을 가상기계를 생성해서 에뮬레이트해주는
프로그램인것이다. 상당히 편리하다...
아무리 복잡해도, 하나씩 하나씩 이해해가다보면 100%이해하게 되고, 더나아가 새로운 프로그램도
만들 수 있고, 남들이 애써만든 프로그램도 역으로 분석해볼 수 도 있을것이다......