Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Opgave 5.3
- En bestemt maskine har 24 bit instruktioner og 8 bit addresser. Nogle instruktioner har 1 addresse og andre har 2. Hvis der er n 2 addresse instruktioner, hvad er det maksimale antal 1 addresse instruktioner?
- Der er 24 bit til rådighed
- xxxx xxxx xxxx xxxx xxxx xxxx
- Hvis alle har 2 addresser, er der plads til 2^(24-8*2) = 256 instruktioner
- Hvis alle har 1 addresse, er der plads til 2^(24-8) = 65536
- Opgave 5.6
- Sammenlign 0-, 1-, 2-, og 3-addresse maskiner ved at skrive programmer til at beregne
- X = (A + B x C) / (D - E x F)
- 0 addresse med stak
- PUSH B {B}
- PUSH C {C, B}
- MUL {BxC}
- PUSH A {A, BxC}
- ADD {A+BxC}
- PUSH D {D, A+BxC}
- PUSH E {E, D, A+BxC}
- PUSH F {F, E, D, A+BxC}
- MUL {FxE, D, A+BxC}
- SUB {D-FxE, A+BxC}
- DIV {D-FxE/A+BxC}
- POP X
- 1 addresse med akkumulator
- LOAD E
- MUL F ExF
- STORE T1 Vi gemmer i T1 for at kunne få sub rækkefølgen korrekt (D-ExF og ikke ExF-D)
- LOAD D
- SUB T1 D-ExF
- STORE T1
- LOAD B
- MUL C BxC
- ADD A BxC+A
- DIV T1 (BxC+A)/(D-ExF)
- STORE X X = result
- 2 addresse, der kan anvende alle kombinationer af memory placeringer og registre
- Her kan vi anvende 2 registre, 1 til at gemme temp værdier.
- Uden overskriv
- MOV B, T1 T1 = B
- MUL T1, C T1 = BxC
- ADD T1, A T1 = A+BxC
- MOV E, T2 T2 = E
- MUL T2, F T2 = ExF
- SUB T2, D T2 = D-ExF
- DIV T1, T2 T1 = T1/T2
- MOV T1, X X = T1
- Med overskriv:
- MUL B, C
- ADD A, B
- MUL E, F
- SUB D, E
- DIV A, D
- MOV X
- 3 addresse
- Her har vi 3 registre, to til at gemme temp værdier
- Uden overskriv
- MUL T1, B, C T1 = BxC
- ADD T1, A, T1 T1 = A+BxC
- MUL T2, E, F T2 = ExF
- SUB T2, D, T2 T2 = D-ExF
- DIV X, T1, T2 X = (A+BxC)/(D-ExF)
- Med overskriv:
- MUL B, B, C
- ADD A, A, B
- MUL E, E, F
- SUB D, D, E
- DIV X, A, D
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement