대중적으로 인기가 있는 nasm 어셈블러는 공개 소스로 많은 유저들이 운영체제를 만들때 사용을 한다고 한다. mintOS라는 완성도 높은 OS도 한국사람이 만든 OS인데 정말 대단한것 같아서 소스를 받아서 분석을 해보니 nasm으로 만들어져 있었다.
http://mint64os.pe.kr/ 사이트로 가면 mintOS에 대한 정보를 볼수 있으니 여러분도 가서 함 훌터 보기 바란다. 분석은 조금 무리더군요 ㅋㅋ 아직 배운게 없어서 그런지
아 너무 서론이 길었네요. 그리고 masm 어셈블러는 마이크로 소프트웨어서 제공하는 어셈블러 인데 상용화 버전 밖에 없어서 어둠의 경로를 통해서 구해야 한다고 하더군요 오늘 볼 nask 어셈블러는 나스크라는 사람이 만든 어셈블러 인데 역시 프리웨어고 nasm 보다는 안정적이고 최적화 능력을 높인 어셈블러라고 하네요 ㅎㅎ 뭐 책에서 이것으로 하는 방법이 나왔으니 다른건 더 찾아 보고 싶지만 이리저리 찾다보면 또 하나 마져 이해를 못할까봐 일단 책에서 나온것 부터 차근차근 하기로 작심했죠 ㅎㅎ
그럼 오늘 제가 공부한 명령어를 한번 봐 볼까요?
준비 됐나요...
DB 0x55, 0xaa
.
.
DB 0xf0, 0xff ...
뭐 이런식으로 사용을 하는데요.
그럼 DB가 대체 뭐길래 저렇게 사용했을까 하는 호기심이 일단 생기네요.
DB 명령어의 정의를 내리자면...
DB란? 데이터베이스 아닙니다... DB명령은 Data Byte의 약어로서, 파일의 내용을 1바이트만 직접 쓰는 명령어 입니다. 또한 이 명령은 어셈블러 세계에서 있어서 최종 병기로, DB 명령만 있으면 어떤 데이터도(결국 어떤 프로그램도) 기술할 수 있습니다. 그런 이유에서 어셈블러로 만들 수 없는 파일은 없습니다. 예를 들어 텍스트 파일도, 그림 파일도, 하려고 하면 뭐든지 만들 수 있습니다. 다른 언어(예를 들어 C언어)로는 이런 만능성(?)은 전혀 기대할 수 없습니다.
이런 내용들이 책에 나왔군요. 정말 흥미로운 것은 일반적인 우리가 사용하는 고급언어로는 할수 없는걸 만들 수 있다는게 마음에 드네요.
오늘은 DB 내용만 설명해도 너무 지루하고 길거 같아서 계속 DB만 설명하겠습니다.
구체적으로 DB는
문자열을 쓸 수 있습니다. 문자열을 쓰면 문자열을 구성하는 각각의 문자의 문자 코드를 조사하여 그것을 1바이트씩 나열해 줍니다. 이것이 참 편리한 것은, 예를 들어 출력하는 메시지를 변경하고 싶을 때에 문자 코드표를 일일이 찾아보지 않아도 된다는 것입니다.
휴 이제야 설명이 끝났군요. 책은 역시 지루하고 어렵네요.
'운영체제(OS)' 카테고리의 다른 글
makefile 설정 (0) | 2009.08.27 |
---|---|
OS 구조와 원리 (0) | 2009.08.26 |