Problem 4.9(P285) stage Generic Specific irmovI V. rB irmovl $ 128, %esp Fetch icode: ifun←MPC] icode:fun←M1[ OxOOe=3:0 rArB←MPC+1]rA:rB←M1[0×0f]=8:4 vaIc M4[PC+2] valC+M4[OX010]=128 vaP←PC+6 vaP←0x00e+6=0x014 Decode Execute vaE←0+vaC vaE←0+128=128 Memory Write back R[rB]←vaE R[%esp]←vaE=128 PC update PC←vaP PC va|P=0×014 2021/10/29
rA: rB← M1[0x00f]=8:4 PC ← valP = 0x014 R[%esp] ← valE = 128 valE ← 0 + 128 = 128 valP ← 0x00e + 6 = 0x014 valC ← M4[0x010]=128 icode: ifun← M1[0x00e]=3:0 irmovl $128, %esp Problem 4.9 (P285) 2021/10/29 16 Stage Generic Specific irmovl V, rB Fetch icode:ifun←M1[PC] rA:rB ← M1[PC+1] valC ← M4[PC+2] valP ← PC +6 Decode Execute valE ← 0 + valC Memory Write back R[rB] ← valE PC update PC ← valP
Problem 4.10(P288 stage Generic Specific popl rA popl %oeax Fetch icode:fun←M1[PC] irmovl $128, %esp rA:rB+MI[PC+1] rk pushl %edx(%edx=9) vaP←PC+2 va P Decode valA RI%esp vaA←R[%esp]=124 vaB←R[%esp]vaB←Rr%esp]=124 Execute Va valb t 4 va←124+4=128 Memory valM-M4[valA]valM-M4[124]=9 Write back R[%esp]+valE R[%esp]+valE =128 RrB]← VaIM R[%eax]←vaM=9 PC update PC vaIP PC vaIP= 0x01E 2021/10/29
PC ← valP = 0x01E R[%eax] ← valM = 9 R[%esp] ← valE = 128 valM ← M4[124]= 9 valE ← 124 + 4 = 128 valB ← R[%esp] = 124 valA ← R[%esp] = 124 valP ← 0x01C + 2 = 0x01E rA: rB← M1[0x01D]=0:8 icode: ifun← M1[0x01C]=b:0 popl %eax Problem 4.10 (P288) 2021/10/29 17 Stage Generic Specific popl rA Fetch icode:ifun←M1[PC] rA:rB ← M1[PC+1] valP ← PC +2 Decode valA ← R[%esp] valB ← R[%esp] Execute valE ← valB + 4 Memory valM ← M4[valA] Write back R[%esp] ← valE R[rB] ← valM PC update PC ← valP irmovl $128, %esp … pushl %edx (%edx=9)