수색…


통사론

  • .386 : MASM 에 최소 x86 칩 버전 386을 컴파일하도록 지시합니다.
  • .model : 사용할 메모리 모델을 설정합니다. .MODEL을 참조하십시오.
  • .code : 코드 세그먼트. 주 프로세스와 같은 프로세스에 사용됩니다.
  • proc : 프로세스를 선언합니다.
  • ret : 함수를 성공적으로 종료하는 데 사용됩니다. 반환 값 사용을 참조하십시오.
  • endp : 프로세스 선언을 끝냅니다.
  • public : 프로그램의 모든 세그먼트에서 프로세스를 사용할 수 있도록합니다.
  • end : 프로그램을 종료하거나 " end main "과 같은 프로세스와 함께 사용하는 경우 프로세스를 주된 방법으로 만듭니다.
  • call : 프로세스를 호출하고 opcode를 스택에 푸시합니다. 제어 흐름을 참조하십시오.
  • ECX : 카운터 등록, 참조 레지스터 .
  • ecx : 카운터 레지스터.
  • mul : eax로 값을 곱합니다.

비고

mov레지스터 간에 데이터를 전송하는 데 사용됩니다.

MOV를 사용하여 값 조작

기술:

mov 는 소스 인수에서 대상 인수로 비트 값을 복사 합니다.

일반적인 소스 / 대상은 레지스터 이며 [in] CPU로 값을 조작하는 가장 빠른 방법입니다.

source_of / destination_for 값의 또 다른 중요한 그룹은 컴퓨터 메모리입니다.

마지막으로 일부 즉시 값은 mov 명령어 인코딩 자체의 일부가 될 수 있으므로 명령어와 함께 값을 읽음으로써 별도의 메모리 액세스 시간을 절약 할 수 있습니다.

32 및 64 비트 모드의 x86 CPU에는 이들을 결합 할 수있는 풍부한 가능성이 있으며, 특히 다양한 메모리 어드레싱 모드가 있습니다. 일반적으로 메모리 대 메모리 복사는 제한이 있으며 ( MOVSB 와 같은 특수 명령어 제외) 이러한 조작을 위해서는 레지스터 [s]에 값을 중간 저장해야합니다.

1 단계 : MASM 을 사용하도록 프로젝트를 설정하고 Visual Studio 2015에서 x86 어셈블리 실행을 참조하십시오.
2 단계 : 다음을 입력하십시오.

.386
.model small
.code

public main
main proc
    mov ecx, 16       ; Move immediate value 16 into ecx
    mov eax, ecx      ; Copy value of ecx into eax
    ret               ; return back to caller
        ; function return value is in eax (16)
main endp
end main

3 단계 : 컴파일 및 디버그.

프로그램은 값 16 리턴해야합니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow