Код: Выделить всё
int i = 2;
int main(int argc, char** argv)
{
while(i != 0) ;
}
Код: Выделить всё
main:
mov eax, DWORD PTR i[rip]
.L2:
test eax, eax
jne .L2
ret
i:
.long 2
Код: Выделить всё
volatile int i = 2;
int main(int argc, char** argv)
{
while(i != 0) ;
}
Код: Выделить всё
main:
.L2:
mov eax, DWORD PTR i[rip]
test eax, eax
jne .L2
ret
i:
.long 2
Код: Выделить всё
int i = 2;
int main(int argc, char** argv)
{
while(i != 0) ;
}
Код: Выделить всё
i:
.long 2
main:
push rbp
mov rbp, rsp
mov DWORD PTR [rbp-4], edi
mov QWORD PTR [rbp-16], rsi
nop
.L2:
mov eax, DWORD PTR i[rip]
test eax, eax
jne .L2
mov eax, 0
pop rbp
ret
Код: Выделить всё
volatile int i = 2;
int main(int argc, char** argv)
{
while(i != 0) ;
}
Код: Выделить всё
i:
.long 2
main:
push rbp
mov rbp, rsp
mov DWORD PTR [rbp-4], edi
mov QWORD PTR [rbp-16], rsi
nop
.L2:
mov eax, DWORD PTR i[rip]
test eax, eax
setne al
test al, al
jne .L2
mov eax, 0
pop rbp
ret
Подробнее здесь: https://stackoverflow.com/questions/798 ... o-optimiza
Мобильная версия