2014-12-31 4 views
-2

MOV 변수가 잘못 되었습니까? 또는 첫 번째 피연산자로 변수를 사용하는 경우 왜 레지스터 또는 즉치 만 사용해야합니까? 또는 이유가 무엇입니까? MOV [x], 직접 또는 등록을 제외한 모든 항목 이러한 규칙은 어떻게 정의되어 있습니까? 편집 : 저는 8086 프로세서에 대해 말하고 있습니다.MOV 명령 제한의 이유

+1

"가변적 인"의미가 무엇인지 알지 못합니다. "mX 피연산자"를 의미합니까? – Griwes

+0

@ 데이터 섹션에 정의 된 변수를 가져옵니다. –

+0

어셈블리에는 "변수"와 같은 것이 없습니다. – Griwes

답변

4

x86 MOV 명령어는 동일한 명령어에서로드와 스토어를 모두 지원하지 않습니다.

메모리에서 레지스터로로드하거나 레지스터를 메모리에 저장할 수 있습니다. 하나의 명령어로 메모리를 메모리에 복사하려면 MOVS 명령어가 필요합니다.이 명령어는 두 개의 포인터를 받아 복사합니다.

0

어셈블리 명령에 대한 규칙은 프로세서에 의해 정의되거나 프로세서를 생산하는 회사에 의해 그리고 전자적으로 정의됩니다. 레지스터는 proc 내부에 있으므로 하나의 단일 기계 사이클에서 메모리로 복사하거나 메모리에서 복사 할 수 있습니다. 그러나 메모리에서 다른 메모리로 복사는 프로세서를 통과합니다 (또는 DMA 작동을위한 보조 프로세서를 통해).