Intel 수동 볼륨 3, 32E 모드에서 CR0,2,3,4 + CR8 만 있고 CR1은 예약되어 있습니다. 그러나 제목에서 명령을 컴파일 할 때 N은 임의의 값일 수 있습니다. < 16. obj 파일을 해체하면 N < 일 때 참조에 따라 인코딩된다는 것을 알게되었습니다. 그리고 7 < N < 16 일 때 이전과 동일하게 인코딩되지만 LOCK 접두어가 추가되었습니다 (MOV cr 버전에 NOTED로 "직렬화 명령어"로 만드십시오).왜 crN이 존재하지 않을 때 "mov % crN, % eax"를 인코딩 할 수 있습니까?
불만없이 인코딩되어 있으며이 인코딩이 합법적 인 이유는 무엇입니까? CR이 실제로 존재합니까 아니면 다른 레지스터의 별명입니까?
잘못된 소스 코드를 주었을 때 컴파일러가 경고를 표시하지 않은 이유는 무엇입니까? 어떤 컴파일러를 사용합니까? (예 : [FASM] (http://flatassembler.net/download.php) → SOURCE → TABLES.INC는'cr0'..cr9' 만 인식합니다) – xmojmr