Prüfen, ob eine Zahl 0 ist (schnelle Methode)

30.12.2005

Der klassische Weg führt über den Mnenomic cmp. Es gibt aber eine für den Computer schnellere Lösung.

Wendet man eine oder-Operation einer Zahl auf diese selbst an, so ändert sich ihr Wert nicht.

In Assembler würde das folgenermaßen aussehen:

ASM - Code:
or eax, eax

Soweit so gut, aber was bringt uns das?

Der Computer setzt nach einer Operation, deren Ergebnis 0 ergab das Zero-Flag. Deshalb kann man mit der oder-Operation auch prüfen, ob eine Zahl 0 ist.

In Assembler sieht das dann so aus:
ASM - Code:
or eax, eax
jz is_zero
 
is_zero:
  ;hier den Code einfügen, der ausgeführt werden soll, wenn die Zahl 0 ist.

Deine Meinung ist gefragt:


Es wurden noch keine Kommentare geposted.

Sei der Erste und teile uns Deine Meinung mit.

Einen neuen Kommentar erstellen...