공부

어셈블리 명령어

푸쥬 ! 2013. 4. 18. 11:46
반응형

※ MOV

mov    op1, op2

op1 값을 op2 에 복사.

 

※ PUSH

push    op1

op1 값을 스택에 저장.

push 명령어가 수행되면 esp 주소가 낮아짐.

 

※ POP

pop    op1

스택 맨 위의 값을 op1 에 저장.

pop 명령어가 수행되면 esp 주소가 높아짐.

 

※ SUB

sub    op1, op2

op2 에서 op1 을 뺀 값을 op2 에 삽입.

 

※ INC

inc    op1

op1 의 값을 1 증가.

 

※ DEC

dec    op1

op1 의 값을 1 감소.

 

※ CALL

CALL 명령 다음 위치에 있는 명령의 주소를 스택에 push. EIP 가 변경됨.

 

※ RET

CALL 에서 push 되었던 주소를 pop 하여 eip 넣음.

 

※ CMP

cmp    op1, op2

op1 에서 op2 를 뺀 값에 대한 결과를 플래그에 저장.

 

op1 > op2 -> CF = 0

op1 < op2 -> CF = 1

op1 = op2 -> ZF = 1

 

 

※ JMP 세트

jmp    op1

op1 로 점프 (이동).

 

 

ex) [JMPselect]    op1, op2

 

 

Unsigned (부호가 없는)

je 처럼 e 가 붙을 경우는 op1 = op2 일 때 점프.

jne 처럼 n 이 붙을 경우는 op1 != op2 일 때 점프.

ja 처럼 a 가 붙을 경우는 op1 > op2 일 때 점프.

jb 처럼 b 가 붙을 경우는 op1 < op2 일 때 점프.

jc 는 CF 가 1 일 경우. jnc 이면 CF 가 0 일 경우.

 

Signed (부호가 있는)

jg 처럼 g 가 붙을 경우 op1 > op2 일 때 점프.

jl 처럼 l 이 붙을 경우 op1 < op2 일 때 점프.

728x90