Intel x86 Assembly Language & Microarchitecture
데이터 조작
수색…
통사론
- .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