Hier einige C, in einem Lehrbuch gefunden Ich lerne:Verwendung von Test Anweisung mit dem gleichen registrieren
...
do {
...
n--;
} while (n > 0)
...
Ich gehe davon aus n
bei %edx
ist.
Der Assembler-Code erzeugt wird:
testl %edx, %edx
jle .L5
Ich verstehe, dass jle
Tests für weniger als oder gleich (SF^OF) | ZF
. Ich bin mir jedoch nicht sicher, wie diese Anweisung n > 0
entspricht. Kann das jemand erklären?
möglich duplikat von [x86 Assembly - 'testl' eax gegen eax?] (Http://stackoverflow.com/questions/147173/x86-assembly-testl-eax-against-ax) – interjay
Ich glaube nicht, Er benutzt einen anderen Sprungbefehl. – dgamma3
Es ist immer noch ein Vergleich mit 0, Sie können jede Sprunganweisung danach verwenden. – interjay