FAQ der Newsgroup de.comp.lang.assembler (d.c.l.a.)

Mein Assembler unterstützt die Anweisung xyz nicht!

Gerade bei älteren Assemblern kann es passieren, daß sie auf eine ihnen noch unbekannte Anweisung stoßen und eine Fehlermeldung anzeigen. In diesem Fall gibt es zwei Möglichkeiten. Entweder beschafft man sich eine Art include-Datei, die dem Assembler erklärt wie er neuere Anweisungen zu behandeln und zu assemblieren hat, oder man kodiert die Anweisungen mit der Hand unter Verwendung von db, dw und dd. Letzeres ist natürlich dann sehr aufwendig, wenn es darum geht, zahlreiche komplizierte Anweisungen zu kodieren.

db, dw und dd erlauben es in den Code jeweils ein Byte, Word oder double word einzufügen. Die Handbücher von Intel erläutern die Art und Weise wie Anweisungen kodiert werden. Für ganz eilige hier die Kodierung zweier oft verwendeter Anweisungen, die leider nicht von allen Assemblern unterstützt werden:

rdtsc dw 310Fh bzw. db 0Fh, db 31h
cpuid dw 0A20Fh bzw. db 0Fh, db 0A2h

Text der ursprünglichen FAQ von de.comp.lang.assembler.x86 Juli 2005