본문으로 이동
주 메뉴
주 메뉴
사이드바로 이동
숨기기
둘러보기
대문
최근 바뀜
요즘 화제
임의의 문서로
sitesupport
사용자 모임
사랑방
사용자 모임
관리 요청
편집 안내
소개
도움말
정책과 지침
질문방
한울위키
검색
검색
보이기
로그인
개인 도구
로그인
MMIX 문서 원본 보기
문서
토론
한국어
읽기
원본 보기
역사 보기
도구
도구
사이드바로 이동
숨기기
동작
읽기
원본 보기
역사 보기
일반
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
보이기
사이드바로 이동
숨기기
←
MMIX
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
일반 사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
[[파일:Mmix.png|섬네일|MMIX 로고.]] '''MMIX'''는 [[도널드 커누스]]가 만든 [[64비트]] [[RISC]] [[가상기계]]이다. [[MIPS 아키텍처|MIPS]] 칩을 만든 [[존 L. 헤네시]]와 [[DEC 알파]] 칩을 설계한 [[딕 사이츠]]도 MMIX의 설계에 많은 기여를 했다. 카누스에 따르면 앞으로 그가 쓰는 ''[[The Art of Computer Programming]]'' (TAoCP)에서는 MMIX를 이용하여 [[컴퓨터 프로그래밍]]의 기계 수준 알고리즘 분석을 할 것이라고 한다. MMIX는 '엠믹스'라고 읽는다. MMIX의 이전 버전인 [[MIX]]는 ''The Art of Computer Programming''의 현재판까지만 사용된다. MMIX는 컴퓨터 설계에 대한 현대적인 접근방법을 모두 채택하여 처음부터 새로 만들어졌으며 기존의 MIX를 완전히 대체할 것이다. == 구조 == MMIX는 64 비트의 [[가상주소공간]]을 가진 [[빅 엔디안]] 형태의 [[이진법|이진]] [[컴퓨터]]이다. 명령어는 32비트이다. === 명령어 === 모든 명령어는 관련된 약어를 가지고 있다. 예를 들어 명령어 32는 'ADD'와 연결된다. 대부분의 명령은 "OP, X, Y, Z"과 같은 형태를 따른다. 여기서 OP는 명령어에 해당하고, X는 결과값을 저장할 레지스터이다. 나머지는 명령어에 인자로 사용할 값들을 저장한다. 여기서 명령어의 각 부분은 모두 8비트이다. 예를 들어 "ADD $0, $1, 3"라는 명령은 1번 레지스터의 값에 3을 더해서 그 결과값을 0번 레지스터에 저장한다."라는 의미이다. MMIX 프로그램은 보통 [[MMIXAL 프로그래밍 언어|MMIXAL]] 어셈블리 언어로 구성된다. ==== [[Hello world 프로그램]] ==== MMIXAL로 Hello, world를 출력하는 프로그램이다. <syntaxhighlight lang="mmix"> Main GETA $255,string ; Get the address of the string ; in register 255. TRAP 0,Fputs,StdOut ; Put the string pointed to ; by register 255 to file StdOut. TRAP 0,Halt,0 ; End process. string BYTE "Hello, world!",#a,0 ; String to be printed. ; #a is newline, ; 0 terminates the string. </syntaxhighlight> === 레지스터 === MMIX 칩에는 $0부터 $255까지 256개의 범용 레지스터와 32개의 특수 레지스터가 있다. ==== 지역 레지스터 스택 ==== {{빈 문단}} ==== 특수 레지스터 ==== {{빈 문단}} == 참고 문헌 == * Donald E. Knuth (1999). ''MMIXware: A RISC Computer for the Third Millennium''. Heidelberg: Springer-Verlag. {{ISBN|3-540-66938-8}}[http://www-cs-faculty.stanford.edu/~knuth/mmixware.html (errata)] {{웹아카이브|url=https://web.archive.org/web/20110716233940/http://www-cs-faculty.stanford.edu/~knuth/mmixware.html}} == 외부 링크 == * [http://www-cs-faculty.stanford.edu/~knuth/mmix.html Donald Knuth's MMIX page] {{웹아카이브|url=https://web.archive.org/web/20110716233917/http://www-cs-faculty.stanford.edu/~knuth/mmix.html}} — MMIX에 대한 간략한 소개와 왜 'The Art of Computer Programming'에 가상의 [[어셈블리어]]를 이용할 수밖에 없었는지에 대한 설명. * [http://www-cs-faculty.stanford.edu/~knuth/mmix-news.html Donald Knuth's MMIX news page] {{웹아카이브|url=https://web.archive.org/web/20110716233543/http://www-cs-faculty.stanford.edu/~knuth/mmix-news.html}} — [[CWEB]]으로 만든 MMIX의 [[오픈 소스]] 시뮬레이터와 프로그래머 매뉴얼, 예제 프로그램. * [https://web.archive.org/web/20070516201842/http://mmixmasters.sourceforge.net/ MMIXmasters web site] TAOCP 1권 ~ 3권에서 예전 MIX로 만든 예제 프로그램을 새로운 MMIX로 바꾸려는 사람(MMIXmasters)들의 모임. {{전거 통제}} {{위키데이터 속성 추적}} [[분류:컴퓨터 프로그래밍]] [[분류:도널드 커누스]] [[분류:명령어 집합 구조]] [[분류:추상 기계]]
MMIX
문서로 돌아갑니다.
검색
검색
MMIX 문서 원본 보기
새 주제