Assembler: Verständnis von Rechenoperationen
Verfasst: Mo Jun 16, 2014 2:59 pm
Hallo,
Mein letzter Thread artet langsam aus und weicht nun schon stark vom Thema ab.
Deswegen hier mein neuer wo ich mal lieber klein anfange, statt zuviel auf einmal zu versuchen.
Nehmen wir mal diesen funktionierenden Assembler Code:
Soweit ich weiß, berechnet imull folgendermaßen:
Also:
Warum aber muss ich, für eine korrekte Ausgabe, als Ziel 4(%esp) angeben, und nicht etwa direkt 12(%esp) und mir damit den move sparen?
Mein letzter Thread artet langsam aus und weicht nun schon stark vom Thema ab.
Deswegen hier mein neuer wo ich mal lieber klein anfange, statt zuviel auf einmal zu versuchen.
Nehmen wir mal diesen funktionierenden Assembler Code:
Code: Alles auswählen
movl 4(%esp), %eax # b
push %eax
movl 0(%esp), %eax # a
imull 4(%esp), %eax
addl $4, %esp
movl %eax, 12(%esp) # c
Code: Alles auswählen
push A
imull C, B
Code: Alles auswählen
C = A * B