본문 바로가기

IT/어셈블리어

JMP/JA/JB/JE 를 사용한 간단한 어셈블리어 예제

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

안녕하세요 오랫만에 포스팅인것같네요 ^^


오늘은 JMP, JA, JB, JE를 사용해 아주 간단한 예제를 만들어보고 무슨 명령어인지 파악해보겠습니다.



우선 예제를 만들기 위해서 JMP JA JB JE에 대해서 알아봐야겠죠?


JMP JA JB JE는 점프문으로 c언어에서 goto와 거의 같은 역활을 한다고 생각하시면 됩니다.


그런데 위 점프 명령어를 알아보기 전, 하나의 명령어를 알아야 할 필요가 있습니다.


CMP 라는 명령어인데요. 이 명령어는 CMP A, B라고 했을때 A와 B를 비교하여 ZF와 CF의 값을 변동시키는 역활을 합니다.


사실 ZF와 CF는 이 예제를 만들 때 주의깊게 알 필요는 없으며 그냥 A B를 비교하여 ZF와 CF에 값들을 변동시킨다 라고만 알고있으면 됩니다.



JMP Lable


JMP는 jump의 약자로써 원하는 레이블로 점프하는 명령어입니다.



JA Lable


Jump if Above의 약자로 CMP로 두 값을 비교했을 때 앞의 값이 크면 원하는 레이블로 점프하는 명령어입니다.


 

JB Lable


Jump if Below의 약자로 CMP로 두 값을 비교했을 때 뒷 값이 크면 원하는 레이블로 점프하는 명령어입니다.



JE Lable


Jump if Equal의 약자로 CMP로 두 값을 비교했을 때 두 값이 같으면 원하는 레이블로 점프하는 명령어입니다.



그리고 JA와 JB는 JE와 함께 사용할 수 있습니다.


JAE JBE 처럼 말이지요. 이 경우에는 CMP로 비교했을 때 크거나 같을 때, 작거나 같을 때 원하는 레이블로 점프하는 명령어가 됩니다.



설명이 약간 길어졌네요  간단히 표로 정리해보겠습니다.






그럼 예제입니다. 워낙 허접하게 만든 예제다보니 그냥 쑥 훑어보고 아 이 인간은 이렇게 사용했구나.. 하고 넘어가시면 감사하겠습니다. ^^










지적 비판 등 덧글은 글쓴이에게 큰 힘이 됩니다.