Power-PC

Neue Frage »

Auf diesen Beitrag antworten »
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
 
Auf diesen Beitrag antworten »
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.
Auf diesen Beitrag antworten »
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
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »