ASM wirklich ein Vorteil?
-
Overflow schrieb:
Oder auch einem Programm zur Festplattenformatieren würden Assembler Elemente gut tun
Wozu das denn?
-
Ringding schrieb:
Overflow schrieb:
Oder auch einem Programm zur Festplattenformatieren würden Assembler Elemente gut tun
Wozu das denn?
Na weil man auf die Hardware doch nur mit Assembler zugreifen kann, weißt du das nicht!?
-
Eigentlich sollte das nur ein Beispiel für ein zeitaufwendiges Problem sein, bei dem es ratsam ist (bzw. wünschenswert) gut optimierten Code zu schreiben.
-
Weil heutige Platten plötzlich um so viel schneller sind als die CPU?
-
Naja, wenn man 30 Millionen Cluster oder mehr mit einem Algorithmus bearbeiten will, der die wirklich schnellste Verschiebereihenfolge ermittelt, kann das schon etwa rechenintensiv werden, denke ich mal.
-
Braucht man auch um Pixel-Shader zu schreiben.
-
ps3 schrieb:
Braucht man auch um Pixel-Shader zu schreiben.
Ich hab gehört, dass man das seit neuestem auch in C, oder so was machen kann.
-
Aufm PC-Markt ist der Einsatz heute wirklich stark eingeschränkt, aber es gibt ja noch viele andere Gebiete wo auch heute noch Assembler zum Einsatz kommt.
Wobei selbst für die meisten Microcontroller inzwischen C-Compiler verfügbar sind.Und Assembler kann dir auch beim debuggen und optimieren von großem Nutzen sein.
-
3D-Engines? Bootloader?
-
ich brauche assembler nur um zu sehen was der compiler macht. manchmal generiert er code der nicht das macht was im c++ source steht. manchmal muss man den assembler einer architektur kennen um zu wissen was für ein compilat entsteht und wie die cpu damit umgehen kann.
manchmal muss man auch assembler benutzen weil es keine andere möglichkeit gibt eine optimierung zu benutzen, bei hlsl z.b. texoffset. dafür gibt es afaik keinen befehl wie bei z.b. glsl.
zudem kann assembler nützlich sein, weil man sich beim programmieren mehr mit der hardware auseinander setzt, nicht nur der cpu, damit weiß man dann z.b. mit den verschiedenen calling conventions was anzufangen.
für schnellen code an sich sind aber oft templates besser, weil der compiler dort sehr viel code weglassen kann, wenn er merkt dass man den nicht braucht. wenn man z.b. ein vectorprodukt ausrechnet und dann nur eine komponente des ergebnisvectors benutzt muss man beim assembler entweder davon ausgehen dass viel code nutzlos für die anderen komponenten durchlaufen wird oder man ne spezielle version schreiben muss. bei templates wird es wegoptimiert wenn man es nicht braucht, und wenn es möglich ist das ergebnis zur compilezeit zu erhalten, dann wird alles durch eine konstante ersetzt.man kann durch assemblerwissen eigentlich keine nachteile haben ;). manchmal ist es sehr nützlich.
rapso->greets();