"warning : signed dword immediate bounds"는 입니다. 내 존재가 인 경우 일관성이 없거나 분명한 사실이 나타나지 않습니다.NASM이 일치하지 않습니까? 아니면 즉시 CMP로 명백한 사실을 놓치고 있습니까?
나는 다음과 같은 구조를 선언 한 :
struc FRTType
.class resq 1 ; Class
.type resq 1 ; Type
endstruc
나는 다음과 양수인이 있습니다
%assign TYPE_SCALAR 0xfffffffffffffff1
%assign INTEGER 0xffffffff1000a8a9
그리고 함수에
내가 가진 :cmp qword [rdi+FRTType.class], TYPE_SCALAR ; This works fine
jne .exception
cmp qword [rdi+FRTType.type], INTEGER ; THIS PRODUCES WARNING
은 내가 mov rax, INTEGER
을 할 수있는 알을 그리고 비교를해라. 그러나 그것은 첫번째 비교가 어떤 문제도 가지면 불필요하게 보인다.
사실, 나는 명백한 사실을 놓쳤습니다. 인텔 지침 안내서에서 "때로는 차에서 나와야합니다"라는 것이 명확합니다. 마이클 감사합니다! –