[TAOCP]
1.3.1MIX 설명
ohyecloudy
http://ohyecloudy.com
아꿈사
http://cafe.naver.com/architect1.cafe

2011.04.16
몇 진수?
byte, word, ~byte field
필드 명세
명령 형식, 표기법
연산자 이름 규칙
MIX는 OO진수 컴퓨터와 상관없이 잘 돌아간다.

    2진수 컴퓨터, 10진수 컴퓨터 맘대로 생각해라.
    알고리즘을 짤 때, 절대 이 레벨까지는 안 내려옴.

    한 단계 위에 기본 단위를 정의해야 함.
몇 진수?
byte, word, ~byte field
필드 명세
명령 형식, 표기법
연산자 이름 규칙
더 이상 쪼개질 수 없는 단위



      자료 기본 단위         byte
         우리가 아는 byte(8bit)와 다름.
                      2진수
이만큼 서로 구별되는 값을 담을 수 있다.

64 ≤ byte ≤ 100
          OO진수라도 이 값만 담을 수 있음 된다.
          byte로 놀기 땜시롱
내림수 배째
  +   24   0

  +   23   9

  +   0    ?

           64 ≤ 내림수 ≤ 100
니가 실제 컴퓨터에서
                   프로그래밍을 할 때에는~



MIX 기계어로 프로그램을 작성할 때에는 한 바이트
에 64개보다 많은 값들이 존재하지 않는다는 가정을
깔아야 한다.
…
MIX로 작성된 알고리즘은 하나의 바이트가 얼마나
큰 지와 무관하게 제대로 작동해야 한다.
                          - p162
  책에서는
이렇게 설명하겠다.
                         커누스 형님.
                    걍 통일해서 쉽게쉽게 갑시다. 흑
5byte + 부호 =               word
  0    1      2      3      4      5
  ±   byte   byte   byte   byte   byte
2byte 이상이 묶임 =            ~byte field
       0    1      2      3       4           5
      ±    byte   byte   byte    byte     byte



                          예)     + 2000       2   3   8

                                2byte field
~byte field는 다시 byte로 분해 불가능
         + 65   2 3 8
                64로 생각하면 안 됨


        + 1 1 2 3 8
몇 진수?
byte, word, ~byte field
필드 명세
명령 형식, 표기법
연산자 이름 규칙
워드 중 일부분만 사용하려고


       (L:R)
제일 왼쪽 필드      제일 오른쪽 필드
0    1      2      3      4      5
        ±   byte   byte   byte   byte   byte




(0:0)   ±   byte   byte   byte   byte   byte
(0:2)   ±   byte   byte   byte   byte   byte
(0:5)   ±   byte   byte   byte   byte   byte
(1:5)   ±   byte   byte   byte   byte   byte
(4:4)   ±   byte   byte   byte   byte   byte
(4:5)   ±   byte   byte   byte   byte   byte
8L + R
(L:R)을 숫자 하나로 표현, byte에 저장하려고

             (1:3) = 8 X 1 + 3 = 11
몇 진수?
byte, word, ~byte field
필드 명세
명령 형식, 표기법
연산자 이름 규칙
명령 워드
                      0   1   2   3   4   5
                      ±   A   A   I   F   C




OP ADDRESS,I(F)
연산 코드 이름

예) LDA, STA, STX, …
명령 워드
                 0   1   2   3   4   5
                ±    A   A   I   F   C




OP ADDRESS,I(F)
  메모리 주소

  MIX에서 유효한 주소는 0~3999
  어라? 음수도 되네?
  뒤에 다시 설명
명령 워드
                              0   1     2   3   4   5
                              ±   A     A   I   F   C




 OP ADDRESS,I(F)
         색인 지정, 0일 때 생략
         ADDRESS에 rIi 값을 더한다.

색인 처리가
끝난 주소    M = ±AA + 색인 지정된 인덱스 레지스터 값
         예)
         ±AA = +2000, I = 3, rI3 = 20
         M = 2020
명령 워드
                   0   1   2   3   4   5
                  ±    A   A   I   F   C




OP ADDRESS,I(F)
 필드 명세

 해당 명령 정규(normal) F 명세일 때 생략
 - 거의 대부분 워드 전체인 (0:5)
 - 명령에 따라 달라질 수 있음
몇 진수?
byte, word, ~byte field
필드 명세
명령 형식, 표기법
연산자 이름 규칙
A        rA 쿵짝쿵짝

                X        rX 쿵짝쿵짝

[연산자 대표 이름]
 예) LD, ST, …
                1~6(i)   rIi 꿍짝쿵짝

                N        부호 반대

                J        rJ 쿵짝쿵짝

                Z        0을 ~한다
연산자 설명은 문제 풀이 하면서
  하나하나 설명했다간 수명이 줄어들 것 같다.
