teepä nopeampi koodi tästä rivistä:

_asm { nop, nop};

tee nopeampi.
Ilmoita


Tässä:
1 VASTAUS:
Wow, QUINE
+Lisää kommentti
NOP ei tee mitään, mutta yhden käskyn ikuinen silmukka, joka toistaisi itseään, tekee (siis toistaisi itseään, mikä lasketaan tekemiseksi).
Ilmoita
Jokanen operaatio/käsky vie aina jonkin verran suoritin aikaa, joten tyhjä/hyppy yli olisi nopeampi, koska ei käskyä...
Ilmoita
NOP on yhden kellojakson kestävä viive, joka ei tee yhtäänj mitään, ei sitä voi lyhentää, kuin jättämällä toisen NOP käskyn pois.
Ilmoita
turha kiistellä nopeudesta!

Mutta joskus on parempi:

rep nop

miksikö?

REP nop:in edellä kertoo CPU:lle: minimoi turha virrankulutus.

jos CPU on niin vanha, ettei tue tuota, niin silloin REP NOP suoritetaan kuten NOP.

esimerkki:

@@1:
rep nop
in AL, DX
and AL, 1
jz @@1

tuo on virtaa säästävämpi tapa odottaa, kunnes portissa jonka osoite on DX:ssä, alin databitti on muuttunut ykköseksi.
1 VASTAUS:
Tuohon on nyt pakko vähän saivarrellakin, (sori en mahtanut itselleni mitään) sillä rep nop ei aivan ole sama koska se vie 2 tavua ja nop vain yhden. Aloituksen tekijä haasto lyhentämään tuota, ei pitentämään.
+Lisää kommentti
kas näin:

procedure TuplaNop;
asm
MOV EDI, EDI // jos 64-bit sovellus, silloin MOV RDI, RDI
end;

jotkut käyttävät myös REP NOP.
Ilmoita

Vastaa alkuperäiseen viestiin

teepä nopeampi koodi tästä rivistä:

_asm { nop, nop};

tee nopeampi.

5000 merkkiä jäljellä

Peruuta