다음과 같이 할 수 있습니까? MOV AX, EBX어셈블러 프로그래밍 - 32 비트 레지스터 내용을 16 비트 레지스터로 이동 하시겠습니까?
만약 그렇다면 어떤 경우에 발생합니까?
또한 어떻게됩니까? MOV EBX, AX? AX BX로의 하위 16 비트를 이동
다음과 같이 할 수 있습니까? MOV AX, EBX어셈블러 프로그래밍 - 32 비트 레지스터 내용을 16 비트 레지스터로 이동 하시겠습니까?
만약 그렇다면 어떤 경우에 발생합니까?
또한 어떻게됩니까? MOV EBX, AX? AX BX로의 하위 16 비트를 이동
허용되는 경우
MOV AX, EBX
인 Intel 구문을 사용하면 EBX의 내용을 AX로 복사합니다.
그냥 사용해보세요. 기억하니 지원되지 않습니다. 그러나 16 비트 그룹을 복사 할 수 있습니다.
MOV AX, BX
그러나 반대에 대해 은 당신이 원하는에 따라 수행하는 방법 가상
MOV EBX, AX
같은 비트 패턴을 확장.
AX가 부호없는 정수인 경우 EBX를 지우고 하위 절반으로 복사하십시오 (예 :
XOR EBX, EBX
MOV BX, AX
그러나 AX는 부호있는 정수 (2의 보수)는 부호 비트를부호 확장이라고 16 상위 비트 전반에 걸쳐 모든 방법을, 복제 필요를 나타내는 경우. "86 부호 확장을"인터넷 검색
는나에게
MOVS EBX, AX
했다하지만 난 (즉, 난 몰라, 내가 지금, 그러나 아마 전에 20 년을 시도하지 않은이며, 그것을 시도하지 않은 알고있다). 간단히 말해 과 을 사용해보십시오.
사용 MOV 도끼, BX (NASM, 8086 아키텍처를 사용)
.사용 movsx EBX, 도끼 EBX의 상위 16 개 비트를 제로화 EBX에 도끼 이동 부호 확장
사용 movzx EBX, 도끼 EBX에 AX 이동한다.
"mov ebx, ax의 경우에도 어떻게됩니까?" 16 -> 32가 될 것입니다. – rcgldr
지원되는지 확인하십시오. –
movsx와 movzx는 386 년 이후 지원되었습니다. – rcgldr