Die letzten 3 Beiträge |
Michi |
Vielen Dank für die Hilfe.
Ich weiß jetzt wieso 0x92C0022A herauskommt
du hast dich vertan nur bei stw = 36 = 100100
dann würde es so aussehen 1001001011000000 = 0x92C0022A |
eulerscheZahl |
Es scheint beim Kopieren Probleme gegeben zu haben (ist A 8= 0 sollte ein A ungleich 0 werden), hier die Aufgabe, falls sich jemand hierhin verirren sollte: FH Frankfurt
Für die Maschineninstruktion erhalte ich ein anderes Ergebnis:
stw = 36 = 010010 (als 6Bit Zahl)
r22 = 10110
r0 = 00000
0x022a bleibt unverändert.
0100101011000000 = 0x4ac0
zusammen: 0x4ac0022a
die effektive Adresse:
A=0, daher: Ist A = 0, so ist EA die 32-Bit-Sign-Extension von d (aufgefasst als Zweierkomplement-Zahl)
gibt 0x0000022a, da stimme ich mir dir überein. |
Michi |
Power-PC
Hallo Leute,
ich komme nicht weiter ab c) bei stw r22; 0x022a(r0) kommt bei Instr.- kommt 0x92C0022A und bei EA kommt 0x0000022A
Welche Schritte muss man hier machen um auf das Ergebnis zukommen?
Vielen Dank im Voraus
Hier die komplette Aufgabenstellung.
Die üblichen 3-Adressbefehle des POWER-PC haben als primären OPCODE stets
(dezimal) 31 (Bits 0 - 5), gefolgt von 3 Registernummern (Bits 6-10, 11-15 und 16-20);
2
dabei ist das erste der drei Register das Destinationregister. Die Bits 21-30 enthalten
den sekundären OPCODE, Bit 31 sei in unseren Beispielen stets 0.
Die folgende Tabelle gibt die sekundären OPCODES (dezimal) einiger dieser 3-
Adressbefehle an:
and or xor nand nor
28 444 316 476 124
a) Setzen Sie die folgenden Assemblerbefehle um in Maschinenworte:
nand r7; r22; r12
or r13; r9; r10
xor r14; r20; r3
and r11; r24; r5
nor r4; r5; r6
b) Welche der folgenden Maschinenworte entsprechen logischen 3-Adressbefehlen mit
den obigen Operatoren und wie lauten die zugehörigen Assemblerbefehle? Wie lauten
die primären OPCODES der Befehle, die keine 3-Adress-Befehle sind?
0x7cec7378
0x7e2e5838
0x7d5370f8
0x834d21b2
0x90e043a1
0x7c3533b8
Die beiden Befehle lwz (load word) bzw. stw (store word) verwenden als primären
OPCODE 32 bzw. 36 (Bits 0 - 5), die Bits 6-10 bzw. 11-15 sind mit zwei Registernummern
D=S bzw. A besetzt, die letzten 16 Bits enthalten ein Displacement d.
Die zugehörigen Assemblerbefehle lauten
lwz rD; d(rA)
stw rS; d(rA)
In der 32-Bit-Version des POWER-PC werden damit effektive 32-Bit Adressen EA
wie folgt konfiguriert:
Ist A = 0, so ist EA die 32-Bit-Sign-Extension von d (aufgefasst als Zweierkomplement-
Zahl), ist A 8= 0, so ist EA die Summe aus dem Registerinhalt von A und der 32-Bit-
Sign-Extension von d.
In den 32-Bit-Registern 1 - 5 sollen folgende Werte stehen:
R1 0x0a3453e1
R2 0x1357bc10
R3 0x2c2b341f
R4 0x3ac50133
R5 0x6249a656
c) Welche Maschineninstruktionen entsprechen den folgenden Assemblerbefehlen und
welche effektiven Adressen werden mit diesen angesprochen:
stw r22; 0x022a(r0)
lwz r3; 0xa32b(r3)
stw r5; 0xb123(r4)
lwz r1; 0x0000(r5)
d) Welchen Assemblerbefehlen entsprechen die folgenden Maschinenworte und welche
effektiven Adressen werden von diesen angesprochen:
0x90e5a341
0x91a013e5
0x82e3b345
0x80e423a6 |
|
|