2010년 05월 25일
HELLO WORLD on MIX
바로 지적 쾌감에 빠져 놀고 싶지만 일단 MIX가 뭔지도 알아야 하고 이걸 어떻게 가지고 놀아야 하는지도 알아야 합니다.
일단 MIX는 Knuth 대제님이 직접 설계하신 가상 머신입니다. 자세한 사항은 차차 포스팅하기로 하고 일단 MIX Simulator를 다운받아서 모든 프로그래밍의 시작, Hello, world를 해보겠습니다. (친절한 RedPain씨. 응?)
많은 MIX Simulator가 있습니다만 일단(?) MIXBuilder를 다운받습니다. (MIXBuilder 홈페이지 방문, MIXBuilder 다운) 0.5 MB 정도 밖에 안되는 작은 프로그램이므로 가벼운 마음으로 받으시면 됩니다. 단, MIXBuilder는 MS윈도우용 프로그램이므로 UNIX 계열이나 맥을 쓰시는 분들은 Knuth 대제님 홈페이지의 MIXware에서 마음에 드시는 걸로 쓰시면 됩니다. UNIX 계열이면 GNU's MIX Development Kit 추천. :)
MIXBuilder.zip 파일의 압축을 풀고 MIXBuilder.exe 파일을 실행시킵니다. File -> New 또는 메뉴의 New 버튼 또는 Ctrl+N를 누르고 아래 코드를 입력합니다. (세로 줄 맞추는데 사용한 공백은 TAB이고 WORL앞에는 스페이스가 한 개, ALF D의 뒤에는 스페이스가 네 개 있습니다.)
Run -> Assemble 또는 메뉴의 Assemble 버튼 또는 F6을 눌러서 Assembling을 합니다. 그리고 Run -> Run 또는 메뉴의 Run 버튼 또는 F9를 눌러서 실행을 시킵니다. 그럼 HLT 창이 뜨는데 Stop 버튼을 클릭합니다. 이제 Devices 창의 Line Printer (18)에서 HELLO WORLD라고 뜬 것을 보실 수 있습니다. :) 위 코드에 대한 설명은 다음에~ (역시, 친절한 RedPain씨. 응? )
이제 MIX의 구성, MIX의 명령어, MIX Assembly Language만 가볍게(?) 배우면 지적 쾌감 여행을 시작하실 수 있습니다. :)
일단 MIX는 Knuth 대제님이 직접 설계하신 가상 머신입니다. 자세한 사항은 차차 포스팅하기로 하고 일단 MIX Simulator를 다운받아서 모든 프로그래밍의 시작, Hello, world를 해보겠습니다. (친절한 RedPain씨. 응?)
많은 MIX Simulator가 있습니다만 일단(?) MIXBuilder를 다운받습니다. (MIXBuilder 홈페이지 방문, MIXBuilder 다운) 0.5 MB 정도 밖에 안되는 작은 프로그램이므로 가벼운 마음으로 받으시면 됩니다. 단, MIXBuilder는 MS윈도우용 프로그램이므로 UNIX 계열이나 맥을 쓰시는 분들은 Knuth 대제님 홈페이지의 MIXware에서 마음에 드시는 걸로 쓰시면 됩니다. UNIX 계열이면 GNU's MIX Development Kit 추천. :)
MIXBuilder.zip 파일의 압축을 풀고 MIXBuilder.exe 파일을 실행시킵니다. File -> New 또는 메뉴의 New 버튼 또는 Ctrl+N를 누르고 아래 코드를 입력합니다. (세로 줄 맞추는데 사용한 공백은 TAB이고 WORL앞에는 스페이스가 한 개, ALF D의 뒤에는 스페이스가 네 개 있습니다.)
PRINTER EQU 18
ORIG 1000
START OUT MSG(PRINTER)
HLT
MSG ALF HELLO
ALF WORL
ALF D
END START
이제 MIX의 구성, MIX의 명령어, MIX Assembly Language만 가볍게(?) 배우면 지적 쾌감 여행을 시작하실 수 있습니다. :)
# by | 2010/05/25 06:53 | MIX | 트랙백 | 핑백(1) | 덧글(0)
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
... 사보실 것을 권해드립니다. 한글판도 있습니다. :) 영문판은 어둠의 경로로 PDF 파일 다운 가능. 책을 전부 스캔해서 올린 본좌가 존재함. 응?1. HELLO WORLD on MIX2. MIX의 구성 3. MIX의 명령어(1) 4. MIX의 명령어(2) 5. Overflow toggle에 영향을 줄 수 있는 명령어는? ... more