비트 x86 CPU (64)에서 등록합니다.은 일반적으로 우리가 같이 등록 번호를 -1에서로드
또 다른 방법은 다음과 같습니다는
xor rdx, rdx // 4831D2
dec rdx // 48FFCA
...이 옵 코드는 6 바이트를합니다.
편집 : 옌스 Björnhager으로
이 (내가 테스트 한) 말 xor edx, edx
오피 코드는 전체 RDX 레지스터를 취소해야합니다
xor edx, edx // 31D2
dec rdx // 48FFCA
...이 옵 코드는 5 바이트를합니다.
는편집 :
알렉스가 다른 해결책을 찾기는 :
mov rdx, -1 // 48C7C2FFFFFFFF
...이 옵 코드는 7 바이트를합니다. 그러나 DB를 사용하지 않고 짧은 opcode를 사용하도록 컴파일러에 알리는 방법은 무엇입니까?
는 ... 빨리 무엇입니까
무엇보다 경제적이다?
xor edx, edx; dec rdx; 5 바이트입니다. –
@Jens Björnhager : 64 비트 결과가 필요합니다. 'xor edx, edx'는 32 비트입니다! –
xor edx, edx가 전체 rdx를 지우지 않았습니까? –