[TAOCP] 1.3.1 MIX 설명
[TAOCP] 1.3.1 MIX 설명

[TAOCP] 1.3.1 MIX 설명

  • 1.
  • 2.
    몇 진수? byte, word,~byte field 필드 명세 명령 형식, 표기법 연산자 이름 규칙
  • 3.
    MIX는 OO진수 컴퓨터와상관없이 잘 돌아간다. 2진수 컴퓨터, 10진수 컴퓨터 맘대로 생각해라. 알고리즘을 짤 때, 절대 이 레벨까지는 안 내려옴. 한 단계 위에 기본 단위를 정의해야 함.
  • 4.
    몇 진수? byte, word,~byte field 필드 명세 명령 형식, 표기법 연산자 이름 규칙
  • 5.
    더 이상 쪼개질수 없는 단위 자료 기본 단위 byte 우리가 아는 byte(8bit)와 다름. 2진수
  • 6.
    이만큼 서로 구별되는값을 담을 수 있다. 64 ≤ byte ≤ 100 OO진수라도 이 값만 담을 수 있음 된다. byte로 놀기 땜시롱
  • 7.
    내림수 배째 + 24 0 + 23 9 + 0 ? 64 ≤ 내림수 ≤ 100
  • 8.
    니가 실제 컴퓨터에서 프로그래밍을 할 때에는~ MIX 기계어로 프로그램을 작성할 때에는 한 바이트 에 64개보다 많은 값들이 존재하지 않는다는 가정을 깔아야 한다. … MIX로 작성된 알고리즘은 하나의 바이트가 얼마나 큰 지와 무관하게 제대로 작동해야 한다. - p162 책에서는 이렇게 설명하겠다. 커누스 형님. 걍 통일해서 쉽게쉽게 갑시다. 흑
  • 9.
    5byte + 부호= word 0 1 2 3 4 5 ± byte byte byte byte byte
  • 10.
    2byte 이상이 묶임= ~byte field 0 1 2 3 4 5 ± byte byte byte byte byte 예) + 2000 2 3 8 2byte field
  • 11.
    ~byte field는 다시byte로 분해 불가능 + 65 2 3 8 64로 생각하면 안 됨 + 1 1 2 3 8
  • 12.
    몇 진수? byte, word,~byte field 필드 명세 명령 형식, 표기법 연산자 이름 규칙
  • 13.
    워드 중 일부분만사용하려고 (L:R) 제일 왼쪽 필드 제일 오른쪽 필드
  • 14.
    0 1 2 3 4 5 ± byte byte byte byte byte (0:0) ± byte byte byte byte byte (0:2) ± byte byte byte byte byte (0:5) ± byte byte byte byte byte (1:5) ± byte byte byte byte byte (4:4) ± byte byte byte byte byte (4:5) ± byte byte byte byte byte
  • 15.
    8L + R (L:R)을숫자 하나로 표현, byte에 저장하려고 (1:3) = 8 X 1 + 3 = 11
  • 16.
    몇 진수? byte, word,~byte field 필드 명세 명령 형식, 표기법 연산자 이름 규칙
  • 17.
    명령 워드 0 1 2 3 4 5 ± A A I F C OP ADDRESS,I(F) 연산 코드 이름 예) LDA, STA, STX, …
  • 18.
    명령 워드 0 1 2 3 4 5 ± A A I F C OP ADDRESS,I(F) 메모리 주소 MIX에서 유효한 주소는 0~3999 어라? 음수도 되네? 뒤에 다시 설명
  • 19.
    명령 워드 0 1 2 3 4 5 ± A A I F C OP ADDRESS,I(F) 색인 지정, 0일 때 생략 ADDRESS에 rIi 값을 더한다. 색인 처리가 끝난 주소 M = ±AA + 색인 지정된 인덱스 레지스터 값 예) ±AA = +2000, I = 3, rI3 = 20 M = 2020
  • 20.
    명령 워드 0 1 2 3 4 5 ± A A I F C OP ADDRESS,I(F) 필드 명세 해당 명령 정규(normal) F 명세일 때 생략 - 거의 대부분 워드 전체인 (0:5) - 명령에 따라 달라질 수 있음
  • 21.
    몇 진수? byte, word,~byte field 필드 명세 명령 형식, 표기법 연산자 이름 규칙
  • 22.
    A rA 쿵짝쿵짝 X rX 쿵짝쿵짝 [연산자 대표 이름] 예) LD, ST, … 1~6(i) rIi 꿍짝쿵짝 N 부호 반대 J rJ 쿵짝쿵짝 Z 0을 ~한다
  • 23.
    연산자 설명은 문제풀이 하면서 하나하나 설명했다간 수명이 줄어들 것 같다.