태초의 프로그래밍 언어 어셈블리

assembly, 8086, x86

태초의 프로그래밍 언어 어셈블리

| 공개

"이 강좌를 마치신 분들께 64비트 어셈블리 강좌 "요즘도 쓰는 언어 어셈블리" 를 추천합니다.

https://opentutorials.org/module/2004


2014년 8월 5일 현재 "emu8086을 이용한 어셈블리 프로그래밍"이라는 주제로 완결된 상태입니다. 보강할 내용이나 좋았던 내용 등에 대해서 피드백을 주시면 큰 도움이 될것입니다. 그 외에 어떤 피드백도 환영합니다.

재밌으셨길~~

PS: 참고로 제 홈페이지에 오시면 16비트 부트로더나 32비트 어셈블리 프로그래밍 등 어셈블리 관련된 문서들이 있습니다. http://gurugio.kldp.net/wiki/wiki.php/asm_basic

PS: 리눅스 환경에서 32비트 어셈블리로 시스템 프로그래밍을 하는 문서입니다. http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Assembly/Documents/ProgrammingGroundUp/index.html

PS: 진지하게 어셈블리를 공부하고싶으시면 Art of Assembly Programming을 추천합니다. 1년 정도는 재미있을 수 있습니다.

PS: 전설적인 The Art Of Computer Programming도 어셈블리 유사 언어로 써진 책입니다. 죽기전에 한번쯤은 도전해보자구요 ;-)


컴퓨터 세계의 태초에 말씀이 있었으니 어셈블리 언어입니다.

프로그래밍 언어라기에는 너무 컴퓨터에 가까워서 언어라고 하기 어렵고

그렇다고 0과 1로 이루어진 컴퓨터 신호도 아닌 이상한 언어입니다.

태초의 언어이므로 컴퓨터의 세부적인 동작 하나하나를 직접 지시할 수 있습니다.

그렇기 어셈블리 언어를 배운다는 것은 프로그래밍을 배운다기보다는

컴퓨터 그 자체를 배우는 것에 가깝습니다.

그런데 그렇게 컴퓨터 그 자체를 배우다보면 세상 모든 프로그래밍 언어가

어떤 원리로 돌아가는지 알게됩니다.

마치 매트릭스 세계에서 네오가 세상을 코드로 보는 것처럼

컴퓨터 세상의 모든게 어셈블리 기호들로 보이기 시작합니다.

그래서 너무나 재밌습니다.

복잡한 컴퓨터 세상을 이루는 원리들이 눈에 보인다는 것은 새로운 세상이 열리는것 같지요.

 

어셈블리 언어를 배우면 프로그래밍을 더 잘하거나 실력이 좋아진다는 말은 못합니다.

저부터가 프로그래밍을 잘하거나 뛰어난 개발자가 아니기 때문입니다.

그래도 처음 어셈블리 언어를 배우고 컴퓨터 세상에 대해 새롭게 눈뜬 순간의 흥분은

아직도 저를 이끌어서 리눅스 커널과 컴퓨터 구조를 공부하게 만들고 있습니다.

많은 분들이 세상을 다르게 볼 수 있는 기회를 가지셨으면 합니다.

 

참고로 나중에 기회가 되면 어셈블리와는 완전히 반대로 완전히 추상적인 언어인 LISP에 대해서도

글을 쓰게 되길 바랍니다. 어셈블리로 컴퓨터 세상에 대한 눈을 떴다면

LISP을 공부한 후로는 컴퓨터 세상과 실제 우리가 사는 세상을 하나로 볼 수 있게 되었습니다.

댓글

댓글 본문
작성자
비밀번호
  1. 강의 고맙습니다. ~~
  2. gurugio
    그런데 어떤 실전 예제가 있을까요?
    MMX같은걸 생각하시는지 아니면 임베디드 프로세서를 생각하시는지요?
    대화보기
    • 김기오
      반응이 좋으면 64비트로 돌아옵니다 ;-)
    • 김기오
      완결했습니다.
    • 김기오
      저는 최신 x86의 어셈블리로 뭔가를 한 적이 있긴 하지만
      8086으로 실전을 해본적도 없고 한다는 이야기를 들은 적도 없습니다.
      혹시 아신다면 어떤걸 하는지 알려주시면 좋겠습니다.

      8086으로 제한된 내용을 쓰기때문에 실전예제라고 할 수 있는게 있을지 모르겠습니다.
      대화보기
      • UNICORN
        실전 예제도 곁들여 주셨으면 합니다
        저도 Z-80 계열 Z64180, 80C51, 80C196, TB 386EX 등의 CPU 를 조금 사용하였습니다
        후배들이 공부자료를 요청해서 찾디가 클리앙 에서 보고 사이트방문을 했습니다
        주제넘기만 실전에 사용하셨던 예제로 강좌 부탁드립니다

        앞으로도 좋은 강좌 부탁드립니다
        대화보기
        • 김기오
          많은 피드백 부탁드립니다.
        • 단테의신곡
          많이 기대됩니다.
        • 김기오
          그동안 제 홈페이지에 있는 어셈블리 관련 글들이 썩어가는게 너무 아쉬웠습니다. 그러다가 이런 좋은 공간을 발견하고 저같은 사람도 강좌를 쓸 수 있겠다는 용기를 얻어서 글을 써봤습니다.
          이 글들은 제 홈페이지에 emu8086의 예전 메뉴얼을 번역한게 있는데 그걸 좀더 쉽게 풀어서 쓴 것입니다. 1차로 변수와 배열에 대한 내용까지 써봤습니다. 앞으로 인터럽트, 함수, 루프, 논리 연산, 스택, 외부 장치 제어에 관한 내용이 남았네요.
          이 글로 개발에 조금이라도 재미가 더해지기를 바랍니다.
        • happydeveloper
          와~ 기대되는 강좌네요~
        • 김기오
          읽어보시고 부족한점을 써주시면 감사하겠습니다. 너무 어려운지 설명이 애매한지 잘 봐주세요 ;-)
        • 아라한사
          기대되네요 ㅎㅎ
        • egoing
          와 너무 기대 됩니다. ^^
        graphittie 자세히 보기