Re(7): Assambler programmieren, EBNF und Grammatiken.... -*Hikfe*
Geizhals » Forum » Programmierung » Assambler programmieren.... - (160 Beiträge, 1475 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
.......
Re(7): Assambler programmieren, EBNF und Grammatiken.... -*Hikfe*
15.02.2023, 21:01:52
Er spricht 32bit Code auf dem 386 an. Das war genau die Zeit, als Compiler tatsächlich oft schon dadurch überlegen waren, dass sie die damals noch einigermaßen knappe Ressource "Register" in komplexeren Funktionen effizienter nutzen konnten. Und natürlich mussten sich Assembler-Programmierer erstmal einige der Konstrukte abgewöhnen, die sie sich zu 8086 und 286 Zeiten angewöhnt hatten, als es noch keinen Cache gab und selbstmodifizierender Code daher keinerlei Penalties hatte.

Schon beim Pentium drehte sich das Blatt dann wieder. Der war zwar theoretisch schon superskalar, aber Instruction Pairing wurde von Compilern lange Zeit gar nicht oder nur halbherzig beachtet.

Heute dürfte das Problem weniger sein, dass Compiler so gut geworden sind, sondern das es immer weniger Programmierer zu geben scheint, die noch wissen, wie man überhaupt Assemblermodule richtig einbindet, geschweige denn dabei venünftig optimiert und nicht sinnlos rumbloatet.

Aus zstd/lib/decompress/huf_decompress_amd64.S :

* TODO: Support Windows calling convention.

/* Save all registers - even if they are callee saved for simplicity. */

Und mein persönlicher Favorit:

    addq $8, %rsp
    /* Restore stack (oend & olimit) */
    pop %rax /* oend0 */
    pop %rax /* oend1 */
    pop %rax /* oend2 */
    pop %rax /* oend3 */
    pop %rax /* ilimit */
    pop %rax /* olimit */
    pop %rax /* arg */

Antworten PM Alle Chronologisch Zum Vorgänger
 
Melden nicht möglich
..........  Noch ein Beispiel, weil's so schoen war :-)  (lsr2 am 05.02.2023, 13:21:14)
.  Ein gruenes....
 (lsr2 am 04.02.2023, 22:28:10)
..  Re: Ein gruenes....  (hhetl am 07.02.2023, 11:55:16)
. PLONKED von Mr. 5  (pawantanwar am 05.07.2023, 14:42:41)
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung