JMP(x86 명령)
JMP (x86 instruction)![]() | 이 글은 갱신할 필요가 있다.. (2017년 2월) 사용 하도록 이 하십시오 |
x86 어셈블리 언어에서 명령은 무조건 점프를 수행한다.이러한 명령은 프로그램 카운터를 변경하여 실행 흐름을 전달한다.점프를 수행하는 여러 가지 다른 opcode가 있다; 프로세서가 실제 모드인지 보호 모드인지, 그리고 오버라이드 지침이 사용되는지에 따라, 지침은 16비트, 32비트 또는 세그먼트:오프셋 포인터를 사용할 수 있다.[1]
![]() | 무료 사전인 Wiktionary에서 상대적이거나 절대적인 것을 찾아봐라. |
점프에는 상대 점프, 조건부 점프, 절대 점프, 등록 간접 점프 등 다양한 형태가 있다.
다음의 예는 다음과 같다.
- 16비트 포인터가 있는 상대 점프
- 32비트 포인터가 있는 상대 점프(인터체인지), 롱 점프
- EAX 레지스터를 사용하는 레지스터 간접 절대 점프를 한다.
(첫 번째와 두 번째 점프는 상대적이지만 일반적으로 opcode에 인코딩된 상대 오프셋 대신 목적지 주소가 표시된다는 점에 유의하십시오.)
예 1: 새 값으로 IP 로드0x89AB
, 다음으로 CS 로딩:0xACDC
및 IP 와 함께 사용0x5578
.
JMP 0x89AB JMP 0xACDC:0x5578
예제 2: 값이 있는 EIP 로드0x56789AB1
보호 모드 또는 비현실 모드에서만.
JMP 0x56789AB1
예 3: 보호 모드에서만 EAX 레지스터에 저장된 값으로 이동하십시오.
JMP EAX.
참조
- ^ "Intel Architecture Software Developer's Manual, Volume 2: Instruction Set Reference Manual (6.5MB)" (PDF). Archived from the original (PDF) on 2009-02-19. Retrieved 2009-11-03.