skip to main content

kiesler.at

Alpha C Inline-Assembler
updated by rck, 2004-10-08

C war schon seit Anfang an eine sehr maschinennahe Programmiersprache. Dadurch entstanden einerseits Probleme wie Bufferoverflows ('effizientes' Speichermanagement). Andererseits wichtige Konzepte wie Inline-Assembler. Inline-Assembler ist oft nicht nur einfacher zu durchschauen, weil der C-Compiler das ,,Housekeeping'' (Adressen-Ausrichtung, etc.) macht. Sondern auch fast so effizient wie ,,pure Assembler''.
                     
1 | 2 | 3 | 4 | 5 | 6

Motivation

Ich kann mich noch gut an die gute, alte DOS-Zeit erinnern. Mein Lieblingscompiler? Borland Pascal 7 keine Frage. Neben Turbo-Vision war eines meiner Lieblingsfeatures der Inlineassembler. Das hat dann ungef�hr so ausgesehen:

PROCEDURE CallDOSInt; ASM
��INT 21h;
END;

Fertig war ein (relativ sinnloses) Programm, welches den DOS-Interrupt aufgerufen hat.

Wozu Inline-Assembler?

Inline-Assembler wird gerne eingesetzt, wenn es in kritischen Programmteilen auf das letzte St�ck Kontrolle, auf maximale Geschwindigkeit ankommt. Bei meiner Suche nach Alpha-Inlineassembler bin ich beispielsweise auf massiv parallel rechnende Maschinen gesto�en, welche gerne mit Inline-Assembler gef�ttert werden.

                     
1 | 2 | 3 | 4 | 5 | 6



RSSComments - Make a comment
The comments are owned by the poster. We are not responsible for its content.
  • Eleganter

    Posted on 2004-05-22 01:25:06 By rck[110]

    static inline long
    __attribute__ ((unused))
    count_population (volatile long val)
    {
    long ret;

    __asm__ __volatile__ (
    "ctpop %1,%0\n\t"
    : "=&r"(ret)
    : "r"(val));

    return ret;
    }

    So meinte ich das im Informatikforum. Wof�r das attribute(unused) ist, wei� ich auch nicht genau, aber bei der glibc wird's immer so geschrieben, wird schon nicht so falsch sein.

    Und bei deinem ersten Beispiel w�rd ich das "not" weglassen und stattdessen bei den Eingangs-Constraints einfach ~a statt a schreiben - das gibt dem Compiler mehr Freiheit zu optimieren, wenn ihm danach ist.

    [Reply ]

RSSAll Articles
2008, 2007, 2006, 2005, 2004

What's Related

Documents

�bersetzerbau

Link Manager

�bersetzerbau
Programming

Article Manager

�bersetzerbau
Programming

FAQ

�bersetzerbau

Photo Albums

Programming

RSS News Feeds

Programming

Announcements

Programming

Web Pages

Programming

Latest Updates

AdministrativeTexts
updated by freddiemac1993, 2013-06-14
wiki

Re: adventures
created by brittdavis10, 2012-02-23 (1 rply, 3 views)
thread

Re: how to run phpwebsite...
created by alexander, 2011-08-25 (2 rpls, 3607 views)
thread

Re: Forum tags
created by HaroldFaragher, 2011-08-22 (3 rpls, 8488 views)
thread


Zu den KO2100 Foren