알맹이방
어셈블리어 08. JMP 본문
JMP = 실행의 흐름을 뛴다라는 의미
EIP라는 레지스터는 다음에 실행할 명령어의 주소를 저장하는데 평소에는 주소가 차례로 증가하지만 JMP 명령어를 이용해서 중간에 EIP에 저장된 주소를 변경하면 바로 그 주소로 넘어갈 수 있다.
EIP도 레지스터이긴 하지만 범용레지스터가 아니기 때문에 MOV명령어로 그 값을 변경해 줄 수 없고 JMP로 가능하다.
JMP 명령어를 넣으면
JMP SHORT [주소값]
이렇게 명령어가 된다.
short는 실행할 명령어랑 현재 명령어가 가까울 때를 의미한다.
위처럼 40100F에서 옆에 EB F4가 있는 걸 볼 수 있는데, eb가 jmp short를 의미하고 f4가 움직일 만큼이다. 40100F가 끝나면 401011이 eip에 저장되는데 여기서 f4만큼 움직이라는 뜻이다.
401011에 f4(-c)만큼 움직이면 401005로 변한다.
jmp루프 내에서 특정한 장치가 없다면 무한루프가 된다.
EIP라는 레지스터는 다음에 실행할 명령어의 주소를 저장하는데 평소에는 주소가 차례로 증가하지만 JMP 명령어를 이용해서 중간에 EIP에 저장된 주소를 변경하면 바로 그 주소로 넘어갈 수 있다.
EIP도 레지스터이긴 하지만 범용레지스터가 아니기 때문에 MOV명령어로 그 값을 변경해 줄 수 없고 JMP로 가능하다.
JMP 명령어를 넣으면
JMP SHORT [주소값]
이렇게 명령어가 된다.
short는 실행할 명령어랑 현재 명령어가 가까울 때를 의미한다.
위처럼 40100F에서 옆에 EB F4가 있는 걸 볼 수 있는데, eb가 jmp short를 의미하고 f4가 움직일 만큼이다. 40100F가 끝나면 401011이 eip에 저장되는데 여기서 f4만큼 움직이라는 뜻이다.
401011에 f4(-c)만큼 움직이면 401005로 변한다.
jmp루프 내에서 특정한 장치가 없다면 무한루프가 된다.
'SISS (2017-2018) > 어셈블리어' 카테고리의 다른 글
어셈블리어 10. inc, dec (0) | 2018.07.30 |
---|---|
어셈블리어 09. JMP 2 (0) | 2018.07.22 |
어셈블리어 07. 리틀엔디안, 빅엔디안 (0) | 2018.07.22 |
어셈블리어 06. 메모리 크기 지정 (0) | 2018.07.15 |
05. 메모리 주소와 접근 (0) | 2018.07.15 |
Comments