그래서 나는 성능과 어셈블리를 가지고 놀았고 다음 프로그램을 가지고 있습니다.
.intel_syntax noprefix
.global _start
_start:
mov cl, 2
mov ebx, 0b101
shr ebx, cl
and bl, 1
je do_stuff
do_stuff:
mov eax, 1
mov ebx, 0
int 0x80
사용하면 perf -e instructions:u ./shift
8개가 아닌 9개의 지침이 표시되는데 이유를 찾을 수 없습니다. 어떤 +1 명령이 무엇인지 알아낼 수 있는 방법이 있나요?
프로그램 명령 중 하나일 뿐인데 병렬로 실행되면 CPU가 이를 쫓아내나요? 그렇다면 더 낮은 수준에서 어떻게 작동하는지 어떻게 관찰합니까?
엮다:as -msyntax=intel -mnaked-reg shift.s -o shift.o && ld shift.o -o shift
/proc/sys/kernel/perf_event_paranoid
-1로 설정