Compilers (Dragon Book 2nd) - 8.2

来源:互联网 发布:西北师大知行学院评价 编辑:程序博客网 时间:2024/05/22 13:42

--- # 8.2.1

- a) x = 1: 

    LD R1, #1 // R1 = 1    STx, R1// x = R1


- b) x = a:

    LD R1,  a // R1 = a    STx, R1// x = R1


- c) x = a + 1

    LD R1,  a // R1 = a    ADDR1, R1, #1// R1 += 1    STx, R1// x = R1


- d) x = a + b

    LD R1,  a // R1 = a    LD R2,  b // R2 = b    ADD    R1, R1, R2    STx, R1


- e) x = b*c; y = a + x

    LD R1,  b // R1 = b    LD R2,  c // R2 = c    MULR1, R1, R2    LDR2, a    STx, R1    ADDR1, R1, R2    STy, R1



--- # 8.2.3
- y = *q; q = q+4; *p = y; p = p + 4;
    LD R1, q    LD R2, 0(R1)    STy, R2// y = *q;    ADDR1, R1, #4    STq, R1// q = q+4    LDR1, p    ST0(R1), R2  //*p = y    ADDR1, R1, 4    STp, R1//p = p + 4



--- # 8.2.5
- s = 0
i = 0
 L1:  if i > n goto L2
s = s + i
i = i + 1
goto L1
L2:
    LD R1, 0STs, R1ST i,R1    LD R2, nL1SUB R3, R2, R1//n-iBLTZ R3, L2//if n-i < 0 goto L2LDR3, sADDR3, R3, R1STs, R3ADDR1, R1, #1STi, R1L2    


    


原创粉丝点击