Answers to Exercises

練習問題 (p. 102)

練習問題 (p. 104)

練習問題 (p. 109)

練習問題 (p. 114)

練習問題 (p. 121)

練習問題 (p. 126)

練習問題 (p. 226)

練習問題 (p. 230)

練習問題 (p. 235)

練習問題 (p. 293--294)

練習問題 2 (p. 304-305)

練習問題 (p. 315)

  1. ABLE :=(C * BAKER) は, 以下のように生成される.
    <s>1 -> <i>2:=<e>3 (R3)
       -> ABLE :=<e>3 (R1)
       -> ABLE :=(<e>4 * <e>5) (R5)
       -> ABLE :=(<i>6 * <e>5) (R2)
       -> ABLE :=(C * <e>5) (R1)
       -> ABLE :=(C * <i>7) (R2)
       -> ABLE :=(C * BAKER). (R1)
    したがって,
    code(<s>1) = code(<e>3)
            COPY AX, M(<e>3)
            COPY M(<i>2), AX
          = code(<e>3)
            COPY AX, M(<e>3)
            COPY ABLE, AX
          = code(<e>4)
            code(<e>5)
            COPY AX, M(<e>4)
            MUL AX, M(<e>5)
            COPY CN1, AX
            COPY AX, CN1
            COPY ABLE, AX
          = code(<e>5)
            COPY AX, M(<i>6)
            MUL AX, M(<e>5)
            COPY CN1, AX
            COPY AX, CN1
            COPY ABLE, AX
          = code(<e>5)
            COPY AX, C
            MUL AX, M(<e>5)
            COPY CN1, AX
            COPY AX, CN1
            COPY ABLE, AX
          = COPY AX, C
            MUL AX, M(<i>7)
            COPY CN1, AX
            COPY AX, CN1
            COPY ABLE, AX
          = COPY AX, C
            MUL AX, BAKER
            COPY CN1, AX
            COPY AX, CN1
            COPY ABLE, AX
  2. I :=(I + ONE) は, 以下のように生成される.
    <s>1 -> <i>2:=<e>3 (R3)
       -> I :=<e>3 (R1)
       -> I :=(<e>4 + <e>5) (R4)
       -> I :=(<i>6 + <e>5) (R2)
       -> I :=(I + <e>5) (R1)
       -> I :=(I + <i>7) (R2)
       -> I :=(I + ONE). (R1)
    したがって,
    code(<s>1) = code(<e>3)
            COPY AX, M(<e>3)
            COPY M(<i>2), AX
          = code(<e>3)
            COPY AX, M(<e>3)
            COPY I, AX
          = code(<e>4)
            code(<e>5)
            COPY AX, M(<e>4)
            ADD AX, M(<e>5)
            COPY CN1, AX
            COPY AX, CN1
            COPY I, AX
          = code(<e>5)
            COPY AX, M(<i>6)
            ADD AX, M(<e>5)
            COPY CN1, AX
            COPY AX, CN1
            COPY I, AX
          = code(<e>5)
            COPY AX, I
            ADD AX, M(<e>5)
            COPY CN1, AX
            COPY AX, CN1
            COPY I, AX
          = COPY AX, I
            ADD AX, M(<i>7)
            COPY CN1, AX
            COPY AX, CN1
            COPY I, AX
          = COPY AX, I
            ADD AX, ONE
            COPY CN1, AX
            COPY AX, CN1
            COPY I, AX
  3. X :=((T * U) * V) は, 以下のように生成される.
    <s>1 -> <i>2:=<e>3 (R3)
         -> X :=<e>3 (R1)
         -> X :=(<e>4 * <e>5) (R5)
         -> X :=(<e>4 * <i>6) (R2)
         -> X :=(<e>4 * V) (R1)
         -> X :=((<e>7 * <e>8) * V) (R5)
         -> X :=((<i>9 * <e>8) * V) (R2)
         -> X :=((T * <e>8) * V) (R1)
         -> X :=((T * <i>10) * V) (R2)
         -> X :=((T * U) * V). (R1)
    したがって,
    code(<s>1) = code(<e>3)
            COPY AX, M(<e>3)
            COPY M(<i>2), AX
          = code(<e>3)
            COPY AX, M(<e>3)
            COPY X, AX
          = code(<e>4)
            code(<e>5)
            COPY AX, M(<e>4)
            MUL AX, M(<e>5)
            COPY CN1, AX
            COPY AX, CN1
            COPY X, AX
          = code(<e>4)
            COPY AX, M(<e>4)
            MUL AX, M(<i>6)
            COPY CN1, AX
            COPY AX, CN1
            COPY X, AX
          = code(<e>4)
            COPY AX, M(<e>4)
            MUL AX, V
            COPY CN1, AX
            COPY AX, CN1
            COPY X, AX
          = code(<e>7)
            code(<e>8)
            COPY AX, M(<e>7)
            MUL AX, M(<e>8)
            COPY CN2, AX
            COPY AX, CN2
            MUL AX, V
            COPY CN1, AX
            COPY AX, CN1
            COPY X, AX
          = code(<e>8)
            COPY AX, M(<i>9)
            MUL AX, M(<e>8)
            COPY CN2, AX
            COPY AX, CN2
            MUL AX, V
            COPY CN1, AX
            COPY AX, CN1
            COPY X, AX
          = code(<e>8)
            COPY AX, T
            MUL AX, M(<e>8)
            COPY CN2, AX
            COPY AX, CN2
            MUL AX, V
            COPY CN1, AX
            COPY AX, CN1
            COPY X, AX
          = COPY AX, T
            MUL AX, M(<i>10)
            COPY CN2, AX
            COPY AX, CN2
            MUL AX, V
            COPY CN1, AX
            COPY AX, CN1
            COPY X, AX
          = COPY AX, T
            MUL AX, U
            COPY CN2, AX
            COPY AX, CN2
            MUL AX, V
            COPY CN1, AX
            COPY AX, CN1
            COPY X, AX
  4. TOTAL :=((C1 * MAX) + (C2 * MIN)) は, 以下のように生成される.
    <s>1 -> <i>2:=<e>3 (R3)
         -> TOTAL :=<e>3 (R1)
         -> TOTAL :=(<e>4 * <e>5) (R5)
         -> TOTAL :=((<e>6 + <e>7) * <e>5) (R4)
         -> TOTAL :=((<i>8 + <e>7) * <e>5) (R2)
         -> TOTAL :=((C1 + <e>7) * <e>5) (R1)
         -> TOTAL :=((C1 + <i>9) * <e>5) (R2)
         -> TOTAL :=((C1 + MAX) * <e>5) (R1)
         -> TOTAL :=((C1 + MAX) * (<e>10 + <e>11)) (R4)
         -> TOTAL :=((C1 + MAX) * (<i>12 + <e>11)) (R2)
         -> TOTAL :=((C1 + MAX) * (C2 + <e>11)) (R1)
         -> TOTAL :=((C1 + MAX) * (C2 + <i>13)) (R2)
         -> TOTAL :=((C1 + MAX) * (C2 + MIN)). (R1)
    したがって,
    code(<s>1) = code(<e>3)
            COPY AX, M(<e>3)
            COPY M(<i>2), AX
          = code(<e>3)
            COPY AX, M(<e>3)
            COPY TOTAL, AX
          = code(<e>4)
            code(<e>5)
            COPY AX, M(<e>4)
            MUL AX, M(<e>5)
            COPY CN1, AX
            COPY AX, CN1
            COPY TOTAL, AX
          = code(<e>6)
            code(<e>7)
            COPY AX, M(<e>6)
            ADD AX, M(<e>7)
            COPY CN2, AX
            code(<e>5)
            COPY AX, CN2
            MUL AX, M(<e>5)
            COPY CN1, AX
            COPY AX, CN1
            COPY TOTAL, AX
          = code(<e>7)
            COPY AX, M(<i>8)
            ADD AX, M(<e>7)
            COPY CN2, AX
            code(<e>5)
            COPY AX, CN2
            MUL AX, M(<e>5)
            COPY CN1, AX
            COPY AX, CN1
            COPY TOTAL, AX
          = code(<e>7)
            COPY AX, C1
            ADD AX, M(<e>7)
            COPY CN2, AX
            code(<e>5)
            COPY AX, CN2
            MUL AX, M(<e>5)
            COPY CN1, AX
            COPY AX, CN1
            COPY TOTAL, AX
          = COPY AX, C1
            ADD AX, M(<i>9)
            COPY CN2, AX
            code(<e>5)
            COPY AX, CN2
            MUL AX, M(<e>5)
            COPY CN1, AX
            COPY AX, CN1
            COPY TOTAL, AX
          = COPY AX, C1
            ADD AX, MAX
            COPY CN2, AX
            code(<e>5)
            COPY AX, CN2
            MUL AX, M(<e>5)
            COPY CN1, AX
            COPY AX, CN1
            COPY TOTAL, AX
          = COPY AX, C1
            ADD AX, MAX
            COPY CN2, AX
            code(<e>10)
            code(<e>11)
            COPY AX, M(<e>10)
            ADD AX, M(<e>11)
            COPY CN3, AX
            COPY AX, CN2
            MUL AX, CN3
            COPY CN1, AX
            COPY AX, CN1
            COPY TOTAL, AX
          = COPY AX, C1
            ADD AX, MAX
            COPY CN2, AX
            code(<e>11)
            COPY AX, M(<i>12)
            ADD AX, M(<e>11)
            COPY CN3, AX
            COPY AX, CN2
            MUL AX, CN3
            COPY CN1, AX
            COPY AX, CN1
            COPY TOTAL, AX
          = COPY AX, C1
            ADD AX, MAX
            COPY CN2, AX
            code(<e>11)
            COPY AX, C2
            ADD AX, M(<e>11)
            COPY CN3, AX
            COPY AX, CN2
            MUL AX, CN3
            COPY CN1, AX
            COPY AX, CN1
            COPY TOTAL, AX
          = COPY AX, C1
            ADD AX, MAX
            COPY CN2, AX
            COPY AX, C2
            ADD AX, M(<i>13)
            COPY CN3, AX
            COPY AX, CN2
            MUL AX, CN3
            COPY CN1, AX
            COPY AX, CN1
            COPY TOTAL, AX
          = COPY AX, C1
            ADD AX, MAX
            COPY CN2, AX
            COPY AX, C2
            ADD AX, MIN
            COPY CN3, AX
            COPY AX, CN2
            MUL AX, CN3
            COPY CN1, AX
            COPY AX, CN1
            COPY TOTAL, AX

Kazutoshi Ando Last modified: Tue Feb 7 20:03:57 JST 2006