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

assembly, 8086, x86

어셈블리 공부하는 방법

어셈블리를 굳이 한번 공부해보고 싶으시다면 이런 방법으로 해보시기 바랍니다. 요즘 어셈블리 관련해서 어떤 책들이 있는지는 모르겠습니다만 옛날 책들이 많아서 책에 있는 코드가 실행이 안되는 경우가 많을 것입니다. 특히 너무 옛날 책들이 마우스나 키보드, 심지어 플로피 드라이브의 모터 제어같은 내용이 있는데 요즘 Windows7같은 환경에서는 아마도? 실행이 안될 것이므로 쓸데없습니다. 그래서 몇가지 방법들을 추천합니다.

1. 리눅스 환경에서 nasm을 가지고 64비트 어셈블리와 시스템콜 호출을 해보세요. gas는 문법이 너무 다르지만 nasm은 emu8086과 문법이 유사해서 편리합니다.

2. vmplayer나 qemu등의 x86 가상 머신을 가지고 80x86의 부트로더를 만들어보세요.

3. mmx, sse 같은 멀티미디어 어셈블리를 가지고 이미지 축소나 확대같은 이미지 처리를 만들어보세요. 압축이나 암호화 알고리즘에도 많이 쓰이는 방법입니다.

4. 운영체제 만들기 책들이 몇개 있으니 한번 도전해보세요.

5. 솔직히 여기까지 읽어보셨다면 이제 어떤 어셈블리 코드라도 대강 이해할 수 있으실 겁니다. 여기서 접으시고 나중에 실무에 필요할 때 펜티엄 메뉴얼같은거 보시면서 어떤 명령어인지 참고하시면 어떤 코드든 이해하실 수 있습니다. 포기하세요. 편해요 ;-)

굳이 더 계속 하고 싶으신 분들을 위한 참고 자료:

http://www.drpaulcarter.com/pcasm/ : NASM 어셈블러를 이용해서 부트로더 만드는 문서인데 설명이 쉽고 자세하고 따봉입니다.

http://programminggroundup.blogspot.kr/ : programming ground up이라는 문서인데 예전에 번역해놓은 것도 있습니다. 리눅스 환경에서 시스템 프로그램하기 입니다.

Greate Code 책: 말 그대로 Greate 합니다. 프로그래머들은 꼭 봐야합니다.

http://gurugio.kldp.net/wiki/wiki.php/asm_basic : 설명이 필요없습니다??

 

 

댓글

댓글 본문
작성자
비밀번호
  1. 이미눅
    잘 배우고 갑니다 ^^
버전 관리
gurugio
현재 버전
선택 버전
graphittie 자세히 보기