asm? ich dachte immer, das es ASM nicht mehr gibt und nur noch von "alt gesessenen" genutzt wird.
fast richtig, "alt Eingesessene" gab es schon immer, genau wie es schon immer einen Grund gab, die vorhandene Hardware optimal auszunutzen. Assembler hat aber ganz- und garnichts mit "alt" zu tun, gerade im Gegenteil, wenn man moderne Features von Prozessoren nutzen will/muss, bleibt einem meist nichts anderes übrig als mit Assembler zu programmieren da die "modernen" Compiler viele Prozessorbefehle (noch) nicht implementiert haben.
Es ist schon seltsam, noch nie gab es so schnelle Prozessoren wie heute, und trotzdem steigt der Anteil an Assemblerprogrammen (auch Programmierern?! ) in letzter Zeit wieder an:
http://www.heise.de/developer/meld…in-3263014.html
Viele Programmierer müssen sich aber mit Blick auf die Ausführungsgeschwindigkeit ihrer Programme absolut keine Gedanken machen, der Prozessor dümpelt sowieso meist nur im Idle rum, der schnellste Tastaturakrobat schafft es nicht mal, einen Prozessor aus dem Schlafmodus zu holen.
Such mal nach "Prozessorlast" hier im Forum, da wird der Irrsinn offensichtlich! Da werden >4Ghz Prozessoren gekauft, damit man "Leistung" hat, und wenn bei diesen Prozessoren die Last über 3% steigt, fängt das große Zittern an. Da werden dann "Sleep()"-Befehle eingebaut, damit das Hochleistungsgerät bei 1%%% der Maximalleistung arbeitet.
Dort, wo Code mit Blick auf Geschwindigkeit oder/und Größe optimiert werden MUSS, wird immer noch Assembler eingesetzt, s. bspw. hier: https://en.wikipedia.org/wiki/Assembly_…e#Current_usage
[OT]
Wenn ich einen Blick in die Zukunft von Assembler werfe, dann sehe ich dessen Ende auf den gängigen Rechnerarchitekturen (seitens Otto-Normal-Programmierern). Es wird bald soweit sein, dass Code nur noch in "abgeschotteten" Bereichen im Speicher laufen wird, der nicht einmal Zugriff von Disassemblern/Debuggern erlaubt. Das Märchen von den Vorteilen von Open-Source wie "Freiheit, offene Quellen, finden von Bugs und Anpassung auf eigene Bedürfnisse" ist seit Jahren schon ausgeträumt, 85% der Nutzer geben keine/geringere Lizenzkosten als Hauptaugenmerk für die Verwendung von Open-Source an. Von diesen 85% hat nicht mal 1% auch nur die Möglichkeit, Sourcecode auszuwerten, geschweige denn zu optimieren/verbessern/auf eigene Bedürfnisse anzupassen!
Die Zukunft wird aus völlig "zugenagelten" Rechnern bestehen, die unter der absoluten Kontrolle der Hersteller (Hardware und BS) stehen. Dem User wird ein kleiner Bereich gestattet in dessen eng gesteckten Grenzen er agieren darf, da wird es keine eigenen Bootloader/Treiber/Systemprogramme mehr geben. Brave new world...[OT]
paar "Aufrufe" gibt, die abzuleiten sind vom "Batch'en / Dos'sen", aber das war es auch.
naja, mit BATCH/DOS hat das absolut nichts zu tun, mov, cmp, usw. sind Prozessorbefehle, welche mit den Prozessor-Registern arbeiten. Also direkt am offenen Herzen des Rechners. Kein Netz, kein doppelter Boden, jeder kleinste Fehler führt zum Crash!
Irgendwann hat man mir mal diese Sachen XOR / OR / AND / AND OR versucht zu erklären an Hand von
Lichtschaltern.
https://de.wikipedia.org/wiki/Logikgatter
Wenn man die Funktion begriffen hat, bieten sich dem Programmierer in einigen Situationen große Vorteile bzgl. Codelänge und Geschwindigkeit. Guck mal in die AutoIt-Beispiele, in denen Styles und ExStyles verwendet werden, je nach Anwendung spart da ein einziger BitOR()-Befehle viele Zeilen Code.
Man hat bspw. auch die Möglichkeit, die Zustände von 32(64) Checkboxen/Lichtschaltern in einer einzigen 32(64)-Bit-Variablen zu speichern.
$schalter = 2009356218 ;eine variable
For $i = 0 To 31 ;32 Zustände
If BitAND($schalter, 2 ^ $i) Then
$zustand = "an"
Else
$zustand = "aus"
EndIf
ConsoleWrite("Lichtschalter " & $i & " ist " & $zustand & @CRLF)
Next
ConsoleWrite(@CRLF & @CRLF)
;oder "neumodischer" mit ternären Operatoren
For $i = 0 To 31 ;32 Zustände
ConsoleWrite("Lichtschalter " & $i & " ist " & (BitAND($schalter, 2 ^ $i) ? "an" : "aus") & @CRLF)
Next
Alles anzeigen