windows - Er align 8 gøre inc kommandoen til at være med trin på 8?

Indlæg af Hanne Mølgaard Plasc

Problem



mens jeg kontrollerede samlingen af ​​wget så jeg dette, hvilket er starten på pakkeren, antager jeg:


UPX1:004ED812                 align 8
UPX1:004ED818
UPX1:004ED818 loc\_4ED818:                             ; CODE XREF: UPX1:loc\_4ED829j
UPX1:004ED818                 mov     al, [esi]
UPX1:004ED81A                 inc     esi
UPX1:004ED81B                 mov     [edi], al
UPX1:004ED81D                 inc     edi


mit spørgsmål er: Gør align 8 inc esi for at øges hver iteration med 8, hvilket betyder en byte?

Bedste reference


INC stiger med 1, ellers vil helvede helt sikkert gå tabt.


Mere specifikt kunne jeg ikke finde nogen anstændig dokumentation for det nuværende forsamlingssprog, men jeg fandt denne henvisning. I overensstemmelse hermed styrer justeringsdirektivet kun, hvordan den næste instruktion opcode er justeret i hukommelsen. [4]


Det giver meget mening.

Andre referencer 1


INC R er nøjagtig det samme som ADD R, 1.


Tilpas 8-instruktionen gør adressen til INC R en multipel på 8. Dette er en optimering indsat af kompilatoren for at sikre, at målet om et hop eller et opkald falder ved starten af ​​en cache-linje , og dermed kan processorenes rørledning blive mere effektivt fyldt.