6. JMP

    JMP(JUMP)

    EIP란? 현재 실행할 코드의 주소가 적혀있는 곳, 실행할 코드를 CPU에 올리고, 실행코드의 크기만큼 EIP를 증가시킨다.


    EIP가 JMP의 크기만큼 증가되고 코드가 실행되게 되면
    점프할 곳의 주소와 EIP주소의 차를 이용해서 EIP에 더해주는 방식을 사용한다. 
    JMP할 곳이 가깝다(한 바이트 이내, -127 ~ 127)면 JMP 명령어에 SHORT가 붙는다.

    EIP는 범용 레지스터가 아닌 특수 레지스터로 MOV같은 일반적 기계어로 작동이 안되고 JMP로 작동해주어야한다.

    jmp 후 다른 저장공간의 값이 올 수도있다.
    jmp eax
    jmp ebx 등등.. 범용 레지스터를 사용할 수도있다.

    참고 )

    DB 00 이란 Data Byte 가 00이라는 뜻이다. 00이란 값을 채워둘 때 사용한다.


    'Assembly' 카테고리의 다른 글

    8. ADD, SUB  (0) 2017.05.18
    7. INC, DEC  (0) 2017.05.17
    5. 메모리에 저장하는 방식  (0) 2017.05.14
    4. 메모리  (0) 2017.05.13
    3. 범용 레지스터  (0) 2017.05.12
    Posted by Config